我找到了这个帖子: 在 Ubuntu 16.04 中未找到 nvidia-smi 命令 | 询问 Ubuntu
这意味着启用 UEFI 安全启动nvidia-smi在 Ubuntu 中找不到:
$ nvidia-smi
nvidia-smi: command not found
关于如何在 NVIDIA 驱动程序运行的情况下启用安全启动,您有什么想法吗?
我发现这篇关于解决安全启动问题的文章虚拟框,只是仍然不知道如何MOK经理作品:
答案1
尝试这个:
从 NVIDIA 网站下载最新的驱动程序:https://www.geforce.com/drivers。
通过运行以下命令创建一对新的私钥(
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"
nvidia.der
输入以下命令将公钥()注册到 MOK(机器所有者密钥):sudo mokutil --import PATH_TO_PUBLIC_KEY
例子:
sudo mokutil --import /home/itpropmn07/Nvidia.der
此命令要求您创建注册密码。之后,重新启动计算机,在下次启动时,当系统要求您注册时,请输入您在此步骤中创建的密码进行注册。阅读更多:https://sourceware.org/systemtap/wiki/SecureBoot
首次安装 NVidia 驱动程序时,需要输入以下命令禁用 Nouveau 内核驱动程序:
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf; sudo update-initramfs -u
重启。
输入以下命令安装驱动程序:
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
完毕。
阅读更多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。请参阅这个答案一句话。