Ubuntu下UEFI安全启动安装Nvdia驱动_ubuntu驱动uefi secure boot
简介
众所周知,Ubuntu默认使用Nouveau开源驱动,其性能受限,因此我们需要安装Nvidia专用驱动。
安装专用驱动的一般方法非常简单,只需执行命令sudo ubuntu-drivers devices && sudo ubuntu-drivers autoinstall
即可。但该方法安装的驱动需要手动进行内核签名,否则其将无法与安全启动共存。因此,更推荐采取在Nvidia官网下载.run
并执行安装的方式。
本博客结合其他优质博客,取其精华去其糟粕,结合本人在安装时遇到的实际问题,详细整理执行.run
的安装方式,并发表此文。
确保已处于安全启动模式
- 首先,确保已处于安全启动模式。开机时进入UEFI固件设置中查看。
安装必要环境
-
首先更新软件源:
sudo apt update
-
安装必要编译环境:
sudo apt install build-essential cmake ninja-build -y
卸载先前安装的驱动
-
首先,请确认先前是否安装了Nvidia驱动。使用如下命令查看:
dpkg -l | grep nvidia
-
若先前以apt安装了驱动,使用以下命令进行卸载:
sudo apt-get purge nvidia-*
若先前以
.run
安装的驱动,使用以下命令卸载:sudo /usr/bin/nvidia-uninstall
下载驱动安装脚本
-
打开Nvidia驱动官网,查找并下载自己显卡的驱动。若不知道自己的显卡型号,执行以下命令查看:
lspci | grep -i vga
-
耐心等待下载,由于服务器位于国外,下载速度较慢,请确保您有良好的国际互联网连接,相关资料请自行搜索,博主无法提供解决方案。
-
下载后,得到一个
.run
结尾的文件。
禁用开源驱动
-
执行以下命令以永久禁用开源驱动:
echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf
-
使修改生效:
sudo update-initramfs -u
安装动态内核模块支持(DKMS)
-
由于
.run
安装的驱动依赖于内核,当内核更新后,需重新执行.run
的安装。因此,我们使用DKMS管理驱动,它会在内核更新后自动重新编译 NVIDIA 驱动模块。 -
安装DKMS:
sudo apt install dkms -y
进入tty模式并安装
-
由于在GUI 环境下安装可能会失败,所以需要切换到纯文本模式进行安装。
-
使用以下命令重启计算机:
sudo systemctl set-default multi-user.target && sudo reboot now
重启后,使用系统账户的账号密码登录。
-
进入先前下载驱动的目录,此处以
~/Download
为例:cd ~/Download
-
为安装脚本添加可执行权限:
sudo chmod a+x ./NVIDIA-Linux-x86_xxx.run
其中
xxx
请替换为实际驱动版本号。 -
执行安装脚本:
sudo ./NVIDIA-Linux-x86_xxx.run --dkms
使用选项
--dkms
以启用DKMS模块进行安装。
生成签名密钥
- 一路继续安装,执行脚本会编译内核模块等。
- 当执行到询问是否需要签名页面时,选择“Sign the kernel module”。
- 签名密钥生成成功后,会展示
.der
扩展名的文件路径。
导入签名密钥
-
进入Nvidia目录:
cd /usr/share/nvidia
-
使用
.der
文件进行签名:sudo mokutil --import nvidia-modsign-crt-xxx.der
其中xxx请替换为实际文件名。
-
会提示创建密码,输入后确认即可。
-
启用GUI模式并重启系统:
sudo systemctl set-default graphical.target && sudo reboot now
对密钥签名
- 重启后,进入蓝屏的mok management页面。选择“Enroll mok”。
- 可见key 0以导入,之后对其签名,选择“Continue”,之后选择“yes”。
- 输入导入签名密钥时设置的密码,之后选择“Reboot”。
验证
-
重启后,安装与签名过程已结束。使用以下命令验证是否安装成功:
nvidia-smi
参考资料
本文参考博客:UEFI安全启动模式下安装ubuntu的nvidia显卡驱动。
本文添加了查看显卡型号,卸载先前驱动,在tty模式下安装,以及DKMS模块内容。