我最近在配备 RTX3050 的笔记本电脑上安全启动了 Arch 和 Fedora。
众所周知,我必须在 Fedora 上签署我的 Nvidia 模块,以便内核加载它们。但是,我发现 Arch 的情况并非如此。Arch 加载 Nvidia 模块,即使它们没有签名——当然,前提是内核和 GRUB 是签名的。
经过研究,我在 ArchWiki 上看到了这篇文章,其中提到了module.sig_enforce=1
强制签名验证的内核参数。但是,Fedora 文档的这个条目中的表 3提到,启用 SecureBoot 时,所述内核参数没有任何区别。
内核文档在内核配置中提到CONFIG_MODULE_SIG_FORCE
了选项。所以,我决定看看 Fedora 和 Arch 的配置。
果然,Arch没有设置选项。但是, Fedora也不是。
那么为什么在处理模块时会出现这种差异呢?
编辑:CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT
在 Fedora 的 Matrix Room 聊天后,我发现 Fedora 配置中存在但 Arch 中没有的选项。但是,我在docs.kernel.org上找不到任何与此相关的文档;这里仅作参考。是否有用于记录所有内核配置选项的不同站点?
正如您所发现的,这是由
CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT
. 该设置由尚未在上游合并的内核补丁支持;你会在 Fedora 和 RHEL 内核中找到它,但在 Arch 中找不到。由于它尚未在上游合并,因此您不会在上游内核文档或任何其他描述上游内核的站点上找到它。