主题 : 急!关于驱动模块加载的问题! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 1347
精华: 0
发帖: 19
金钱: 190 两
威望: 69 点
综合积分: 38 分
注册时间: 2008-08-20
最后登录: 2017-09-13
楼主  发表于: 2008-09-27 12:04

 急!关于驱动模块加载的问题!

我按照手册上编译出qq2440_hello_module.ko,然后下载到板子上的home/plg下,运行
insmod /home/plg/qq2440_hello_module.ko失败,出现如下提示信息:

qq2440_hello_module: version magic '2.6.13 ARMv4 gcc-2.95' should be '2.6.13 preempt ARMv4 gcc-3.4'
insmod: cannot insert `qq2440_hello_module.ko': Invalid module format (-1): Exec format error

请问是什么错?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2008-09-27 14:54
这个出错信息不是已经告诉你了吗?不要用2.95的gcc编译模块,用3.4版本的
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 1347
精华: 0
发帖: 19
金钱: 190 两
威望: 69 点
综合积分: 38 分
注册时间: 2008-08-20
最后登录: 2017-09-13
2楼  发表于: 2008-10-02 10:49
可是我用3。4的GCC也是出现一样的提示信息,就是

:qq2440_hello_module: version magic '2.6.13 ARMv4 gcc-3.4' should be '2.6.13 preempt ARMv4 gcc-3.4'
insmod: cannot insert `qq2440_hello_module.ko': Invalid module format (-1): Exec format error

信息中这个preempt ARMv4 gcc-3.4是什么意思?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2008-10-02 22:13
preempt ARMv4 gcc-3.4 是内核认为的当前版本,而编译出来的模块的版本是'2.6.13 ARMv4 gcc-3.4‘,这样内核和要加载的模块版本不一致,内核拒绝加载这个模块。
你用的是自己编译的内核还是光盘上提供的?内核模块是怎么编译的?把Makefile贴出来看看吧
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 1347
精华: 0
发帖: 19
金钱: 190 两
威望: 69 点
综合积分: 38 分
注册时间: 2008-08-20
最后登录: 2017-09-13
4楼  发表于: 2008-10-06 08:30
我用的屏是12寸的显示屏,在拿到板之前,内核是由友善之臂修改之后的支持12寸800*600的内核,所以应该不是光盘上的,但是是友善之臂修改的。
级别: 新手上路
UID: 1347
精华: 0
发帖: 19
金钱: 190 两
威望: 69 点
综合积分: 38 分
注册时间: 2008-08-20
最后登录: 2017-09-13
5楼  发表于: 2008-10-06 08:43
请问是否是内核版本不匹配引起的?
级别: 新手上路
UID: 1347
精华: 0
发帖: 19
金钱: 190 两
威望: 69 点
综合积分: 38 分
注册时间: 2008-08-20
最后登录: 2017-09-13
6楼  发表于: 2008-10-06 13:43
问题解决了,是由于在配置内核的时候没有选择preemptable这项,选上之后可以正确加载模块,谢谢
自信人生两百年
级别: 新手上路
UID: 8078
精华: 0
发帖: 10
金钱: 70 两
威望: 36 点
综合积分: 20 分
注册时间: 2009-08-09
最后登录: 2015-08-14
7楼  发表于: 2009-08-30 16:36

 回 6楼(lwinging) 的帖子

我现在也有这个问题,“配置内核的时候没有选择preemptable这项”在哪里配置,我怎么没有找到,我是菜鸟。、
自信人生两百年
级别: 新手上路
UID: 8078
精华: 0
发帖: 10
金钱: 70 两
威望: 36 点
综合积分: 20 分
注册时间: 2009-08-09
最后登录: 2015-08-14
8楼  发表于: 2009-08-30 18:43
我找到了这个选项。。。谢谢。
我终究没能飚得过那辆宝马,只能眼看着它在夕阳中绝尘而去,不是我的引擎不好,而是我的车链子 ..
级别: 新手上路
UID: 11759
精华: 0
发帖: 32
金钱: 160 两
威望: 32 点
综合积分: 64 分
注册时间: 2009-12-20
最后登录: 2011-01-11
9楼  发表于: 2010-05-07 20:30
放到/lib/modules里面