首页 > 代码库 > insmod hello.ko -1 Invalid module format最简单的解决办法

insmod hello.ko -1 Invalid module format最简单的解决办法

我也是从网上看到的这种解决办法。

遇到这种情况后,通过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啦。

insmod hello.ko -1 Invalid module format最简单的解决办法