使用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
|