今天重新编译以前写的模块《2.6内核netfilter包截获》,出现错误:
NF_INET_PRE_ROUTING’ undeclared (first use in this function)
于是将
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
改为:
make -C /usr/src/linux/ SUBDIRS=$PWD modules
编译通过!
但是insmod是出错:
insmod: error inserting 'simpFilter.ko': -1 Invalid module format
查看/var/log/messages,有如下字样:
Sep 10 08:51:44 vm04 kernel: simpFilter: no version for "struct_module" found: kernel tainted.
Sep 10 08:51:44 vm04 kernel: simpFilter: version magic '2.6.30.5 SMP mod_unload modversions 686 4KSTACKS ' should be '2.6.18-128.el5 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1'
继续,原来是内核源码 的版本和现在使用的内核不一致造成的,包括上一个问题也是。哈哈!重启,选择合适内核版本!
本文记录了在编译旧版内核模块时遇到的问题及解决过程,包括因内核版本不匹配导致的编译错误和加载失败,并分享了如何选择正确的内核进行编译。
1643

被折叠的 条评论
为什么被折叠?



