使用insmod安裝內核模塊失敗
由於centos主機與要開發的平臺系統版本號不同,因此在編譯的時候,如果是要燒錄到路由器中,則以其系統版本號爲準,如果是在PC機中模擬運行,則以主機系統版本號爲準。
通過命令uname –r查得PC主機的系統版本號爲3.10.0-957.el7.x86_64,而設備開發系統版本號爲3.10.14,因此在編譯的時候,注意Makefile中相關的路徑問題:
當在主機中模擬運行的時候,使用如下Makefile:
obj-m += dns.o
export PWD := $(shell pwd)
.PHONY: modules
KDIR = /usr/src/kernels/3.10.0-957.21.3.el7.x86_64
modules:
#$(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
#$(MAKE) -C $(KLIB_BUILD) M=$(PWD) clean
$(MAKE) -C $(KDIR) M=$(PWD) clean
如果要編譯到路由器中去運行,則:
obj-m += dns.o
export PWD := $(shell pwd)
.PHONY: modules
#KDIR = /usr/src/kernels/3.10.0-957.21.3.el7.x86_64
modules:
$(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules
#$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KLIB_BUILD) M=$(PWD) clean
#$(MAKE) -C $(KDIR) M=$(PWD) clean