我也是从网上看到的这种解决办法。
遇到这种情况后,通过dmesg看一下内核日志。
如果发现有如下日志,那就好办了。
hello: version magic ‘2.6.33.3 ‘ should be ‘2.6.33.3-85.fc13.i686.PAE SMP mod_unload 686 ‘
修改内核源码文件include/linux/vermagic.h
把如下VERMAGIC_STRING宏的定义删掉
#define VERMAGIC_STRING
\
UTS_RELEASE " "
\
MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT
\
MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS
\
MODULE_ARCH_VERMAGIC
然后,从新定义一个VERMAGIC_STRING宏
#define VERMAGIC_STRING "should be ‘2.6.33.3-85.fc13.i686.PAE SMP mod_unload 686 "
注意,双引号中的内容,要与dmesg输出的日志中should be后面的单引号中的内容,完全相同,别漏掉了那个空格哦。
好了,现在重新编译一下你的模块,再加载一次吧。
基本上应该会OK啦。
时间: 2024-11-09 00:47:13