secure boot造成Ubuntu nvidia显卡驱动安装失败

发布时间 2023-08-24 14:09:31作者: 大师兄啊哈

1. 驱动安装教程

驱动安装可参考:[1] Linux安装Nvidia显卡驱动+CUDA+cuDNN+PyTorch

这个教程,在关闭secure boot的主机上安装是没问题的,但是如果是默认开启的主机(特别是台式机),就会造成一些问题。

2. secure boot是什么

secure boot是2012年出现的Windows 8预装电脑里的UEFI功能,目前所有的Ubuntu 64位(非32位)版本支持此功能。

它强制Windows和Ubuntu系统所有系统级驱动程序都经过“签名”,证明它们被批准为正版软件。这个想法相当不错,在Windows上,Microsoft大多数驱动程序都经过了签名。

但是,在 Ubuntu 上,用户可能需要为其无线网卡、视频卡或专用硬件提供特殊的驱动程序。这些驱动程序通常未签名,因为它们可能来自许多不同的来源。如果启用了安全启动,并且驱动程序未签名,则不会加载这些驱动程序。为了加载它们,每个驱动程序都必须“签名”。这个签署驱动程序的过程并不是非常困难,但可能会很麻烦......特别是如果您更改/更新驱动程序,或更改/更新作为 Ubuntu 一部分的内核软件。每次更改都需要您重新签名驱动程序。

一旦使用Ubuntu的软件更新程序,安装了一个新的内核,或者安装了新的驱动程序,重新启动系统后,却发现无线网卡可能不再工作,视频卡无法正常显示,或者您的专用硬件不再工作,这个时候就必须重新编译并重新签名所有模块。

所以说,一旦开启了secure boot,对Ubuntu用户非常麻烦,不如直接关闭,对Ubuntu来说也没什么影响。

3. 如何查看是否开启secure boot

mokutil命令用于管理机主密钥(MOK)。这些密钥由shim层用于验证grub2和内核映像,也可用于验证安全启动是否启用。

mokutil --sb-state

如果输出:SecureBoot enabled,则表示开启了secure boot,需要手动关闭。

4. 如何关闭secure boot

去bois页面,关闭安全模式。不同的机器主板不一样,需要按照具体情况去操作。

以技嘉为例:

  1. 开机按 [F2] 键进入 BIOS 设定。
  2. 选择 [Security] > [Default Secure boot on] 设为 [Disabled]。
  3. 于 [Save & Exit] > [Save Changes] 选择 [Yes]。
  4. 于 [Security] > [Delete All Secure Boot Variables] 选择 [Yes]。
  5. 选择 [OK] 将会重新启动。

5. 如何清理已经安装失败的驱动

参考:[3] nvidia安装驱动各种问题汇总

一般有的是使用apt进行安装,有的是使用.run脚本进行安装,需要执行清理再安装新的驱动才行,不然会失败。

6. 参考

[1] Linux安装Nvidia显卡驱动+CUDA+cuDNN+PyTorch

[2] Is it safe to disable Secure Boot? [closed]

[3] nvidia安装驱动各种问题汇总

[4] Linux系统安全启动

(完)