UEFI安全启动模式下安装Ubuntu的NVIDIA显卡驱动
UEFI安全启动模式下安装Ubuntu的NVIDIA显卡驱动
本文将详细介绍在UEFI安全启动模式下,如何在Ubuntu系统中安装NVIDIA显卡驱动。文章包含了从驱动下载、软件更新到驱动安装的完整步骤,并提供了具体的命令行操作和截图参考,适合对Linux系统和显卡驱动安装有一定基础的读者。
一、从NVIDIA官网下载驱动
- 在浏览器地址栏输入nvidia.cn进入NVIDIA官网
- 点击网页右上角的“驱动程序”,进入
- 根据自己电脑的显卡进行选择。其中,操作系统选择“Linux 64-bit"(我的电脑是inter的),下载类型选择”生产分支“。然后选择搜索。
- 点击“下载”
- 点击“同意并开始下载”
注意: 下载完成后,可以使用U盘将驱动文件转移到目标电脑。在安装前需要给驱动文件添加执行权限,使用命令 chmod 777 文件名
。
二、更新软件列表和安装必要软件、依赖
在终端依次输入以下命令:
sudo apt-get install update
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make
三、禁用默认驱动nouveau
打开系统的黑名单列表文件
sudo gedit /etc/modprobe.d/blacklist.conf
在文件的末尾另起一行,添加以下内容
blacklist nouveau
保存文件后,在终端输入以下命令使其生效
sudo update-initramfs -u
四、安装NVIDIA显卡驱动
注意:请确保BIOS中的secure boot已开启
打开终端,进入NVIDIA驱动所在的文件夹(例如Downloads目录)
cd Downloads sudo bash NVIDIA-Linux-x86_64-(版本号).run
在输入到"NVI"后可以直接按TAB键,自动补全
按照提示进行选择(例如第一张图片左边是被选中的),通过左右键和Enter键进行选择。
特别说明: 在安装过程中可能会遇到需要处理签名密钥的情况。如果选择"已签名,是否删除私钥",建议选择“否”。然后将.der(公钥)和.key(私钥)文件移动到其他位置,并改名为简单的名字。后续更新时选择“use an existing key pair”,然后先输入私钥位置,后输入公钥位置(绝对路径)。
重启电脑(如果黑屏,请看文末)
五、秘钥注册
正常情况下,在完成上述步骤后重启电脑应该会出现蓝屏的perform mok management界面。如果有,请跳到下一步。否则,在终端输入以下命令:
nvidia-smi
应该会显示类似以下信息:
cd /usr/share/nvidia ls
输入ls后会看到一个.der文件,输入以下命令将秘钥注册到安全启动中。(输入nvidia-mo后可以用TAB键补全)
sudo mokutil --import nvidia-modsign-crt-F655ABA2.der
会弹出“input password:”,建议只输入一个数字,比如“0”,输入后是看不到的。然后是再次确认密码,再次输入“0”。
此时在进行重启,就会出现mok management界面。
在蓝屏的perform mok management界面,通过上下键选择,Enter键确认。
选择enroll mok
选择continue(enroll mok界面)
选择yes(enroll the key界面)
输入在安装时设定的密码“0”
最后选择boot即可。
重启后在终端输入nvidia-smi
即可看到显卡信息,恭喜安装成功!
常见问题处理
- 重启后黑屏:
- 在Ubuntu的引导界面,通过上下键使得光标选中“ubuntu”,然后按“e”键进入,在开头为"liunx"那一行的"quiet splash —“处删去”—“,后面加上"nomodeset”。注意,splash和nomodeset中间有空格。然后,按F10或ctrl+x以修改后的参数启动。
- 安装成功后黑屏,加入“nomodeset”也黑屏:
- 可以进入高级选项,选择恢复模式,选择dpkg修复破损包,按“y”按Enter后选第一个重启。这个方法重启后可能还是黑屏,可能是驱动不合适,建议尝试其他版本。目前推荐使用5.15.0.107内核搭配535版本驱动。
- 安装成功但nvidia-smi显示失败:
- 可以使用
sudo mokutil --list-enrolled
查看之前的公钥是否还在。
删除多余公钥的方法:
# 查看已有的内核签名 mokutil --list-enrolled # 创建内核签名目录: mkdir der cd der # 导出已有内核签名文件到der目录 sudo mokutil --export # 查看需要删除的内核签名,记下名字key*, *是数字 mokutil -l | less # 删除对应的文件,输入密码(当时下载NVIDIA驱动用的密码是0) sudo mokutil --delete MOK-000*.der # 重启 sudo reboot # 进入蓝色界面,按任意键后选择“delete MOK”,“continue”, 输入密码0后,重启“reboot”
删除驱动:
- 删除驱动的具体步骤可以参考朋友的笔记,简单来说需要关闭图形界面。具体操作可以进一步查阅相关资料。