在 Ubuntu 18.04.3 上,我想签署一个我在同一台 Ubuntu 机器上构建的驱动程序并通过 modprobe 加载它。这台机器启用了 SecureBoot。
在构建驱动程序以获取 .ko 文件后,我尝试按如下方式对模块进行签名:
sudo update-secureboot-policy --new-key
像“ 我怎样才能对驱动程序进行非自动签名? ”部分 here说要做。
(没有输出/错误信息)
sudo update-secureboot-policy --enroll-key**
正如同一个 page 所建议的那样.
(这导致单行输出,我不知道该怎么做:
“未安装 DKMS 模块。”)
sudo kmodsign sha512 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der my_module.ko
正如它所说的那样here . (没有输出/错误信息)
但是当我尝试通过 modprobe 安装模块时:
sudo modprobe my_module.ko**
我得到错误:
modprobe: ERROR: could not insert 'gve': Operation not permitted
我认为相关的 dmesg 条目说:
PKCS#7 signature not sugned with a trusted key
我不确定这是否意味着我没有注册正确创建的 key 或可能存在什么其他问题。
这是我通过运行以下命令得到的输出:
$ mokutil --test-key /var/lib/shim-signed/mok/MOLK.der
输出是:
/var/lib/shim-signed/mok/MOLK.der 未注册
$ sudo mokutil --import /var/lib/shim-signed/mok/MOLK.der
输出是:
跳过:/var/lib/shim-signed/mok/MOLK.der 已经在注册请求中
好的,我认为我的帖子可能与 this 重复S/O帖子,但我实际上正在寻找一个脚本来下载,构建,签名和安装驱动程序,但似乎重新启动是注册 key 的必要部分,这是签署驱动程序的必要部分。有没有办法让我在脚本中自动化所有这些?
最佳答案
这是一些解决方案。
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 "/CN=YOUR_NAME"
chmod 600 MOK.priv
mokutil --import /root/module-signing/MOK.der
input password:
input password again:
reboot
注册 MOK,然后继续,然后选择是注册 key ,然后重新输入密码。然后选择确定。
关于ubuntu - modprobe module.ko 上的 "PKCS#7 signature not signed with a trusted key"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60009311/