LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 958|回复: 4

模块装载错误

[复制链接]
发表于 2003-11-19 10:40:44 | 显示全部楼层 |阅读模式
模块本身很简单,如下
#define MODULE
#include<linux/module.h>
                                                                                
int init_module(void)
{
        printk("<1>Hello, world\n");
        return 0;
}
                                                                                
void cleanup_module(void)
{
        printk("<1>Goodbye cruel world\n");
}
装载模块的错误信息是:
$ /sbin/insmod hello.o
hello.o: kernel-module version mismatch
        hello.o was compiled for kernel version 2.4.20
        while this kernel is version 2.4.20-8.
请问这是何原因,该怎么办。谢谢
发表于 2003-11-19 13:41:04 | 显示全部楼层
内核和编译器版本号不匹配
内核版本号: /usr/src/linux/include/linux/version.h
编译器版本号: /usr/include/linux/version.h

改成一致的即可
发表于 2003-11-22 10:35:20 | 显示全部楼层
那么请问象楼主这样就可以随心所欲地把自己写的模块动态加载进内核了吗?用lsmod可以列出来吗?
发表于 2003-11-22 13:04:50 | 显示全部楼层
2楼的方法其实并不是很妥. 其实可以参照LDD的sample, 直接指定
ifdef CONFIG_MODVERSIONS
#        CFLAGS += -DMODVERSIONS -include $(KERNELDIR)/include/linux/modversions.h
        CFLAGS += -DMODVERSIONS -include $(KERNELDIR)/include/config/modversions.h
endif
如果是2.4, 就是前面一行;2.6用后面一行
发表于 2003-11-23 08:10:21 | 显示全部楼层

象你这个加一个强制安装就好了

好像是-d什么的
想不起来了,自己man一下吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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