所以当我尝试将我的简单设备驱动程序放入内核时,出现此错误:“模块验证失败:缺少签名和/或必需的 key - 污染内核”。我尝试重新编译内核,更改我的 makefile ,但没有任何帮助。此时此刻我的 makefile :
obj-m := DeviceD.o
KERNEL_DIR = /usr/src/linux-headers-$(shell uname -r)
all:
$(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules
clean:
rm -rf *.o *.ko *.mod.* *.symvers *.order *~
也试过这个makefile:
obj-m += DeviceD.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
最佳答案
这意味着您没有在模块描述宏中使用GPL。这是一个警告,表明您正在使用一些非开放软件内核模块。
要停止获取该消息,您必须更改驱动器代码中的 MODULE_LICENSE() 宏参数以包含 GPL 字符串。
关于Linux 模块验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27348190/