我正在运行 Fedora 内核版本:4.15.3-300.fc27.i686)。我正在尝试加载自定义设备驱动程序。当我尝试使用该设备(通过 C 程序中的 open() 调用)时,调用错误,errno 等于 6 (ENODEV)。当我进一步研究这个问题时,我看到来自 dmesg 的以下消息:
[Tue Apr 24 17:34:32 2018] mymodule: loading out-of-tree module taints kernel.
[Tue Apr 24 17:34:32 2018] mymodule: module verification failed: signature and/or required key missing - tainting kernel
我认为这是驱动程序未签名的问题。这Fedora 系统管理员指南告诉我我需要重建内核以添加新密钥,但也说
如果禁用 UEFI 安全启动并且如果module.sig_enforce未指定内核参数,则可以成功加载未签名的内核模块和没有公钥的已签名的内核模块。
我运行的计算机使用 BIOS,不支持 UEFI。
我如何知道当前的值是多少module.sig_enforce设置是,如何更改它?
答案1
实际上埃尔默的回答并没有错。评论中引用的链接(下面的片段)实际上列出了/etc/grub2.cfg
.虽然它是一个符号链接,但仍然是正确的。将此符号链接 ( /etc/grub2.cfg
)修改为的做法/boot/grub2/grub.cfg
是有风险的,并且有更好/更安全的方法来实现预期结果。
直接来自:红帽企业 Linux 7 | 第 26 章使用 GRUB 2红帽客户门户
26.4。使用 grubby 工具对 GRUB 2 菜单进行持久更改 grubby 工具可用于从 grub.cfg 文件读取信息并对其进行持久更改。例如,它可以更改 GRUB 2 菜单项以指定在系统启动时传递给内核的参数以及更改默认内核。
在 Red Hat Enterprise Linux 7 中,如果在未指定 GRUB 2 配置文件的情况下手动调用 grubby,则默认搜索/etc/grub2.cfg
,这是文件的符号链接grub.cfg
,其位置取决于体系结构。如果找不到该文件,它将搜索依赖于体系结构的默认值。
答案2
在 RHEL7 中,您可以修改 /etc/grub2.cfg 并将其删除或将值从 yes 设置为 no。既然你使用的是 Fedora 它应该相似。