在一套環境上編譯不同內核版本上的內核模塊, 是可行的, 只需要在該機器上裝上不同版本的內核的源碼,提供內核頭文件的支持即可
模塊的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 爲不同版本的內核源代碼路徑,即可。