社区
Linux_Kernel
帖子详情
怎么使ko文件的version magic通过?
happyzeng79
2011-06-09 08:34:06
小弟我碰到一郁闷问题,在虚拟机上安装了一个内核版本是 2.6.35.6.PAE的linux系统,
在该系统上编译好了一个.ko的驱动文件,把该ko驱动文件复制到一目标机上,该目标机器上的内核版本是2.6.35.6,
少了一个PAE,奇怪的是这两个系统均是使用同一光盘安装的.所以在目标机上insmod my.ko文件不成功,
报告错误 version magic error ,请问各位有什么好方法解决这问题吗?
...全文
1624
6
打赏
收藏
怎么使ko文件的version magic通过?
小弟我碰到一郁闷问题,在虚拟机上安装了一个内核版本是 2.6.35.6.PAE的linux系统, 在该系统上编译好了一个.ko的驱动文件,把该ko驱动文件复制到一目标机上,该目标机器上的内核版本是2.6.35.6, 少了一个PAE,奇怪的是这两个系统均是使用同一光盘安装的.所以在目标机上insmod my.ko文件不成功, 报告错误 version magic error ,请问各位有什么好方法解决这问题吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fuhao270
2011-09-23
打赏
举报
回复
请问如何把编译好的KO文件下载的目标机(嵌入式设备)中,可不可以下到FLASH里面?
happyzeng79
2011-06-12
打赏
举报
回复
谢谢 lanyang123456兄的热心帮忙了.
happyzeng79
2011-06-12
打赏
举报
回复
[Quote=引用 2 楼 lanyang123456 的回复:]
目标机?指的是嵌入式设备吗?
在新的系统下重新编译模块,再加载该模块
或者 insmod -f my.ko
[/Quote]
不是嵌入式设备了。我是使用了我的电脑,在电脑上通过虚拟机安装了一个linux系统,安装好后,内核版本显示大致是:2.6.35.6.PAE 这样了,目标机是另外一台电脑,我使用同样的安装光盘,通过usb光驱安装了系统,安装过程比较奇怪的是,竟然自动的只给我进行了最小化的安装,安装后没有图形界面,只有文字界面模式,当然也没有安装开发工具了,然后显示的内核版本是: 2.6.35.6了,少了 PAE 的字样.所以我也不能在新的系统下编译模块. 然后也使用 insmod -f my.ko来加载驱动模块也不成功,还是会进行versiong magic.按道理,使用了 -f 强制加载理应成功的。感觉怪事多多。
happyzeng79
2011-06-12
打赏
举报
回复
[Quote=引用 1 楼 li32768 的回复:]
编译驱动时候内核路径指定为目标机的那个内核代码,就是指定交叉编译的内核路径。在Linux内核源码中,有个./include/linux/vermagic.h的文件中有定义幻数
[/Quote]
谢谢li32768兄,我找了./include/linux/vermagic.h此头文件,然后根据此头文件的所包含的一头文件(绝对路径): /usr/src/kernerls目录/include/generated/utsrelease.h,修改这个头文件所设定的版本号即可了。
翔云123456
2011-06-11
打赏
举报
回复
目标机?指的是嵌入式设备吗?
在新的系统下重新编译模块,再加载该模块
或者 insmod -f my.ko
li32768
2011-06-11
打赏
举报
回复
编译驱动时候内核路径指定为目标机的那个内核代码,就是指定交叉编译的内核路径。在Linux内核源码中,有个./include/linux/vermagic.h的文件中有定义幻数
installACMModule.zip
请对照自己的系统选择使用 cdc-acm.
ko
ch341.
ko
cp210x.
ko
installCDCACM.sh installCH341.sh installCP210x.sh These scripts expect a stock kernel, kernel
version
4.4.38-tegra More than likely, you will need to replug the USB device for it to be detected properly after installing the kernel module. These scripts check the
version
magic
of the module and compares it to the kernel
version
running on the machine. If the two do not match, the user is asked if they still want to continue the installation. If the two match, the module is installed. Note that on a
version
mismatch, the user can still install the module. However, some extra steps may be needed after the installation to get the module installed fully. The steps are not covered here, but should be readily available elsewhere. These scripts are for L4T 28.1. L4T
version
28.2 includes cp210x and cdc-acm modules.
Release Notes
February, 2018
如何寫 一個driver
簡單教學一步一步如何寫driver,提供交流!
kernel与.
ko
的
version
magic
匹配
转:http://blog.chinaunix.net/uid-24708340-id-5057664.html 我是直接在源码下打了个git 最近做一个底层源码版本管理的工作:本地调试OK的内核源码,驱动源码,
文件
系统等,作为一个工程上传至SVN服务器,以便同事们可以方便共享同步代码; 1.问题:本地编译的一整套底层代码down到设备跑都正常,但是由这套代码上传SVN服务器而后chec
ko
ut出来的代码编译的
文件
,则出现驱动
文件
加载不上的情况(驱动以模块方式加载),打印如下 log:
version
ma
解决
version
magic
不一致 ,can't insert 'xxx.
ko
'的问题
执行insmod时,出现如下错误 #insmod code.
ko
code:
version
magic
'3.18.0-linux4sam_4.7-YD-5D34-V6-g622a003 mod_unload ARMv7 p2v8 ’ should be '3.18.0-linux4sam_4.7-YD-5D34-V6-gfb5b482-dirty mod_unload ARMv7 p2v8 ’...
解决
version
magic
不一致的问题
http://tldp.org/LDP/lkmpg/2.6/html/x380.html
编译完一个kernel module后,如果安装这个module的机器运行的不是一致的kernel,会报
insmod: error inserting 'poet_atkm.
ko
': -1 Invalid module format
仔细看一下/var/log/message
文件
可以发现是说,
version
magic
不一致。
Jun 4 22
Linux_Kernel
4,465
社区成员
17,462
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章