QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1084|回复: 6

求助!模块安装问题?

[复制链接]
发表于 2004-6-17 15:22:35 | 显示全部楼层 |阅读模式

出错信息:./scull.o was compiled for kernel version 2.4.20
while this kernel is version 2.4.20-8

我知道是版本控制问题,从新编译了不带版本控制功能的内核
请各,还是不行?why?
那位大虾帮忙解释一下!!!
发表于 2004-6-17 17:41:25 | 显示全部楼层
insmod -f xxx

or

modify the version NO. in the source code
回复

使用道具 举报

 楼主| 发表于 2004-6-17 23:24:15 | 显示全部楼层
重编译内核为不支持版本控制还是没用哈!!
回复

使用道具 举报

发表于 2004-6-18 03:06:25 | 显示全部楼层
which kernel u are using? which kernel u compiled?
回复

使用道具 举报

 楼主| 发表于 2004-6-18 12:51:02 | 显示全部楼层
我使用的内核是2.4.20-8
但我把版本控制关了再编译它,,还是不行!
回复

使用道具 举报

发表于 2004-6-24 20:26:11 | 显示全部楼层
你是不是用的red hat linux9?我在学习《linux设备驱动程序》时,也遇到过类似问题,我的理解和解决方法是这样的,希望对你能有帮助:
一开始我编译那本书提供的例子时,插入模块也是出现和你一样的警告,说模块版本和内核版本不匹配,我觉得所谓的版本不匹配,应该指的是你所用的内核头文件的版本应该和你所用的操作系统内核匹配。我发现我的red hat9里的/usr/src/下并没有linux内核的源码,这种情况下你所需要的应用于内核编程的头文件默认的目录其实是/usr/include/linux,而不是/usr/src/linux-2.4.20-8/include/linux/。事实上/usr/incude/linux/里的头文件的版本是2.4.20而不是2.4.20-8,我想这应该是出警告的原因。
解决办法是下载linux-2.4.20-8的内核源码,放到/usr/src目录下(如果你的/usr/src/下已经有了linux-2.4.20-8的内核源码的话,前面一步就可以省了),然后编译内核模块时加上编译选项“-I/usr/src/linux-2.4.20-8/include/”,这样你编译器会优先到正宗的2.4.20-8版本源码的include目录下寻找头文件,所以你的模块版本就是2.4.20-8了。

呵呵,语文不好,罗里罗唆说了一大堆,不知道能不能帮上你,有什么问题再商讨吧。
回复

使用道具 举报

发表于 2004-6-24 20:34:40 | 显示全部楼层
对了,如果你直接用那本书提供的示例的makefile进行编译,要注意rules.make规则里要检查源码文件里是否有.config文件,如果检查不到可能会出错,或还是引用/usr/include/下的头文件,建议你最好把那句话注释掉或忽略错误。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-16 08:45 , Processed in 0.037783 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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