在一套环境上编译不同内核版本上的内核模块, 是可行的, 只需要在该机器上装上不同版本的内核的源码,提供内核头文件的支持即可
模块的Makefile :
# builds the kprobes example kernel modules;
# then to use one (as root): insmod <module_name.ko>
obj-m := signal_trace.o
#KDIR := /lib/modules/$(shell uname -r)/build
#KDIR := /usr/src/linux-2.6.39/
KDIR := /usr/src/linux-2.6.27.19-5-obj/x86_64/xen
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -fr .tmp* *.cmd [mM]odule* [a-z]*.mod* .[a-z]*.cmd *.ko *.o
改变KDIR 为不同版本的内核源代码路径,即可。