导读:本期聚焦于台湾程序员创作的《Ubuntu 20.04如何安装Nvidia显卡驱动?详细教程与常见问题解答》,敬请观看详情。显卡驱动装不上、装完黑屏、循环登录,这些是Ubuntu 20.04用户在安装Nvidia驱动时最常踩的坑。本文从显卡驱动的作用原理讲起,介绍ubuntu-drivers自动推荐、apt手动安装、官方run文件三种主流安装方式的完整步骤,并对比各方案的适用场景。针对安装后nvidia-smi命令找不到、驱动与内核版本不匹配、Secure Boot验证失败、 Nouveau驱动冲突等高频问题,给出可直接操作的排查命令和解决思路,帮助你顺利完成GPU环境搭建,为后续CUDA深度学习开发打好基础。

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

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

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260915/56992.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。