住房和城乡建设部执业资格注册中心网站,建设企业网站企业网上银行登录官网下载,淘宝推广软件,皮具 东莞网站建设Linux系统下加载驱动模块出现如上错误提示的原因为#xff1a;此驱动未经过签名。
方法一、关闭Secure Boot
如果是物理机#xff0c;需要开机进入BIOS#xff0c;找到“Secure Boot”的选项#xff0c;然后关闭。
如果是虚拟机#xff0c;可以打开虚拟设置#xff0c…Linux系统下加载驱动模块出现如上错误提示的原因为此驱动未经过签名。
方法一、关闭Secure Boot
如果是物理机需要开机进入BIOS找到“Secure Boot”的选项然后关闭。
如果是虚拟机可以打开虚拟设置在如下选项中选择“”如下所示
方法二、构建签名环境
1、安装软件包mokuli 和shim-signed
sudo apt install mokutil
sudo apt install shim-signed
sudo update-secureboot-policy --new-key
2、创建一个公共/私有RSA密钥对来对内核模块进行签名。以下示例将密钥对存储在/root/module-signing/目录中
sudo -i
mkdir /root/module-signing
cd /root/module-signing
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj /CNYOUR_NAME/
chmod 600 MOK.priv 3、使用mokutil一种导入或删除机器所有者密钥MOK的工具导入公钥然后在机器重新启动时注册它。此步骤中的密码需要记住系统重启的时候需要输入。删除公钥也需要此密码
mokutil --import /root/module-signing/MOK.der
input password:
input password again:注如果执行此步骤遇到错误EFI variables are not supported on this system是因为此机器没有开启UEFI如是物理机直接修改BIOS如果是VMware虚拟机则需要在虚拟机设置里开启。如下所示 4、重新启动机器。当引导程序启动时会看到一个屏幕要求按下按钮进入MOK管理器EFI实用程序。请注意在此步骤中任何外部外部键盘都无法工作。在第一个菜单中选择Enroll MOK然后继续然后选择Yes以注册密钥并重新输入步骤3中创建的密码。然后选择“确定”继续系统引导。 5、系统重启后就可以使用公钥对目标驱动模块签名了这里以USB转串口芯片CH340的Linux驱动模块ch341.ko为例签名前的驱动模块信息 使用如下命令对ch341.ko驱动文件签名
1. sudo -i
2. /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 /root/module-signing/MOK.priv /root/module-signing/MOK.der ch341.ko
查看签名后的驱动模块信息 当驱动模块信息中包含“Module signature appended”信息则说明驱动已经签名成功了。此时再加载驱动就不会提示“Key was rejected by service”。
注如未来内核更新将需要再次对更新后的内核进行签名因此可以将签名命令放入脚本中该脚本可以在以后根据需要运行。
参考virtualbox - How to sign a kernel module Ubuntu 18.04 - Super User