Ubuntu 20.04作为目前使用非常广泛的服务器和桌面系统,经常被用来跑深度学习、图形渲染或者CUDA计算任务。而这些任务的第一步,就是正确安装Nvidia显卡驱动。看似简单的一步,实际上坑非常多:有人装完重启黑屏,有人陷入登录循环,有人执行nvidia-smi报错NVIDIA-SMI has failed。这篇文章就把Ubuntu 20.04下安装Nvidia驱动的几种主流方法完整梳理一遍,同时把最常出现的问题逐一分析清楚。

安装前的准备:确认显卡型号与禁用 Nouveau
安装驱动之前,首先要弄清楚自己的显卡型号。很多人连自己机器上装的是什么卡都不知道就盲目照抄网上的教程,结果装了不兼容的驱动版本。可以先执行下面的命令查看当前识别到的显卡硬件:
lspci | grep -i vga # 如果输出中带有 NVIDIA 字样,说明显卡已被系统识别 # 输出类似:01:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti]
查看完显卡型号后,还需要确认系统是否已经加载了开源的Nouveau驱动。Nouveau是社区维护的开源驱动,它与Nvidia官方驱动是互斥关系,如果不禁用,官方驱动安装过程中就会报错,或者装完之后冲突导致无法正常使用。检查命令如下:
lsmod | grep nouveau # 有输出说明 Nouveau 正在运行,必须先禁用
禁用的方法是新建一个配置文件,将Nouveau加入黑名单:
sudo bash -c "cat > /etc/modprobe.d/blacklist-nouveau.conf" << EOF blacklist nouveau options nouveau modeset=0 EOF sudo update-initramfs -u sudo reboot
重启之后再执行lsmod | grep nouveau,如果没有任何输出,说明禁用成功。另外还有一个容易忽略的点:如果你的主板开启了Secure Boot(安全启动),Ubuntu会启用内核模块签名验证机制,Nvidia驱动作为第三方内核模块如果没有签名(或者密钥没被系统信任),加载会直接失败,表现就是装完之后nvidia-smi报错。最省事的做法是在BIOS里关闭Secure Boot,或者安装过程中按照提示注册MOK密钥并在重启时完成签名确认。
方法一:使用 ubuntu-drivers 工具自动安装(推荐)
Ubuntu官方提供了一个非常贴心的工具ubuntu-drivers,它会扫描你的硬件,自动推荐最适合当前显卡的驱动版本。对于大多数用户来说,这是首选方案,因为它来源是Ubuntu官方仓库,版本经过验证,与内核的兼容性最好。先更新软件源并安装这个工具:
sudo apt update sudo apt install ubuntu-drivers-common # 查看系统推荐的驱动版本 ubuntu-drivers devices
执行ubuntu-drivers devices后,输出中会列出可用的驱动版本,其中带recommended标记的就是系统推荐版本。常见的输出类似:
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 == modalias : pci:v000010DEd00001B06sv00001458sd000036C4bc03sc00i00 vendor : NVIDIA Corporation model : GP102 [GeForce GTX 1080 Ti] driver : nvidia-driver-470 - distro non-free driver : nvidia-driver-535 - distro non-free recommended driver : nvidia-driver-535-server - distro non-free driver : xserver-xorg-video-nouveau - distro free builtin
看到推荐版本后,最简单的安装方式是一条命令自动完成所有事情:
# 自动安装推荐版本 sudo ubuntu-drivers autoinstall # 或者明确指定版本 sudo apt install nvidia-driver-535 sudo reboot
重启后执行nvidia-smi,如果能看到显卡的显存占用、驱动版本、CUDA版本等信息表格,说明安装成功。这个方法的优点是省心,缺点是仓库里的版本可能不是最新的,如果某个新框架要求非常新的驱动版本,就需要考虑下面的方法。
方法二:通过官方PPA源安装较新版本驱动
Ubuntu 20.04官方仓库里的驱动版本更新往往滞后,如果你需要比较新的驱动(比如新发布的显卡只有新驱动才支持),可以添加显卡驱动的PPA源。graphics-drivers这个PPA由社区维护,提供比官方仓库更新的稳定版本:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update # 查看当前可用的所有驱动版本 apt search nvidia-driver- # 安装指定版本,例如 550 sudo apt install nvidia-driver-550 sudo reboot
这种方式本质上还是通过apt包管理器安装,好处是升级和卸载都方便,系统内核更新时dkms会自动为新内核重新编译驱动模块,不容易出现内核更新后驱动失效的问题。这里要特别提一下dkms机制:apt方式安装的Nvidia驱动默认注册到动态内核模块支持系统中,每次系统执行apt upgrade升级内核后,dkms会在启动时自动为当前内核编译匹配的驱动模块,这是它比run文件安装方式最大的优势。
需要注意版本选择的坑:不是驱动版本越新越好。一些老显卡(比如GTX 10系列之前的卡)在最新的驱动分支中已经停止支持,强行安装最新驱动反而会导致无法识别硬件。遇到这种情况要降级安装适合的旧版本分支。另外如果你的机器是笔记本并且带双显卡(Intel集显加Nvidia独显),建议同时安装nvidia-prime包,可以用prime-select query查看当前使用的显卡模式。
方法三:从官网下载 run 文件手动安装
当apt仓库里没有你需要的版本,或者在一些特殊场景下(比如定制内核环境),可以从Nvidia官网下载对应显卡的run文件手动安装。这种方式灵活度最高,但坑也最多,一般不推荐新手使用。步骤如下:
# 1. 先安装编译依赖 sudo apt install build-essential gcc make # 2. 停止图形界面(会关闭所有图形会话,注意保存工作) sudo systemctl isolate multi-user.target # 3. 执行安装程序 sudo chmod +x NVIDIA-Linux-x86_64-535.104.05.run sudo ./NVIDIA-Linux-x86_64-535.104.05.run # 4. 安装完成后回到图形界面 sudo systemctl isolate graphical.target
安装过程中会询问是否要安装dkms支持、是否要运行nvidia-xconfig自动生成配置文件。建议dkms选择Yes,这样内核更新后可以自动重新编译;至于nvidia-xconfig要谨慎,如果你的桌面环境本来工作正常,选No即可,选Yes有时会生成有问题的xorg.conf导致分辨率异常。
run文件方式最大的问题在于内核更新后驱动容易失效,因为模块是针对安装时内核版本编译的。虽然可以借助dkms缓解,但卸载也不如apt干净。卸载时执行sudo ./NVIDIA-Linux-x86_64-535.104.05.run --uninstall,卸载后要记得清理/etc/X11/xorg.conf,否则图形界面可能起不来。
常见问题排查与解决
问题一:装完重启后黑屏或登录循环。这是最常见的问题,通常原因是驱动的open内核模块与gdm的Wayland会话冲突,或者Secure Boot阻止了模块加载。先尝试按Ctrl加Alt加F3切换到tty文本终端登录,然后查看日志定位原因:
sudo dmesg | grep -i nvidia # 查看是否有 "Lockdown: modprobe: unsigned module loading is restricted" 之类的输出 # 如果有,说明是 Secure Boot 拦截,进 BIOS 关闭后再试 # 或者临时切换回Xorg会话: sudo vi /etc/gdm3/custom.conf # 取消 WaylandEnable=false 这一行的注释 sudo systemctl restart gdm3
问题二:nvidia-smi 提示驱动与库版本不匹配。报错信息一般是Driver/library version mismatch,多半是因为驱动升级后没有重启,旧的内核模块还驻留在内存中。最直接的解决办法是重启机器。如果机器不方便重启,可以尝试先卸载再加载模块:
sudo rmmod nvidia_uvm sudo rmmod nvidia_drm sudo rmmod nvidia_modeset sudo rmmod nvidia sudo nvidia-smi
问题三:内核更新后驱动突然失效。这个问题的根源是内核版本和驱动模块版本不匹配。用uname -r查看当前内核,再用dkms status检查驱动是否针对当前内核编译成功。如果没有,执行sudo dkms autoinstall重新编译。这也是前面强调优先使用apt加dkms方式安装的原因。
问题四:如何彻底卸载重装。当驱动环境被搞得一团糟时,干净重装是最稳妥的方案:
sudo apt purge "*nvidia*" sudo apt autoremove sudo apt install nvidia-driver-535 sudo reboot
最后补充一点关于CUDA的说明:nvidia-smi右上角显示的CUDA Version并不是系统已安装的CUDA版本,而是当前驱动最高支持的CUDA版本,很多人在这里产生误解。真正的CUDA工具包需要单独安装,且驱动版本必须大于等于CUDA运行时的最低要求。按照上面的流程走完,驱动装好之后,就可以放心搭建CUDA和深度学习环境了。
Ubuntu Nvidia驱动安装CUDA安装ubuntu-drivers修改时间:2026-09-15 03:02:48