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


安装的是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不熟,让哥这个老程序员急切间还真是无从下手,放狗网上也没搜到啥有用的解决方法。估计还有很多像哥一样的入门人浪费时间在这个问题上,所以特把解决方法说出来,共享之!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值