version magic '2.6.30.4 mod_unload ARMv4 ' should be '2.6.30.4-EmbedSky'

来源:互联网 发布:喜欢的工作知乎 编辑:程序博客网 时间:2024/04/30 09:04

在做驱动的时候,我遇到下面的提示错误。在网上差了好久,发现我并没有犯他们介绍的错误。用下面的方法,我解决了。

version magic '2.6.30.4 mod_unload ARMv4 ' should be '2.6.30.4-EmbedSky'

文章出处:http://blog.163.com/cailing_07@126/blog/static/33915087201211094613923/


1,selected device is not a touchscreen I understand
想去找源码,没找到。(后来知道,我是有源码的。)
2,可能是配置问题。也没看到有什么错。probe是成功了。
3,看到一句信息。
input_polldev: version magic '2.6.30.4-EmbedSky mod_unload ARMv4 ' should be '3.2.5apple2.0 mod_unload ARMv4 p2v8 '
insmod: can't insert '/lib/input-polldev.ko': invalid module format
怀疑input-polldev.ko没有加载出错。于是在kenrel中,发现根本没选择该项,于是选成y,加载到kernel中。然后在文件系统中删除ismod input-polldev.ko。
4,结果还是不行。于是用原本的kernel,发现input-polldev.ko模块不加载也没问题,触摸屏照用。于是只能把问题集中到“selected device is not a touchscreen I understand”
去看tslib中的源码。发现问题出在input_raw.c文件中。找到了线索。

arm交叉编译工具中的头文件库中的linux/input.h中的EV_VERSION定义为
    #define EV_VERSION        0x010000
而linux内核include/linux/input.h中的EV_VERSION定义为
    #define EV_VERSION        0x010001
由此可见问题就出现在内核的输入子系统的版本号不匹配的问题
    
解决办法:
    1.将内核源代码里的include/linux/input.h中的
    #define EV_VERSION        0x010001
    改为:
    #define EV_VERSION        0x010000

 

文章转自http://blog.sina.com.cn/s/blog_69dd1a0901019cgd.html  在此表示感谢!