自 xenial 以来,使用 shimx64 时无法加载 NVIDIA 专有驱动程序

自 xenial 以来,使用 shimx64 时无法加载 NVIDIA 专有驱动程序

我的 PC 从 wily 升级到 xenial(均为 Kubuntu 版本)后出现了奇怪的现象。升级前后,我的 BIOS 中有两个“ubuntu”启动选项。在这里,您可以看到 xenial 下每个条目背后的值:

stephane@nausicaa:~$ sudo efibootmgr -v
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0002,0000
Boot0000  ubuntu        HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,0x800,0x64000)/File(\EFI\ubuntu\shimx64.efi)
Boot0002* ubuntu        HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,0x800,0x64000)/File(EFI\Ubuntu\grubx64.efi)

借助 wily,我一直在使用 shimx64(第一个条目)和 NVIDIA 专有驱动程序,没有任何问题。由于升级到 xenial shimx64(第一个条目)不会加载 NVIDIA 专有驱动程序。我不得不改用 grubx64(第二个条目)。

当我使用 grubx64 时,我在内核日志中发现“nvidia”或“NVRM”的以下条目:

nvidia: module license 'NVIDIA' taints kernel.
nvidia: module verification failed: signature and/or required key missing - tainting kernel
[drm] Initialized nvidia-drm 0.0.0 20150116 for 0000:01:00.0 on minor 0
NVRM: loading NVIDIA UNIX x86_64 Kernel Module  340.96  Sun Nov  8 22:33:28 PST 2015
nvidia_uvm: Loaded the UVM driver, major device number 245
NVRM: Your system is not currently configured to drive a VGA console
NVRM: on the primary VGA device. The NVIDIA Linux graphics driver
NVRM: requires the use of a text-mode VGA console. Use of other console
NVRM: drivers including, but not limited to, vesafb, may result in
NVRM: corruption and stability problems, and is not supported.

当我使用 shimx64 时,内核日志中没有“nvidia”或“NVRM”的条目,甚至没有错误消息。

我以前一直认为 shimx64 只是 grubx64 的一个签名链式加载器,但从内核日志的差异来看,显然并非如此简单。有人能解释一下那里发生了什么吗?这可能与驱动程序的数字签名有关吗?

答案1

NVIDIA 不对其专有的视频驱动程序进行签名。即使禁用了安全启动,Linux 内核也始终会检查内核模块中的签名。当我使用 grubx64 时,我可以看到此消息:

kernel: nvidia: module verification failed: signature and/or required key missing - tainting kernel

这不是一个错误,因为安全启动被禁用;NVIDIA 专有视频驱动程序仍然有效。有趣的是,当我使用 shimx64 时,不会出现此消息。内核会跳过 NVIDIA 驱动程序,而不会出现任何消​​息。我可以根据以下消息判断安全启动已启用:

kernel: Secure boot enabled

相关内容