在modprobe模块.ko上出现 "PKCS#7签名未用可信密钥签名 "错误。

在Ubuntu 18.04.3上,我想在同一台Ubuntu机器上创建的驱动程序上签名,并通过modprobe加载它。这台机器已经启用了SecureBoot。

在构建驱动以获得.ko文件后,我尝试对模块进行如下签名。

  1. 我通过运行以下命令创建了一个密钥
sudo update-secureboot-policy --new-key

就像”如何对司机进行非自动签约?“部分 此处 说做。(没有出错信息)

  1. 我已经尝试通过运行注册密钥。
sudo update-secureboot-policy --enroll-key**

按照同样的建议 网页…(结果是一个我不知道是什么的单行输出:”没有安装DKMS模块。”)

  1. 然后我试着用密钥签署模块,运行:
sudo kmodsign sha512 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der my_module.ko

就像它说的那样 此处. (没有计算机错误信息)

但当我尝试通过modprobe安装模块时。

sudo modprobe my_module.ko**

我得到的错误是:

modprobe.ERROR: could not insert ‘gve’: I get the error: modprobe: ERROR: could not insert ‘gve’: 操作不允许

我认为相关的dmesg条目中说。

PKCS#7签名没有被信任的密钥认可

我不知道这是否意味着我没有正确注册我创建的密钥,或者有什么其他问题。

这是我运行以下命令得到的输出。

$ mokutil --test-key /var/lib/shim-signed/mok/MOLK.der

输出是:varlibshim-signedmokMOLK. der is not enrolled.

$ sudo mokutil --import /var/lib/shim-signed/mok/MOLK.der

而输出的结果是:SKIP:varlibshim-signedmokMOLK.der已经在注册请求中。

好吧,我想我的帖子可能是重复的。这个 SO贴,但其实我是想写一个脚本来下载、构建、签署和安装驱动,但似乎重启是注册密钥的必要环节,而注册密钥是签署驱动的必要环节。有什么办法可以解决这个问题,让我在脚本中自动完成这一切?

解决方案:

这里有一些解决方案。

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,然后继续,然后选择是注册密钥,然后重新输入密码。然后选择 “确定”。

给TA打赏
共{{data.count}}人
人已打赏
未分类

Gitlab EE 12.8.5-ee 终极版禁用了Gitlab pull mirror选项。

2022-9-8 16:30:37

未分类

Google Play Console防止生产自动发布

2022-9-8 16:30:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索