insmod插入内核模块失败

内核编译和嵌入式产品的设计与开发
回复
maple_169324
帖子: 11
注册时间: 2018-12-29 14:13
系统: ubuntu

insmod插入内核模块失败

#1

帖子 maple_169324 » 2019-11-04 21:54

在执行sudo insmod global_test.ko后,dmesg显示插入失败
[ 124.116841] global_test: loading out-of-tree module taints kernel.
[ 124.116883] global_test: module verification failed: signature and/or required key missing - tainting kernel

按照网上的说法,将设置CONFIG_MODULE_SIG设置为n。但是依然解决不了问题。也尝试了将内核路径中.config的CONFIG_MODULE_SIG设置为n。结果也是一样的
obj-m:=global_test.o #产生global_test模块的目标文件
CURRENT_PATH:=$(shell pwd) #模块所在的当前路径
LINUX_KERNEL:=$(shell uname -r) #linux内核代码的当前版本
LINUX_KERNEL_PATH:=/usr/src/linux-headers-$(LINUX_KERNEL)
CONFIG_MODULE_SIG=n

all:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules

clean:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean
头像
astolia
论坛版主
帖子: 6422
注册时间: 2008-09-18 13:11

Re: insmod插入内核模块失败

#2

帖子 astolia » 2019-11-04 22:34

maple_169324 写了: 2019-11-04 21:54 在执行sudo insmod global_test.ko后,dmesg显示插入失败
[ 124.116841] global_test: loading out-of-tree module taints kernel.
[ 124.116883] global_test: module verification failed: signature and/or required key missing - tainting kernel
模块验证失败不等同于模块加载失败。你用lsmod确认过加载失败了?不要想当然
CONFIG_MODULE_SIG是在编译内核时设置的,不是给你在编译模块时设置,内核都编译好了再去修改.config更没有什么用处
ubuntu官方内核只是将CONFIG_MODULE_SIG设成了y,没有设置CONFIG_MODULE_SIG_FORCE,所以并没有强制要求模块签名,也不会拒绝没有签名的模块加载
回复