从 2024 年 Ubuntu 24.04 LTS 发布到现在,两年多时间里我还是不断看到有人在群里问 NVIDIA 驱动装不上、装完黑屏、或者 nvidia-smi 直接报错的问题。这篇指南其实是我 2024 年那篇《Ubuntu 24.04 显卡驱动安装笔记》的修订版,之所以重新整理,是因为这两年我陆续换过 Turing、Ampere、Ada Lovelace 架构的卡,也在 Ubuntu 24.04 的 HWE 内核、Wayland 会话、Secure Boot 开启/关闭等不同环境下踩过不少新坑,有些结论跟两年前已经不一样了。这篇文章面向的是想自己动手装驱动、并且希望出了问题能自己排查的人,不管你是刚接触 Linux 的新手,还是已经折腾过几台 Ubuntu 服务器的老手,里面提到的判断逻辑和排查手段应该都能直接用上。
1. 安装前的准备与决策:先搞清楚你到底要装什么
很多人在第一步就走错了方向——不是“装不上驱动”,而是“根本没搞清楚自己该装哪个驱动”。Ubuntu 24.04 的驱动安装其实分成好几条路线,选错了路线,后续出问题几乎是必然的。
1.1 确定你的显卡架构与驱动版本需求
拿到一台机器,先别急着敲命令。第一步是确认显卡型号和架构,这决定了你该装哪个大版本的驱动。用两条命令就能查清楚:
lspci | grep -i nvidia输出结果类似NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate],其中GA106就是安培架构的代号。如果你想看更完整的信息,可以用lspci -vnn | grep -A 12 VGA来查 PCI 设备详细参数,里面会带上 vendor 和 device ID。
然后是确认当前系统正在使用的显卡驱动状态。新装的 Ubuntu 24.04 默认使用的是开源的nouveau驱动,输入lsmod | grep nouveau能看到内核模块加载信息。需要注意的是,2024 年之后 Ubuntu 内核里其实还引入了 NVIDIA 官方开源内核模块的初步支持(nvidia-open),但默认仍然不会主动加载。
确认架构之后,去 NVIDIA 官网的驱动下载页面按型号搜索,页面上会给出两个关键参数:推荐驱动版本和文件大小。举例来说,RTX 3060 这类安培架构显卡,官方推荐的是 570 系或更新版本驱动;而像 GTX 1050 Ti 这种帕斯卡架构老卡,推荐版本则可能是 535 或 470 的长期支持分支。这里有个非常重要的判断逻辑:新驱动不一定适合老卡,但老驱动基本带不动新卡。NVIDIA 每个大版本驱动都有对应的架构支持范围,越新的驱动对老架构的支持只在维护层面上存在,部分新特性(比如 DLSS 3 的帧生成能力)在旧架构上根本没法启用。
还有个容易被忽略的点:你要不要用 CUDA?如果只是玩游戏、做桌面显示,那么随便装个稳定版就行;如果后面要跑 PyTorch、TensorFlow 或者自己编译 CUDA 代码,驱动版本和 CUDA 版本之间存在约束关系,需要提前规划。我的习惯是先去 NVIDIA 官网的 CUDA Toolkit 页面确认“驱动兼容性表”,大致记住一个原则:CUDA 12.x 对应 525+ 驱动,CUDA 11.x 对应 450+ 驱动,但具体到开发环境,还是要以官方表格为准。
1.2 选对安装路线:三种主流方式各自适合什么场景
我在实际接触的用户里,发现大家经常在“用 apt 装”“用 PPA 装”“去官网下 .run 文件装”之间犹豫。这三个方式并不是随便选的,背后各有各的适用场景。
方式一:Ubuntu 官方仓库的 apt 安装
sudo apt update sudo apt install nvidia-driver-570这种方式最省心,驱动会跟系统版本深度绑定,内核更新后也会自动打上 DKMS 模块。适合以下情况:显卡型号不算太新(发售日期早于当前 Ubuntu 发布日一年以上)、没有特殊的 CUDA 版本需求、机器配置比较常规。Ubuntu 24.04 默认仓库里的驱动版本是随系统发布时固定的,虽然会在生命周期内更新补丁,但大版本不会升级。我实测下来,如果系统本身没有特殊需求,仓库版驱动的稳定性是最高的。
方式二:Ubuntu 图形驱动 PPA
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt install nvidia-driver-570PPA 的优势是驱动版本比官方仓库新很多,通常 NVIDIA 发布新版驱动后几天内就会入 PPA。如果你刚买了新显卡(比如 50 系),官方仓库里大概率还没有对应支持,PPA 就是第一个可以尝试的安装渠道。但代价是 PPA 的驱动不会经过 Ubuntu 官方充分测试,跟某些桌面组件(尤其 GNOME 的 Wayland 会话)可能出现兼容性问题。我自己的做法是:新卡或者需要新特性的场景先用 PPA,稳定跑一段时间再考虑要不要换回官方仓库。
方式三:NVIDIA 官网下载 .run 文件
这是“高级用户专供”,通常适用于以下场景:需要安装特定版本的研究版驱动(比如某些需要 Beta 特性的开发者)、需要完全离线安装、或者想用 NVIDIA 官方安装脚本带的自定义参数。官网下载的安装包是一个可执行脚本,需要在纯命令行终端环境下手动执行,并且必须先禁用 nouveau 模块,否则安装脚本会直接报错退出。
从维护角度讲,我的推荐优先级是:官方仓库 > PPA > 官网 .run。能少折腾就少折腾,这是受过毒打之后总结出来的原则。
1.3 安装前必须做的系统检查与准备工作
这部分看起来基础,但恰恰是很多人翻车的地方。我强烈建议在装驱动之前花五分钟把下面这些检查做完,能省掉后面一整天的排查时间。
第一件事:确认系统版本和内核版本。
lsb_release -a uname -rUbuntu 24.04 的 LTS 内核是 6.8,但你如果开启了 HWE 硬件支持栈,内核版本可能已经升到 6.11 甚至更高。内核版本对驱动安装的影响非常大,因为 NVIDIA 驱动是以内核模块形式存在的,模块必须跟当前内核版本严格匹配。如果你用 DKMS 方式安装,模块会自动编译适配新内核;如果是官网 .run 方式,重装内核后驱动模块就失效了,必须重新执行安装脚本。
第二件事:检查 Secure Boot 状态。
mokutil --sb-state如果输出是SecureBoot enabled,那么安装完驱动后,系统会在模块加载时进行签名校验,未经签名的 NVIDIA 内核模块会被拒绝加载,最终表现就是重启后 nvidia-smi 报错“Unable to load the 'nvidia' kernel module”。解决方案有两个:进 BIOS 关掉 Secure Boot,或者在安装时注册 MOK(Machine Owner Key)。对于大多数个人用户,直接关闭 Secure Boot 是最省事的。我见过不少人在这个问题上卡了两三天,一直重启、重装,最后发现是 Secure Boot 在捣鬼。如果你因为某些原因(比如公司安全策略)不能关闭 Secure Boot,那就得在安装驱动后执行sudo mokutil --import /var/lib/shim-signed/mok/MOK.der这类命令注册密钥,然后在重启时按提示确认。
第三件事:更新系统软件源并清理旧驱动。
sudo apt update && sudo apt upgrade -y这一步操作看着平凡,但很关键。如果系统里有旧的 NVIDIA 驱动残留,比如之前用 .run 安装过旧版本、或者手动放入了某些模块文件,新的安装过程可能不会自动清理干净。我一般会在安装新驱动前先执行一遍卸载:
sudo apt purge '^nvidia-.*' sudo apt --purge remove '^libnvidia-.*' sudo apt autoremove注意这里的purge是彻底清除配置文件,避免旧配置文件里记录的驱动版本信息干扰新驱动。做过一次大扫除之后,再装新驱动就清爽很多。
2. NVIDIA 驱动安装完整流程:从命令行开始逐步操作
准备工作做完,接下来就是实际安装了。这里我把自己最常用的、也是最推荐新手使用的方式完整写一遍,同时把每一步背后的逻辑讲清楚,这样你就算遇到非典型问题,也知道该从哪个方向去排查。
2.1 方法一:官方仓库安装,适合大多数人的稳妥路线
前面说到,Ubuntu 24.04 的官方仓库里已经有多个版本的 NVIDIA 驱动包。具体能看到哪些版本,可以执行:
apt list nvidia-driver-*执行结果会列出类似nvidia-driver-535、nvidia-driver-545、nvidia-driver-550之类的包名。选哪个版本?我的经验是:优先选当前系统生命周期内最多人验证过的版本。在 Ubuntu 24.04 上,535 和 550 都属于长期稳定分支,覆盖从帕斯卡到 Ada 架构的大部分显卡。如果你不确定选哪个,可以直接装元包nvidia-driver-570(在当前时间点这是 2025 年底到 2026 年最推荐的版本),系统会帮你自动匹配合适的子包。
执行安装:
sudo apt install nvidia-driver-570安装过程会自动处理依赖,包括nvidia-kernel-common、nvidia-dkms-570等子包。其中nvidia-dkms负责在内核层面编译驱动模块,装完后会触发一次 DKMS 编译。这个过程需要编译工具链,所以理论上系统需要安装build-essential和内核头文件。如果你之前没装过,apt 会自动拉取依赖,但某些精简过的系统可能缺少linux-headers-$(uname -r),导致 DKMS 编译静默失败。遇到这种情况先执行:
sudo apt install linux-headers-$(uname -r)装完驱动后系统会提示重启。但我不建议立刻重启,先验证一下加载情况:
lsmod | grep nvidia如果看到nvidia、nvidia_uvm、nvidia_modeset、nvidia_drm这几个模块都加载了,说明驱动已经成功进入内核。如果只有个别模块,或者完全没有输出,那就说明出问题了,可以直接跳到第 3 章的排查部分。
2.2 方法二:PPA 安装,追新卡与追新特性的选择
如果你手里的显卡是最近半年才发布的新型号(比如 50 系显卡,Ubuntu 官方仓库确实还没来得及跟进),那 PPA 就是最方便的渠道。PPA 的全称是 Personal Package Archive,你可以把它理解成 Ubuntu 官方之外的“驱动仓库集散中心”,里面维护了大量 NVIDIA 新版驱动。
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt install nvidia-driver-570PPA 安装的逻辑跟官方仓库一样,区别在于驱动版本的时效性。这里我想提醒一个容易踩的坑:PPA 里通常同时存在多代驱动包,如果你按nvidia-driver不指定版本号,apt 会默认拉取仓库里最新版本。但最新版本未必适合你的显卡架构。比如我在一台装有 1080 Ti 的机器上测试时,直接装仓库最新版 570 反而出现了 OpenGL 渲染异常,退回 535 之后就一切正常。所以用 PPA 也一样要先确认显卡架构的支持范围,别盲目追新。
PPA 模式的另一个特点是,它不会自动跟随系统内核更新调整。如果你之后升级内核,驱动模块会重新通过 DKMS 编译。这个机制正常情况下是自动的,但如果升级过程中 DKMS 编译失败(常见原因是内核头文件没有同步更新),你会看到内核模块列表里缺了nvidia,需要手动重新编译一次:
sudo dkms install -m nvidia -v 570.xxx.xx这里-v后面的版本号要跟驱动包版本完全一致,所以更稳妥的做法是先dkms status查一下当前记录的内核模块版本。
2.3 方法三:官网 .run 安装,离线环境与特殊版本需求的必由之路
有些场景下你没有联网的 apt 源,或者你需要的驱动版本只存在于 NVIDIA 官网(比如某些针对 AI 推理优化的研究版驱动),那就要走官网下载这条路。
先在官网选择对应的显卡型号、操作系统和 CUDA 版本,下载得到一个.run结尾的安装包。在安装之前,务必先确保已清除任何已有的 NVIDIA 驱动,同时禁用 nouveau:
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf" sudo update-initramfs -u然后重启机器,确认 nouveau 不再加载:
lsmod | grep nouveau没有任何输出就说明 nouveau 已被屏蔽。此时按Ctrl+Alt+F3进入纯命令行界面,执行安装脚本:
sudo bash NVIDIA-Linux-x86_64-570.xxx.xx.run安装过程中脚本会问几个问题,包括是否安装 32 位兼容库、是否运行 nvidia-xconfig 等。我的建议是:32 位兼容库按需选择(玩游戏选 Yes,纯计算服务器可以 No),nvidia-xconfig 选 No,因为现在多数桌面环境会自动配置 Xorg,不必手动生成配置。
脚本执行完成后同样需要重启。有一点必须提醒:官网 .run 方式安装的驱动,在每次内核更新后都需要重新执行一次安装脚本,因为新内核不会自动带着旧驱动模块。这点比 apt/PPA 方式麻烦很多,所以我只在离线安装或者要装特殊版本时才走这条路。
2.4 安装完成后的必要检查与验证
无论走了哪条安装路线,安装完成重启之后都要做一套“标准健康检查”,我把这套检查固化成了固定流程:
nvidia-smi正常的输出应该显示显卡型号、驱动版本、CUDA 版本和显存使用情况。比如:
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 570.86.10 Driver Version: 570.86.10 CUDA Version: 12.8 | +---------------------------------------------------------------------------------------+这里最关键的对照关系是 Driver Version 和 CUDA Version。如果 Driver Version 能正常显示但 CUDA Version 显示 N/A,通常只是说明 CUDA Toolkit 还没装,并不是驱动有问题。
然后检查图形会话是否正常。Ubuntu 24.04 默认使用 Wayland,NVIDIA 驱动对 Wayland 的支持从 555 版本开始有显著改善,但如果你用的是 535 及更早版本,且桌面会话经常黑屏、无响应,那可以试试在登录界面切换回 Xorg 会话。方法是在登录页面的用户列表下方选择齿轮图标,然后选择“Ubuntu on Xorg”。
最后别忘了开启持久化模式。NVIDIA 驱动默认有“自动挂起”机制,如果 GPU 在几分钟内没有被调用,驱动会释放显存和计算资源。这对省电有好处,但对需要频繁调用 GPU 的场景(比如炼丹、跑推理服务)反而会引入额外的几十毫秒延迟。执行:
sudo nvidia-smi -pm 1这条命令开启 Persistence Mode,让驱动常驻显存和计算上下文。重启后可能需要再执行一次,如果要永久生效,可以把命令写入 systemd 服务。
3. 驱动安装后的常见问题与排查技巧:读懂错误背后的真实原因
这一章是整篇文章最值钱的部分。我整理了这两年在 Ubuntu 24.04 上遇到过的、以及社群中高频出现的几个典型问题,每个都会给出判断路径和对应解法。排障的核心原则其实只有一条:不要盲目重装,先根据报错信息锁定问题层级。驱动问题通常分三层:内核模块层、用户态库层、系统配置层,大多数报错都会指向其中某一层。
3.1 nvidia-smi 报错无法与驱动通信:最经典的“假驱动”问题
错误信息是:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.这个报错几乎占了 NVIDIA 驱动问题的一半。字面意思是 nvidia-smi 这个工具无法跟内核里的驱动模块通信,但实际原因非常多。我通常按以下顺序排查:
第一步,看内核模块是否加载:
lsmod | grep nvidia如果没有输出,说明模块没加载。此时看内核日志:
journalctl -k | grep -i nvidia如果日志里出现Unknown symbol或version magic相关的错误,说明驱动模块跟当前内核版本不匹配。最常见的原因是升级内核后没有重新编译 DKMS 模块。解决办法:
sudo dkms status如果显示模块处于 installed 状态但对应当前内核的版本缺失,就执行sudo dkms install -m nvidia -v <版本号> --force强制重装。
第二步,如果模块已经加载但仍然报错,可能是 nvidia-smi 版本跟内核模块版本不匹配。执行which nvidia-smi,如果系统里存在多个 NVIDIA 驱动安装路径(比如 /usr/bin/nvidia-smi 和 /usr/local/bin/nvidia-smi),就要检查 PATH 环境变量优先级。这个问题在用 .run 方式安装过驱动、后来又用 apt 安装的机器上特别常见,两种安装方式的残留文件会互相干扰。解决办法是彻底清理其中一套,或者手动调整 PATH。
第三步,以上都排除了,可能是 NVIDIA 设备被其他驱动占用。用lspci -k查看显卡对应的内核驱动,如果显示Kernel driver in use: nouveau,说明 nouveau 又活过来了。这种情况下要检查/etc/modprobe.d/目录下有没有黑洞文件没生效,以及 initramfs 是不是没更新。重新执行屏蔽并更新:
sudo update-initramfs -u3.2 开机黑屏、登录循环:图形栈问题的排查路径
装完驱动重启,屏幕黑屏或者在登录界面输入密码后一直跳回登录界面,这是第二个高频问题。
黑屏和循环登录虽然表现不同,但根源往往是同一个:NVIDIA 驱动确实加载了,但它跟显示管理器(GDM)或者 Xorg 的配合出了问题。
先尝试最简单的手段:在系统启动时进入恢复模式(开机时按住 Shift 键选择 Advanced options for Ubuntu,然后选 recovery mode),在恢复菜单里选择 root shell,然后把显示管理器先停掉:
sudo systemctl stop gdm3然后重新启动 GDM。如果问题依旧,去看 Xorg 的日志:
journalctl -u gdm3 -b | tail -50 cat /var/log/Xorg.0.log | grep -i error我遇到过的根因主要有下面几种:
第一种,Xorg 配置文件里指定了错误的显示驱动。Ubuntu 24.04 在检测到 NVIDIA 驱动后,会通过/usr/lib/xorg/modules/drivers/nvidia_drv.so加载驱动。如果你之前手动写过/etc/X11/xorg.conf或/etc/X11/xorg.conf.d/里的配置文件,里面的设备字段可能指向了旧的nouveau或vesa,冲突之后就会黑屏。解决办法就是把自定义配置文件备份后移除,重启让系统自动探测。
第二种,Wayland 会话与 NVIDIA 驱动兼容性问题。这是我 2024 年实测最频繁的坑。Ubuntu 24.04 默认 GDM 会优先启动 Wayland,而 NVIDIA 驱动在某些版本尚未完全支持 Wayland 的 GBM 后端,导致桌面环境起不来。可以切换到 Xorg 会话验证:在登录界面,先点击用户名,然后在密码框下面找齿轮图标,选择“Ubuntu on Xorg”。如果能正常进入桌面,说明就是 Wayland 的问题。如果不想每次手动切换,可以编辑/etc/gdm3/custom.conf,取消下面这行的注释:
WaylandEnable=false第三钟,也是比较少见的:内核参数里存在冲突。如果你为了调试曾加过nomodeset之类参数,它会让内核不加载 KMS 驱动,进而干扰 NVIDIA 驱动正常工作。检查/etc/default/grub里的GRUB_CMDLINE_LINUX_DEFAULT,把多余的参数删掉,执行sudo update-grub后重启。
3.3 多显卡(双显卡)笔记本的单独问题:PRIME 与切换策略
双显卡笔记本(集显 + NVIDIA 独显)在 Ubuntu 24.04 上又是一套独立的玩法。装好驱动后,桌面环境默认可能只用核显渲染、独显只在需要时调用,但也可能出现风扇狂转(独显一直在工作)或者外接显示器完全没有信号的问题。
先确认当前使用的显卡:
prime-select query输出结果通常是on-demand、nvidia或intel。个人建议日常使用选on-demand模式(即按需调用独显),这样既省电又能保证兼容性:
sudo prime-select on-demand切换之后需要注销重新登录才能生效。如果你在nvidia模式(纯独显输出)下遇到外接显示器黑屏,大概率是驱动版本偏老,对 NVIDIA 显卡直连输出支持不到位。我的经验是直接换成on-demand,多数问题都能解决。
另外,双显卡机器的 BIOS 设置也会影响驱动行为。部分机型有“Graphics Mode”选项,可以在Discrete、Hybrid、Optimus之间切换。保持默认的 Hybrid 或 Optimus 模式跟 Linux 的兼容性最好,强行改成 Discrete 反而可能让独显无法通过 PCIe 正常初始化。
3.4 新卡(比如 50 系)无法识别或驱动装不上
50 系显卡发售之后,很多人的主板和系统还没准备好,最典型的症状是装完系统后lspci能看到显卡设备,但装驱动时提示“No supported devices found”或者“failed to find a supported NVIDIA GPU”。
这种情况几乎都是驱动版本太旧。NVIDIA 官方对新架构的支持通常是在发售前才加入驱动的源码分支,所以你手上那份半年前的驱动安装包大概率识别不了新卡。解决路径很直接:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt install nvidia-driver-580如果 PPA 里都还没有对应版本,就去官网下载“New Feature Branch”驱动,这类驱动专门针对新卡和新特性发布,一般比稳定分支早几个月提供。另外还要强调一点:Ubuntu 24.04 的内核版本也要尽量新。50 系显卡依赖较新的 GPU 固件接口,老内核可能因为缺少设备 ID 表而无法识别设备。升级到 HWE 内核是比较省心的方式:
sudo apt install linux-generic-hwe-24.04装完更新内核后再安装对应驱动,成功率会高很多。
4. 一些实用经验与建议:让驱动的维护成本降到最低
4.1 学会读日志、用 DKMS 状态追踪驱动状态
驱动安装完后,最需要掌握的不是某一条命令,而是“怎么系统地看状态”。我个人的维护习惯是按照“内核模块 → 用户态工具 → 图形模式”三层去检查:
# 看一眼当前加载了哪些 NVIDIA 相关模块 lsmod | grep nvidia # 查看驱动版本 cat /proc/driver/nvidia/version # 查看 DKMS 的编译记录 dkms status # 查看最近一次启动时跟 nvidia 有关的日志 journalctl -k | grep nvidia这套检查流程 30 秒内就能完成,却能定位绝大多数“驱动到底有没有工作”的问题。比如说,dkms status输出里如果显示某个内核版本对应的模块是 absent,那就是编译失败或者内核升级后没触发编译,修复方向非常明确。
4.2 理顺驱动、CUDA、PyTorch 之间的版本匹配关系
如果你是为了跑深度学习或者 AI 推理装的驱动,那除了驱动本身,还要关注 CUDA 版本链条。很多人会踩这样的坑:驱动装的是 570 版本,对应的 CUDA runtime 最高支持 12.8,但 PyTorch 的预编译包默认依赖 CUDA 11.8 或 12.1,于是 PyTorch import 时直接报 CUDA 不可用。
我个人验证过的推荐搭配是以下组合之一:
| 驱动版本 | 支持的最高 CUDA 版本 | 适配的深度学习框架示例 |
|---|---|---|
| 535.x | 12.2 | PyTorch 2.1~2.3 (cu121) |
| 550.x | 12.4 | PyTorch 2.4 (cu124) |
| 570.x | 12.8 | PyTorch 2.5+ (cu126/cu128) |
注意,这里的“支持的最高 CUDA 版本”指的是驱动自带的用户态库版本上限,实际跑深度学习时安装的 CUDA Toolkit 版本可以由 Conda 或 pip 管理,不一定需要单独装一个系统级 CUDA。我的建议是:先定框架版本,再看框架对 CUDA 的依赖,最后反推驱动版本。
另外提一句,如果nvidia-smi显示 CUDA Version 是 12.8,但你用nvcc --version查到的版本不一样,这是因为 nvcc 来自 CUDA Toolkit 安装,runtime 版本和 driver 自带版本本来就是分开的两个东西,不用硬把它们对齐。
4.3 利用备份与还原策略减少试错成本
驱动这么容易出问题,备份策略就该早点安排上。虽然和 Windows 的“系统还原点”不一样,但 Linux 下有非常成熟的方案。
最轻量级的做法:装驱动前用timeshift对系统做一次快照。
sudo timeshift --create --comments "before-nvidia-driver"Timeshift 默认只备份系统文件(排除用户目录),恢复时只需要从 GRUB 启动菜单选择快照项,或者执行sudo timeshift --restore。对我这种经常在驱动和内核版本之间切来切去的人来说,这个工具节省了无数时间。
如果不想引入额外软件,也可以只备份关键文件:
sudo cp /etc/modprobe.d/ /root/backup-modprobe-$(date +%F) -r sudo cp /etc/X11/xorg.conf* /root/backup-xorg-$(date +%F) -r sudo cp /etc/default/grub /root/backup-grub-$(date +%F)这组备份虽然简单,但能覆盖大多数驱动出问题的根源文件。
4.4 彻底卸载驱动:像做外科手术一样把残留清理干净
最后聊一个大家天天问、却没多少人做对的事:怎么彻底卸载驱动。很多人为了装新版驱动,直接在旧版上再执行安装脚本,结果装完新驱动桌面崩了或者 nvidia-smi 还是显示旧版本号,这种“驱动残留污染”问题,元凶都是没有先彻底卸载。
按安装方式区分:
如果是 apt/PPA 安装的,用:
sudo apt purge '^nvidia-*' '^libnvidia-*' '^libcuda-*' sudo apt autoremove如果是官网 .run 安装的,用:
sudo nvidia-uninstall如果这个命令找不到,说明安装脚本存放位置已经变了,回官网下载同版本安装包,执行:
sudo bash NVIDIA-Linux-x86_64-xxxx.run --uninstall然后清理配置文件和内核参数残留:
sudo rm -f /etc/modprobe.d/nvidia* /etc/modprobe.d/blacklist-nvidia* sudo update-initramfs -u这里面的逻辑是:黑名单文件一旦残留,后续不管装什么驱动,内核都会把对应的模块文件屏蔽,表现就是驱动“装上了但没生效”。这个坑非常隐蔽,我见过不止一个用户在论坛上求助时,把日志贴出来才发现是旧的黑名单配置在作祟。
5. 写在最后:能稳定的驱动才是好驱动
每次写完这种指南,我都会再说一遍:驱动这种东西,追求“最新”没有意义,追求“稳定可用”才是正事。我自己在 Ubuntu 24.04 上长期用于日常和生产环境的组合,是 570 系驱动配合官方仓库安装方式。两条 50 系显卡的新机器我用的是 PPA 里的最新分支,三个月下来也没有遇到影响使用的问题。
另外再补充一个这两年亲测有效的小技巧:装完驱动后顺手把 nvidia-smi 的定时监控打开,写入一个 systemd timer,每隔 5 分钟记录一次 GPU 温度、显存占用和风扇转速。大多数因驱动过热降频或者显存泄漏导致的“性能忽高忽低”问题,都能从这份记录里找到线索。比起出了问题再回去翻日志,这个主动记录的方式省心得多。
按这套流程来,绝大多数 Ubuntu 24.04 下的 NVIDIA 驱动问题都能在当前这个时间点得到有效解决。就算真的遇到我今天没覆盖到的报错,只要记住“拆分配置、逐层排查、留好日志”这十二个字,你也能找到自己的出路。用 Linux 装驱动本来就是一条不断试错的路,少走弯路不现实,但至少每一步踩下去的时候,心里得知道自己踩在了哪块砖上。