對后續的內核insmod並無影響,可以不用管。
編譯ko的linux系統內核與insmod模塊的linux系統的內核樹不一樣導致的。
通過uname -r命令發現,2個系統的發行版號不一樣。最好是找2個內核版本一樣的進行編譯,下述方案可能會不成功。
在書寫makefile的時候,改成(insmod模塊的linux系統)的內核編譯,通過命令uname -r查看linux系統的發行版號。
#Makefile 2.6 obj-m:=name.o KDIR:=/lib/modules/$(shell uname -r)/build #需要更改 PWD:=$(shell pwd) default: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: rm -f *.o *.ko *.symvers *.order *.mod.* *.ko.*
需要更改KDIR
insmod模塊的linux系統上執行:
[root@localhost ~]# uname -r 3.10.0-693.el7.x86_64
更改編譯ko的makefile文件
#Makefile 2.6 obj-m:=name.o KDIR:=/lib/modules/3.10.0-693.el7.x86_64 /build #更改成功 PWD:=$(shell pwd) default: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: rm -f *.o *.ko *.symvers *.order *.mod.* *.ko.*
