如何安装启用安全启动的 nvidia 驱动程序?

如何安装启用安全启动的 nvidia 驱动程序?

我找到了这个帖子: 在 Ubuntu 16.04 中未找到 nvidia-smi 命令 | 询问 Ubuntu

这意味着启用 UEFI 安全启动nvidia-smi在 Ubuntu 中找不到:

$ nvidia-smi
nvidia-smi: command not found

关于如何在 NVIDIA 驱动程序运行的情况下启用安全启动,您有什么想法吗?

我发现这篇关于解决安全启动问题的文章虚拟框,只是仍然不知道如何MOK经理作品:

VirtualBox + 安全启动 + Ubuntu = 失败 | Øyvind Stegard 博客

答案1

尝试这个:

  1. 从 NVIDIA 网站下载最新的驱动程序:https://www.geforce.com/drivers

  2. 通过运行以下命令创建一对新的私钥(Nvidia.key)和公钥( ):Nvidia.der

    openssl req -new -x509 -newkey rsa:2048 -keyout PATH_TO_PRIVATE_KEY -outform DER -out PATH_TO_PUBLIC_KEY -nodes -days 36500 -subj "/CN=Graphics Drivers"
    

    例子:

    openssl req -new -x509 -newkey rsa:2048 -keyout /home/itpropmn07/Nvidia.key -outform DER -out /home/itpropmn07/Nvidia.der -nodes -days 36500 -subj "/CN=Graphics Drivers"
    
  3. nvidia.der输入以下命令将公钥()注册到 MOK(机器所有者密钥):

    sudo mokutil --import PATH_TO_PUBLIC_KEY
    

    例子:

    sudo mokutil --import /home/itpropmn07/Nvidia.der
    

    此命令要求您创建注册密码。之后,重新启动计算机,在下次启动时,当系统要求您注册时,请输入您在此步骤中创建的密码进行注册。阅读更多:https://sourceware.org/systemtap/wiki/SecureBoot

  4. 首次安装 NVidia 驱动程序时,需要输入以下命令禁用 Nouveau 内核驱动程序:

    echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf; sudo update-initramfs -u
    
  5. 重启。

  6. 输入以下命令安装驱动程序:

    sudo sh ./XXXXXX.run -s --module-signing-secret-key=PATH_TO_PRIVATE_KEY --module-signing-public-key=PATH_TO_PUBLIC_KEY
    

    在哪里:

    XXXXXX:文件安装程序的名称(从 NVIDIA 下载)。

    PATH_TO_PRIVATE_KEY:私钥的完整路径。如果您将其放在主文件夹中,请使用/home/USER_NAME/而不是~

    PATH_TO_PUBLIC_KEY:公钥的完整路径。如果您将其放在主文件夹中,请使用/home/USER_NAME/而不是~

    例子:

    sudo sh ./NVIDIA-Linux-x86_64-390.67.run -s --module-signing-secret-key=/home/itpropmn07/Nvidia.key --module-signing-public-key=/home/itpropmn07/Nvidia.der
    
  7. 完毕。

阅读更多https://us.download.nvidia.com/XFree86/Linux-x86/319.32/README/installdriver.html

答案2

itpropmn07 的推荐对我来说很管用。我必须进行一项更改,这是最后一步。

而不是输入这个命令:

sudo sh ./XXXXXX.run -s --module-signing-secret-key=PATH_TO_PRIVATE_KEY --module-signing-public-key=PATH_TO_PUBLIC_KEY

我输入的命令没有-s

sudo sh ./XXXXXX.run --module-signing-secret-key=PATH_TO_PRIVATE_KEY --module-signing-public-key=PATH_TO_PUBLIC_KEY

通过此命令我可以以交互方式安装驱动程序。

答案3

我还能够使用@itpropmn07 的方法成功安装驱动程序,只需稍作改动即可。

mokutil --import在我的华硕主板上不起作用,所以我不得不从 UEFI 接口内部导入密钥。

可以通过将 .der 文件加载到 USB 驱动器并导航到“安全启动”>“密钥管理”部分并选择附加默认数据库选项。

然后会弹出一个窗口询问您是否要附加系统默认数据库。请确保选择,然后您就可以浏览 USB 驱动器上的文件。选择密钥证书 blob作为所选的文件类型。最后,保存并退出。

您可以通过运行以下命令来验证导入是否成功:mokutil --db

注意:最好备份安全启动密钥并将其存储在安全的地方,以防万一。为此,请使用“保存安全启动密钥”选项。恢复密钥时,请使用UEFI 安全变量作为文件类型。

参考:http://www.rodsbooks.com/efi-bootloaders/controlling-sb.html#setuputil

答案4

我通常在更新 BIOS 时遇到此问题,安全启动被关闭,已注册的密钥被删除。对我而言,有效的方法是启动 Ubuntu 并启用安全启动,重建内核模块,再次重启,注册密钥,然后重启 Ubuntu。请参阅这个答案一句话。

相关内容