我使用的是 Fedora 33。为了启动自定义内核,我必须生成 X.509 证书来对内核进行签名。这部分工作正常。
我还可以使用相同的证书签署自定义内核模块,并且可以在加载 Fedora 内核时加载该模块。
但是,当我使用与 Fedora 内核相同的配置编译 vanilla 主线内核并启动它时,我无法加载自定义模块,即使它是使用相同的内核签名的。
虽然.builtin_trusted_keys
密钥环没有列出我的证书(Fedora 内核也是如此),但输出dmesg
显示该证书已从 MOK 加载。
我是否遗漏了什么?
编辑:我可以成功使用certs/signing_key.x509
来签名和加载模块,但不能成功使用 MOK 中的模块。
答案1
看起来 Fedora 包含这个下游补丁来使用平台密钥来验证模块签名:https://gitlab.com/cki-project/kernel-ark/-/commit/b697ff5e26974fee8fcd31a1e221e9dd41515efc