今天重新编译以前写的模块《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'
继续,原来是内核源码 的版本和现在使用的内核不一致造成的,包括上一个问题也是。哈哈!重启,选择合适内核版本!