Ubuntu下UEFI安全启动安装Nvdia驱动

简介

众所周知,Ubuntu默认使用Nouveau开源驱动,其性能受限,因此我们需要安装Nvidia专用驱动。

安装专用驱动的一般方法非常简单,只需要sudo ubuntu-drivers devices && sudo ubuntu-drivers autoinstall即可,但该方法安装的驱动需要手动进行内核签名,否则其将无法与安全启动共存。因此,更推荐采取在Nvidia官网下载.run并执行安装的方式。

本博客结合其他优质博客,取其精华去其糟粕,结合本人在安装时遇到的实际问题,详细整理执行.run的安装方式,并发表此文。

博主系统环境如下:

  • KDE Neon 6.3
  • Geforce RTX 4060(Laptop)

安装必要环境

  1. 首先更新软件源:sudo apt update
  2. 安装必要编译环境:sudo apt install build-essential -y

卸载先前安装的驱动

  1. 首先,请确认先前是否安装了Nvidia驱动。使用dpkg -l | grep nvidia命令查看。
  2. 若先前以apt安装了驱动,使用sudo apt-get purge nvidia-*进行卸载;若先前以.run安装的驱动,使用sudo /usr/bin/nvidia-uninstall卸载。

下载驱动安装脚本

  1. 打开Nvidia驱动官网,查找并下载自己显卡的驱动。若不知道自己的显卡型号,执行lspci | grep -i vga进行查看。
  2. 耐心等待下载,由于服务器位于国外,下载速度较慢,请确保您有良好的国际互联网连接,相关资料请自行搜索,博主无法提供解决方案。
  3. 下载后,得到一个.run结尾的文件。

禁用开源驱动

  1. 执行echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf以永久禁用开源驱动。
  2. 执行sudo update-initramfs -u使命令生效。

安装动态内核模块支持(DKMS)

  1. 由于.run安装的驱动依赖于内核,当内核更新后,需重新执行.run的安装。因此,我们使用DKMS管理驱动,它会在内核更新后自动重新编译 NVIDIA 驱动模块。
  2. 安装DKMS:sudo apt install dkms -y

进入tty模式并安装

  1. 由于在GUI 环境下安装可能会失败,所以需要切换到纯文本模式进行安装。
  2. 使用sudo systemctl set-default multi-user.target && sudo reboot now重启计算机,重启后,使用系统账户的账号密码登录。
  3. 进入先前下载驱动的目录,此处以~/Download为例:cd ~/Download
  4. 为安装脚本添加可执行权限:sudo chmod a+x ./NVIDIA-Linux-x86_xxx.run。其中xxx请替换为实际驱动版本号。
  5. 执行安装脚本:sudo ./NVIDIA-Linux-x86_xxx.run --dkms,使用选项--dkms以启用DKMS模块进行安装。

生成签名密钥

  1. 一路继续安装,执行脚本会编译内核模块等。
  2. 当执行到询问是否需要签名页面时,选择"Sign the kernel module"。
  3. 签名密钥生成成功后,会展示.der扩展名的文件路径。

导入签名密钥

  1. 进入Nvidia目录:cd /usr/share/nvidia
  2. 使用.der文件进行签名:sudo mokutil --import nvidia-modsign-crt-xxx.der,其中xxx请替换为实际文件名。
  3. 会提示创建密码,输入后确认即可。
  4. 启用GUI模式并重启系统:sudo systemctl set-default graphical.target && sudo reboot now

对密钥签名

  1. 重启后,进入蓝屏的mok management页面。选择"Enroll mok"。
  2. 可见key 0以导入,之后对其签名,选择"Continue",之后选择"yes"
  3. 输入导入签名密钥时设置的密码,之后选择"Reboot"。

验证

  1. 重启后,安装与签名过程已结束。使用nvidia-smi命令验证是否安装成功。

参考资料

本文参考博客:UEFI安全启动模式下安装ubuntu的nvidia显卡驱动

本文添加了查看显卡型号,卸载先前驱动,在tty模式下安装,以及DKMS模块内容。

相关推荐
YPrefY27 分钟前
HADOOP 3.4.1安装和搭建(尚硅谷版~)
大数据·linux·hadoop
liuluyang53031 分钟前
linux 4.14内核jffs2文件系统不自动释放空间的bug
linux·elasticsearch·bug·jffs2
易保山34 分钟前
MIT6.S081 - Lab9 File Systems(文件系统)
linux·操作系统·c
林开落L39 分钟前
Linux深度探索:进程管理与系统架构
linux·运维·系统架构
XINO44 分钟前
防火墙双机热备实践
运维·安全
冷冷清清中的风风火火1 小时前
关于敏感文件或备份 安全配置错误 禁止通过 URL 访问 Vue 项目打包后的 .gz 压缩文件
前端·vue.js·安全
原创资讯1 小时前
安全挑战再升级,2025都有哪些备份与恢复挑战?
安全
XINO1 小时前
企业常见安全事故排查思路
运维·安全
林政硕(Cohen0415)1 小时前
在ARM Linux应用层下驱动MFRC522
linux·mfrc522·ic-s50·m1卡
艾伦_耶格宇2 小时前
shell 脚本实验 -5 while循环
linux