1. 为什么需要手动安装NVIDIA驱动?
在Ubuntu 20.04上使用NVIDIA显卡时,系统默认会使用开源驱动nouveau。这个驱动虽然能保证基本显示功能,但存在三个明显问题:首先是性能损失严重,实测游戏帧率可能只有官方驱动的30%;其次是不支持CUDA等专业计算功能;最后是稳定性问题,我在多台设备上都遇到过突然卡死的情况。
最让人头疼的是,当你尝试安装官方驱动时,经常会遇到那个著名的"蓝色MOK管理界面"。我第一次见到这个界面时完全懵了,系统卡在这里无法继续启动。后来才知道这是安全启动(Secure Boot)机制在作祟——Ubuntu要求对第三方驱动进行数字签名验证。
2. 彻底卸载旧驱动
2.1 禁用nouveau驱动
在安装新驱动前,必须彻底清除旧驱动。先打开终端(Ctrl+Alt+T),执行:
sudo nano /etc/modprobe.d/blacklist-nouveau.conf添加以下内容:
blacklist nouveau options nouveau modeset=0保存后更新initramfs:
sudo update-initramfs -u2.2 清除残留文件
我推荐使用这个组合命令:
sudo apt purge *nvidia* && sudo apt autoremove特别注意:如果之前用过.run文件安装,还需要执行:
sudo /usr/bin/nvidia-uninstall3. 选择最佳驱动版本
3.1 查看推荐驱动
执行这个命令会列出所有可用驱动:
ubuntu-drivers devices输出示例:
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 == modalias : pci:v000010DEd00001C8Dsv00001458sd00003785bc03sc00i00 vendor : NVIDIA Corporation model : GP107 [GeForce GTX 1050 Ti] driver : nvidia-driver-390 - distro non-free driver : nvidia-driver-418-server - distro non-free driver : nvidia-driver-450 - distro non-free recommended driver : nvidia-driver-460-server - distro non-free driver : xserver-xorg-video-nouveau - distro free builtin3.2 版本选择策略
- 游戏用户:选择带"recommended"标记的最新版(例中为450)
- 服务器环境:选择带"-server"后缀的版本
- 需要CUDA:需对应CUDA版本要求(可通过NVIDIA官网查兼容性)
4. 安装驱动与处理MOK界面
4.1 正式安装
执行(以450版本为例):
sudo apt install nvidia-driver-450安装过程会提示设置MOK密码,这个密码必须牢记!建议使用8位纯数字(后面输入时键盘布局可能异常)。
4.2 处理蓝色MOK界面
重启时会进入蓝色背景的"Perform MOK Management"界面:
- 选择"Enroll MOK" → "Continue"
- 选择"Yes"输入之前设置的密码
- 最后选择"Reboot"
常见问题:
- 密码输入错误:强制关机后重新进入会再次提示
- 键盘不响应:尝试接USB键盘
- 跳过此步骤:在BIOS中关闭Secure Boot(不推荐)
5. 验证安装结果
5.1 基础验证
执行:
nvidia-smi正常输出应类似:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 450.119.03 Driver Version: 450.119.03 CUDA Version: 11.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce RTX 2060 Off | 00000000:01:00.0 On | N/A | | 45% 42C P8 10W / 160W | 387MiB / 5934MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+5.2 深度测试
安装glmark2进行渲染测试:
sudo apt install glmark2 glmark2 --fullscreen分数低于2000说明驱动可能未正常工作。
6. 常见问题解决方案
6.1 循环登录问题
如果出现登录后闪退回登录界面,尝试:
sudo prime-select intel # 双显卡设备 sudo systemctl restart gdm6.2 分辨率异常
编辑GRUB配置:
sudo nano /etc/default/grub修改为:
GRUB_GFXMODE=1920x1080x32 GRUB_GFXPAYLOAD_LINUX=keep更新后重启:
sudo update-grub6.3 多显卡配置
使用prime-select切换:
sudo prime-select nvidia # 使用NVIDIA显卡 sudo prime-select intel # 使用集显7. 性能优化技巧
7.1 开启性能模式
sudo nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1'7.2 调节风扇曲线
安装coolbits:
sudo nvidia-xconfig --cool-bits=4然后在NVIDIA X Server Settings中自定义风扇转速。
7.3 禁用帧缓冲
编辑/etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"更新GRUB后重启。
8. 长期维护建议
建议每季度检查驱动更新:
sudo apt update apt list --upgradable | grep nvidia遇到大版本更新时,最好先完全卸载旧驱动再安装新版本。对于生产环境,建议锁定驱动版本:
sudo apt-mark hold nvidia-driver-450我在五台不同配置的机器上测试过这个方法,从GTX 1050到RTX 3090都适用。最关键的其实就是MOK密码那一步,很多人在这里功亏一篑。如果第一次失败,千万不要慌,按照流程再走一遍基本都能解决。