QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1342|回复: 6

insmod时出现kernel mismatch问题,如何?

[复制链接]
发表于 2004-8-9 10:32:22 | 显示全部楼层 |阅读模式
(也许贴到这合适一点)
我正在一个Linux系统(为方便下面写为A系统,kernel为2.4.1下配置网卡(BroadCom的),需要模块bcm4400.o。
问题是:A系统不具有编译源码的能力(为什么?我也不知道)
我不知怎样才能在别的kernel verison下(手边有RedHat 8.0,9.0)由driver源码编译生成适合kernel 2.4.18的模块。无奈,我在Red Hat8.0(kernel 2.4.18-14)下编译的模块。当插入时出现问题(几乎是必然的!):
$insmod bcm4400
Using /lib/modules/2.4.18/kernel/driver/net/bcm4400.o
/lib/modules/2.4.18/kernel/driver/net/bcm4400.o:kernle-module version mismatch.
/lib/modules/2.4.18/kernel/driver/net/bcm4400.o was compiled for kernel version 2.4.18-14,
while this kernel is version 2.4.18
我想这是一个很普遍的问题(在不同的kernel version下试验同一个driver,只不过这一次的条件不太齐全),应该有人遇到过类似的问题吧。
应该从哪里解决呢?gcc的版本?所链接的库文件的版本?
恳请知道的同志赐教!不胜感谢。

PS:
若强制插入,
$insmod -f bcm4400
则又会出现一堆的"unresolved symbol"的错误。
发表于 2004-8-9 22:13:43 | 显示全部楼层
this is unsuitable for "内核源代码阅读交流"

if A uses 2.4.1, then u have no chance to compile a driver for it under 2.4.18. there are big changes from .1 to .18.
回复

使用道具 举报

 楼主| 发表于 2004-8-10 09:52:36 | 显示全部楼层
不好意思,A系统的kernel 为2.4.18,上面是笔误。
因为实在不知贴在本站哪个版块更合适些,只好借贵宝地一用了。
any advice?thanks.
回复

使用道具 举报

发表于 2004-8-11 21:54:20 | 显示全部楼层
it is hard to solve. post the error message here (when use insmod -f).
回复

使用道具 举报

发表于 2004-8-15 06:49:44 | 显示全部楼层
重新编译内核,去掉loadable module support选项里的module versioning support试试
回复

使用道具 举报

 楼主| 发表于 2004-8-16 14:23:10 | 显示全部楼层
thank everyone here.
first,我想我理解1ball的建议:如果kernel中symbol和module都同样的没有version信息,那就不会出现kernel mismatch;其实kernel mismatch这个错误现在已不再出现,我参考了LDD中的方法,在编译driver时用-I指定到kernel2.4.18的include下即可。
second,在上面所说不再kernel mismatch的情况下,我现在insmod bcm4400时会出现一些“unrosolved symbol”错误,这些错误比顶楼时“insmod -f bcm4400”时已少很多,但还是无法消除。
我想这是由于kernel中有一些symbol没有exported的原因,遗憾的是,现在那台机器已被分解(惨!!),因此一时无法如好心的Dragonfly(thanks for your reply)之言将error info贴于此,但都是一些common "unresolved symbol" 错误。
third,如何从"unresolved symbol"由缰索骥的找到问题的根本,现不知该用什么方法?
过几天我再把error info 贴于此,请不要见怪!.
回复

使用道具 举报

发表于 2004-11-30 11:12:07 | 显示全部楼层
可以把Red Hat8.0(kernel 2.4.18-14)内核重新编译为kernel 2.4.18。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 09:38 , Processed in 0.042246 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表