您的位置:首页 > 其它

解决3.2.0 kernel编译问题:ERROR: "__modver_version_show"

2013-03-03 15:48 435 查看
安装的是ubuntu 11.10,下载3.2.0的kernel,先编译kernel,结果碰到如下出错信息:

ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined!

安装原来的编译经验,应该是__modver_version_show未实现,或者实现体未编译进来,但是发现params.c中已经实现,params.o已生成并有链接,module.h中也有声明,但是有宏分割。怀疑是宏达问题,研究了半天makefile和头文件包含,未果。放狗上网一搜,发现在3.0.0开始,国外的国内的网站、论坛上就已经有人陆陆续续反映这个问题。有一些解决方法,但是发现在3.2.0中已经引入了,而问题依旧。没办法,只能自力更生了。

常规思路,既然解决不了,就研究研究有没有办法规避。前面编译过2.6.25.11的kernel没有发现过此问题,对比代码发现__modver_version_show函数定义实现是新引入的(个人猜测是3.0.0开始引入的)。然后再看了下staging这个目录的用途,说是一些不成熟驱动代码的专用目录,主要是希望放到社区上让大家测试的,成熟以后再并入主干。哈哈,眼睛一亮,好,既然是不成熟,哥就把它阉割掉,应该对系统没啥影响。想到就做,在make menuconfig配置选项中找到了(device driver中)staging这个配置项,直接选择为N([]中为空),重新编译,问题解决。

3.2.0 kernel能正常启动,打RT补丁正常,RT Linux启动正常。

这个问题对开发人员来说应该只是个小问题,但苦于对linux不熟,让哥这个老程序员急切间还真是无从下手,放狗网上也没搜到啥有用的解决方法。估计还有很多像哥一样的入门人浪费时间在这个问题上,所以特把解决方法说出来,共享之!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐