加载Linux驱动程序时出现如上提示的原因是因为:驱动签名或需要的密钥找不到,导致驱动module认证失败。

方式一、重新配置内核

默认不推荐

方式二、修改驱动Makefile文件,在第一行增加以下语句:

CONFIG_MODULE_SIG=n

以CH341SER_LINUX驱动包为例,修改driver目录下的Makefile文件:

CONFIG_MODULE_SIG=n

ifeq ($(KERNELRELEASE), )
KERNELDIR := /lib/modules/$(shell uname -r)/build
PWD :=$(shell pwd)
default:
	$(MAKE) -C $(KERNELDIR)  M=$(PWD)  
clean:
	rm -rf *.mk .tmp_versions Module.symvers *.mod.c *.o *.ko .*.cmd Module.markers modules.order *.a *.mod
load:
	insmod ch341.ko
unload:
	rmmod ch341
install: default
	rmmod ch341 || true
	insmod ch341.ko || true
	mkdir -p /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial/ || true
	cp -f ./ch341.ko /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial/ || true
	depmod -a
uninstall:
	rmmod ch341 || true
	rm -rf /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial/ch341.ko || true
	depmod -a
else
	obj-m := ch341.o
endif

修改后重新执行make编译生成驱动文件ch341.ko,执行:sudo make load加载驱动。此时kernel log不再有警告提示:

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐