免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1376 | 回复: 3
打印 上一主题 下一主题

[内核模块] 编译内核版本印戳不同的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-18 17:27 |只看该作者 |倒序浏览
本帖最后由 thetheo 于 2012-10-18 18:37 编辑

因为系统里面以前安装的时候有个模块没有编译进去,想现在编译进去
系统内核:
#uname -a
Linux 2.6.36 #1 SMP Fri Oct 14 13:41:52 CST 2011 i686 i686 i386 GNU/Linux

#uname -r
2.6.36

我下载了2.6.36的内核进行编译,编译完后加载模块:
#modprobe  XXX
会出现:Invalid module format


查看编译出来的模块信息:
#modinfo XXX.ko
vermagic:       2.6.36 SMP mod_unload 686


查看原先模块的信息:
#modinfo XXX.ko
vermagic:       2.6.36 SMP mod_unload modversions 686 4KSTACKS

原先的模块信息会带有版本印戳4KSTACKS

问题:
想问一下,现在怎么能使新编译出来的模块加载成功呢?

在网上查了很久,都是一篇文章转来转去的,实在没找到解决之道,迫不利己到这里来问问各位前辈们...



补充:
后来发现好像是因为没有执行make modules_install,所以没有印戳.
但是执行make modules_install,会把我没有选择的有用的模块删除,而只安装我要安装的这个模块.

make modules_install能不能指定安装我要的模块,而不删除原有的模块呢?

论坛徽章:
0
2 [报告]
发表于 2012-10-18 18:24 |只看该作者
modprobe 后面不能是.ko的文件名。

应该用insmod.

论坛徽章:
0
3 [报告]
发表于 2012-10-18 18:39 |只看该作者
回复 2# omycle


    对,我编译的时候是没有带.ko的,贴出来的时候写错了...

用insmod也是不行,一样的错误

论坛徽章:
0
4 [报告]
发表于 2012-10-19 13:48 |只看该作者
最靠谱的办法是:

机器的os使用你新编译的这个kernel.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP