Ubuntu 上折腾 Nvidia 显卡驱动,几乎是每个用 Linux 做深度学习、视频渲染或者单纯想跑个 3D 游戏的人都绕不开的一道坎。这件事在有些机器上顺得像喝水,apt一条命令重启就完事;但在另一些机器上,它能让你对着黑屏和满屏报错卡上大半天。我自己在十几台不同配置的机器上装过这套驱动——从笔记本的双显卡切换到机房里没有外网的计算节点,踩过的坑够写一本小册子。这篇文章就把整个流程拆开讲清楚:驱动版本怎么选、装之前要做哪些地基工作、三条主流安装路线各自适合什么场景、装完之后怎么验证,以及那几个最要命的报错到底怎么排查。不管你是第一次在 Ubuntu 装 Nvidia 显卡驱动的新手,还是被nvidia-smi has failed because it couldn't communicate with the nvidia driver折磨过的老手,应该都能从里面找到点有用的东西。
1. 先把概念理顺:Ubuntu 装 Nvidia 驱动到底在装什么
很多人对"装显卡驱动"这件事的认知是模糊的,觉得就是一个软件包的事。结果一旦出问题就完全不知道该往哪个方向查。所以我觉得有必要先把这块讲透,后面排查问题的时候你会感谢这段铺垫。
1.1 内核模块、用户态库和管理工具三件套
Nvidia 驱动在 Linux 上不是一个单独的文件,它至少由三部分组成,而且是各管各的。第一部分是内核模块,也就是nvidia.ko、nvidia-modeset.ko、nvidia-uvm.ko、nvidia-drm.ko这几个.ko文件,它们跑在内核空间,负责和显卡硬件直接对话。第二部分是用户态库,比如libnvidia-gl-xxx、libcuda.so、libnvidia-encode.so,这些是给应用程序调用的接口,OpenGL、CUDA、视频编码都靠它们。第三部分是管理工具,最典型的就是nvidia-smi和nvidia-settings,用来查看状态和配置参数。
这三件套里,最容易出问题的永远是内核模块。原因很简单:内核模块必须针对你当前运行的内核版本重新编译,一旦内核升级而模块没跟着重编,整个驱动就"哑火"了。你会发现nvidia-smi还能运行但报连不上驱动,或者干脆命令都找不到。所以记住一个判断口诀:用户态库装没装决定命令在不在,内核模块编没编决定命令能不能通。后面排查 6.1 节那个经典报错时,这个区分就是第一刀。
1.2 nouveau 和官方闭源驱动的取舍
Ubuntu 默认给你装的是nouveau,这是社区逆向出来的开源驱动。它的好处是开箱即用、随内核走、不需要额外配置,装系统的时候就能点亮屏幕。但它的性能和功能跟官方闭源驱动差得不是一星半点:CUDA 用不了、视频硬编码基本废、3D 性能大概只有官方驱动的几分之一,新卡的支持还经常滞后。
所以只要你打算用 CUDA、跑深度学习、做视频转码,或者玩对性能有要求的游戏,就必须换官方闭源驱动。这里有个关键点:nouveau 和官方驱动是互斥的,两者会抢同一块硬件。如果你没把 nouveau 屏蔽干净就直接装官方驱动,轻则驱动加载失败,重则开机黑屏。这也是为什么下面第 3 节要专门讲"地基工作"——很多人跳过这一步直接装,然后卡在黑屏上怀疑人生。
1.3 哪些场景必须上官方驱动
不是所有场景都值得折腾官方驱动。如果你只是拿 Ubuntu 写代码、看网页、跑个轻量服务,核显或者 nouveau 完全够用,装驱动反而是给自己找麻烦。但下面这几类场景,官方驱动是刚需:
- 跑CUDA / cuDNN / PyTorch / TensorFlow,没有官方驱动连 GPU 都识别不到;
- 用ffmpeg 的 NVENC/NVDEC 硬编码做视频转码,这个对性能提升非常明显;
- 做3D 渲染、Blender、达芬奇调色这类吃显卡的创作工作;
- 需要多显示器、高刷新率、G-Sync/FreeSync等高级显示特性;
- 玩游戏,尤其是 3A 大作,nouveau 基本没法玩。
反过来说,如果你的机器是 Intel HD Graphics 630 这类核显在输出画面,那核显驱动是内核自带的i915,根本不需要单独安装——这一点经常有人搞混,跑去搜"Intel 630 显卡驱动怎么装",其实系统里早就有了,你只需要关心独显那部分。
2. 版本选型:先看显卡代号,再看分支
选错驱动版本是新手最容易犯的错。有人拿着十年前的 Kepler 老卡去装最新的 5xx 驱动,装完发现根本加载不了;也有人新卡去装 470,结果新特性全用不上。选型的核心逻辑其实就一句话:先确定你的显卡属于哪一代架构,再在支持该架构的分支里挑一个够新的稳定版。
2.1 从 lspci 的输出倒推架构
第一步永远是先知道自己的卡是什么。最直接的方式是:
lspci -nn | grep -i vga lspci -nn | grep -i 3d你会看到类似NVIDIA Corporation GA106 [GeForce RTX 3060]这样的输出。方括号里那个前缀就是芯片代号:GA是 Ampere(30 系),AD是 Ada(40 系),GB是 Blackwell(50 系),TU是 Turing(20 系、GTX 16 系),GP是 Pascal(10 系、Quadro P 系列),GM是 Maxwell(GTX 750 到 9 系),GK是 Kepler(GTX 6/7 系)。知道代号,就知道自己卡在哪个支持区间里了。
如果lspci看不到独显,可以换lshw -c display,或者用nvidia-detect这个小工具(Ubuntu 上在nvidia-detect包里),它会直接告诉你当前机器适合哪个驱动版本,非常省心。
2.2 三个分支的区别到底在哪
Nvidia 在 Linux 上的驱动分支可以粗略分成三类,理解它们的定位对你选版本很有帮助。
第一类是长期维护分支(LTSB),比如 470 系列、535 系列。这类分支的特点是生命周期长、bug 修复稳、几乎所有发行版都会长期打包,适合生产环境和"装完就不想再动"的机器。第二类是新特性分支,比如 550、570、580 这些,跟新卡、新 CUDA 版本、新游戏特性的节奏走,功能新但相对更容易遇到小毛病。第三类是老架构维护分支,比如给 Kepler 用的 470.xx 的特定版本,以及官方明确表示"这是最后支持某代架构"的那些分支。
这里有个必须知道的业界动态:Nvidia 已经明确 580 系列是最后一个继续支持 Maxwell、Pascal、Volta 架构的功能分支,之后这些老卡转入长期安全维护,只能拿到 580 分支内的修补版本。所以如果你手上是 GTX 10 系、Quadro P 系列(比如 P600)这类 Pascal 卡,最稳妥的选择是535 或 550 这类仍在广泛打包的 LTS 分支,而不是盲目追最新的 5xx 大版本号。
2.3 型号与驱动版本对照表
下面这张表是我按实际装机经验整理的,覆盖了大部分常见卡,可以直接照着选。
| 显卡架构 / 典型型号 | 建议驱动分支 | 说明 |
|---|---|---|
| Kepler(GTX 6xx/7xx 早期) | 470.xx | 最后支持 Kepler 的分支,别无选择 |
| Maxwell(GTX 750/750Ti/9xx) | 470 或 535 | GTX 750 是 GM107,535 仍可用,470 更保守 |
| Pascal(GTX 10 系、Quadro P600) | 535 / 550 | 广泛打包,CUDA 支持完善 |
| Volta(Tesla V100) | 535 / 550 | 数据中心卡,跟 LTS 走 |
| Turing(GTX 16 系、RTX 20 系) | 535 / 550 | 新特性与稳定兼顾 |
| Ampere(RTX 30 系、A100) | 535 / 550 / 新分支 | CUDA 场景优先 LTS |
| Ada(RTX 40 系) | 550 / 570 / 580 | 建议较新分支 |
| Blackwell(RTX 50 系) | 570 及以上 | 老分支不支持新架构 |
注意:这张表给的是经验区间,不是死规定。最终还是要以
ubuntu-drivers devices或者 Nvidia 官方驱动下载页的型号查询结果为准,因为同一代架构内部也可能有细微差别。
关于热词里提到的gtx750显卡驱动用什么版本的好——GTX 750 和 750Ti 用的是 GM107 核心,属于 Maxwell 第一代,不是 Kepler。所以 470 和 535 都能用。但我个人更推荐470 分支:它更轻、更省资源,对这块卡来说性能完全够,稳定性也经过时间检验。而 fP600是 Pascal,535 装上去一点问题没有,做 CAD 和小规模推理都很稳。
3. 装驱动之前必须做的地基工作
这一节是全文最容易被跳过、但跳过之后代价最大的部分。我见过太多人直接apt install nvidia-driver-535然后重启黑屏,回头来论坛发帖。把下面的准备工作做齐,能帮你避开至少八成的装驱动事故。
3.1 内核头文件和编译链路要提前备好
官方驱动的内核模块是要现场编译的。Ubuntu 的 apt 包会自动帮你拉依赖,但如果你走.run安装或者手动 DKMS,就必须确保当前内核对应的头文件已经装上:
sudo apt update sudo apt install build-essential linux-headers-$(uname -r) dkms这里的$(uname -r)会展开成你当前运行的内核版本,比如6.8.0-45-generic。装完之后可以用ls /usr/src/linux-headers-$(uname -r)确认目录存在。为什么要强调这一步?因为内核模块编译失败最常见的两个原因,一是缺头文件,二是缺编译器。前面装好了,后面才省事。另外要提醒一句:如果你用的是定制的实时内核或者自己编的内核,头文件路径可能不一样,得手动处理。
3.2 Secure Boot 与 MOK 签名
这是近些年越来越高频的一个坑。如果你的主板开启了Secure Boot,那么它只允许加载经过签名的内核模块。Ubuntu 官方仓库里的 nvidia 驱动包是签好名的,正常情况下能直接加载;但你一旦用.run文件自己编译,模块就没签名,Secure Boot 会直接拒绝加载,表现就是装完驱动重启后nvidia-smi报连不上驱动。
处理办法有两种。第一种是简单粗暴:进 BIOS关掉 Secure Boot。第二种是规范做法:注册一个 MOK(Machine Owner Key),给自己的模块签名。Ubuntu 上大致流程是:
sudo mokutil --import /var/lib/shim-signed/mok/MOK.der # 会提示你设置一个一次性密码 sudo reboot # 重启时进入蓝色 MOK 管理界面,选 Enroll MOK,输入刚才的密码重启后mokutil --sb-state能看到 Secure Boot 状态。我个人的建议是:服务器和开发机直接关 Secure Boot 最省心,生产环境或者公司有安全要求就老老实实签名。
3.3 提前屏蔽 nouveau
前面说了 nouveau 和官方驱动互斥,所以装之前要把它挡在外面。新建一个配置文件:
sudo tee /etc/modprobe.d/blacklist-nouveau.conf <<'EOF' blacklist nouveau options nouveau modeset=0 EOF sudo update-initramfs -u两行内容的含义分别是:禁止加载 nouveau 模块,以及关掉 nouveau 的 KMS 模式设置(否则它还是会抢先接管显示)。写完update-initramfs把配置打进 initramfs,重启后才能真正生效。验证方式是重启后执行lsmod | grep nouveau,如果没有任何输出,就说明屏蔽成功了。这一步没做干净,是后面黑屏问题的一大元凶。
3.4 做一次系统快照,给自己留条后路
这部分是我用血泪换来的建议。装显卡驱动是有一定概率把图形界面搞崩的,轻则进不去桌面,重则开机进不了系统。所以动手之前,务必做一次回滚准备。
最省事的方案是Timeshift,装好之后建一个系统快照,出问题一条命令回滚。次一点的方案是手动记下当前驱动状态(dpkg -l | grep nvidia、lsmod | grep nvidia)和 Xorg 配置,至少知道原来的样子。如果你是在虚拟机里折腾(比如 VMware 里装 Ubuntu 测试),那就随便造,快照点一下就能回退。对于物理机、尤其是工作用的机器,不做快照就开始装驱动,是一种很危险的行为。
4. 三条主流安装路线,按场景挑
准备工作做完,就可以正式装了。Ubuntu 上装 Nvidia 驱动有三条主流路线,各有各的适用场景,不能一概而论说哪条最好。
4.1 路线一:ubuntu-drivers 自动推荐
这是我最推荐新手走的路,也是绝大多数场景下的最优解。Ubuntu 维护了一个显卡和驱动的匹配数据库,能自动推荐适合你硬件的版本:
sudo apt update ubuntu-drivers devices输出里会列出可用的驱动,其中带recommended标记的就是官方推荐版本。确定了版本之后,可以两条命令二选一:
sudo ubuntu-drivers autoinstall # 或者指定版本 sudo apt install nvidia-driver-535autoinstall会自动帮你装推荐版本并处理依赖,比较省心。apt install nvidia-driver-535则更可控,适合你想锁定具体版本的场景。装完之后sudo reboot,重启后用nvidia-smi验证。
这条路线的优势是全程走 apt 包管理,升级、卸载、依赖处理都由系统负责,最不容易留下烂摊子。热词里那个"ubuntu20.04 安装显卡驱动 apt install nvidia-driver-535"说的就是这条路。顺带提一句,拼写要注意是nvidia-driver-535,不是nvidia-dirver,输错了 apt 会直接告诉你找不到包。
4.2 路线二:apt 指定版本安装
这条路和路线一其实是同一套机制,区别在于你跳过推荐、直接锁定版本。什么情况下需要这么做?比如你的 CUDA 版本对驱动有明确要求,或者团队统一用某个版本方便复现环境,又或者推荐版本在你的机器上有已知问题需要降级。
做法很直接:
sudo apt install nvidia-driver-535 # 降级到某个具体小版本 sudo apt install nvidia-driver-535=535.183.01-0ubuntu1小版本号可以从apt-cache policy nvidia-driver-535里查到。什么时候该锁小版本?我的经验是:CUDA 和驱动存在版本对应关系(后面 5.3 节细讲),如果你要把环境固化下来,锁小版本比只锁大版本更保险。另外,apt-mark hold nvidia-driver-535可以防止系统升级时自动把它升到新分支,这在生产机器上很有用。
4.3 路线三:官方 .run 文件离线安装
这条路线适合两种极端场景:一是机器完全没外网,二是你需要一个 apt 仓库里没有的特殊版本。做法是从 Nvidia 官网下载对应的.run文件,然后在纯文本模式下安装:
# 先切到文本模式,停掉图形界面 sudo systemctl stop gdm3 # 或者 lightdm,看你的显示管理器 # 切到 tty:Ctrl+Alt+F3 sudo telinit 3 # 给 .run 文件加执行权限并安装 chmod +x NVIDIA-Linux-x86_64-535.183.01.run sudo ./NVIDIA-Linux-x86_64-535.183.01.run安装过程中会问你几个问题:是否编译 DKMS 模块(推荐选是,这样内核升级后能自动重编)、是否注册内核模块签名(Secure Boot 开着的话选是)、是否让安装器修改 Xorg 配置(一般选是)。装完sudo reboot。
这条路线最大的特点就是干净但不隔离——它不经过包管理器,卸载得用它自带的nvidia-uninstall。如果你之后又用 apt 装了别的 nvidia 包,两套东西混在一起,麻烦就来了。所以除非有明确需求,我个人更倾向 apt 路线。
4.4 离线环境怎么装
机房里的计算节点经常没外网,这时候有几种办法。第一种是在有网的同版本机器上把 deb 包全部下下来(apt-get download或者apt-get -d install),拷过去用dpkg -i批量装。第二种是搭一个内网 apt 镜像源。第三种就是直接用.run文件。我一般推荐第二种,虽然前期麻烦点,但后续所有节点升级维护都省事。
不管走哪条路,装完之后的第一件事都是重启,然后进第 5 节验证。
5. 装完之后必做的验证与配置
重启回来不代表就成功了,必须逐项验证,才能确保驱动真的在工作。
5.1 nvidia-smi 怎么读
nvidia-smi是最常用的验证命令,但很多人只会看它有没有报错,不会读它输出的信息。实际上它右上角有个很关键的东西——CUDA Version。新手经常误会这是"你安装的 CUDA 版本",其实它是当前驱动支持的最高 CUDA 运行时版本,不代表你系统里装了 CUDA。搞不清这个区别,后面配 PyTorch 环境时会一头雾水。
另外几个验证点:
nvidia-smi # 能看到显卡列表和驱动版本 lsmod | grep nvidia # 能看到 nvidia、nvidia_modeset 等模块 cat /proc/driver/nvidia/version # 内核模块版本 glxinfo | grep "OpenGL renderer" # 确认当前渲染用的是独显还是核显glxinfo需要mesa-utils包。如果它显示的是NVIDIA GeForce ...,说明独显在负责渲染;如果显示Intel ...,那就还是核显在干活,需要做下面的 PRIME 配置。
5.2 双显卡笔记本的 PRIME 切换
笔记本(尤其是带 Intel 核显 + Nvidia 独显的机器)会遇到一个问题:到底谁在输出画面。Ubuntu 用 PRIME 来做双显卡切换,命令是prime-select:
prime-select query # 查看当前模式 sudo prime-select nvidia # 全部走独显,性能强,费电 sudo prime-select on-demand # 默认用核显,需要时切独显,省电 sudo prime-select intel # 强制核显Ubuntu 22.04 之后默认是on-demand模式,日常办公省电,跑深度学习时再切 nvidia。切换完要注销重新登录才能生效。这是我实测下来最省心的方案,比手动改 Xorg 配置靠谱得多。如果你不确定自己是不是双显卡机器,用lspci | grep -E "VGA|3D"看看是不是同时出现了 Intel 和 Nvidia。
5.3 CUDA 版本和驱动的对应关系
这块和显卡驱动强相关,简单说清楚:驱动版本决定了它能支持的最高 CUDA 运行时版本。比如nvidia-smi右上角显示CUDA Version: 12.2,意思是你最多能跑 CUDA 12.2 及以下的程序,装了更高的 CUDA Toolkit 也不会生效。
所以配环境时的顺序是:先定驱动版本,再根据驱动支持的 CUDA 上限选 CUDA Toolkit,最后选匹配的 PyTorch/TensorFlow。而不是反过来先装框架再去凑驱动。如果你在 CUDA 13 相关的新环境里(热词里提到"ubuntu26.04 nvidia cuda13"),那就必须用较新的驱动分支,老驱动是撑不起来的。这个顺序搞反了,就会出现"框架装了但用不了 GPU"的经典问题。
5.4 给 ffmpeg 配上 NVENC 硬编码
很多人装 Nvidia 驱动就是为了用 ffmpeg 的硬件编解码。驱动装好后,还需要 ffmpeg 在编译时启用了 NVENC 支持。验证方式是:
ffmpeg -hwaccels | grep cuda ffmpeg -encoders | grep nvenc如果能看到h264_nvenc、hevc_nvenc这些编码器,说明可以用。发行版自带的 ffmpeg 有时不带 NVENC,那你就得自己编译一个带--enable-nvenc --enable-cuda-nvcc的版本。用起来也很简单,转码时加-c:v h264_nvenc就行,速度能比纯 CPU 快好几倍,尤其适合批量转码场景。
6. 常见问题排查实录
下面这些报错,我基本每个都亲自遇到过。按"现象—原因—解决"的结构给你捋一遍。
6.1 nvidia-smi 报连不上驱动
完整报错通常是:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver。这是最高频的一个问题,根因从高到低排下来有这么几个:
第一个原因是内核模块没编译成功。可能是内核升级了但 DKMS 没触发重编,也可能是头文件缺失。先查dkms status,看 nvidia 模块的状态。如果是built或者干脆没记录,就手动重装一次:sudo apt install --reinstall nvidia-dkms-535。第二个原因是 Secure Boot 拦住了未签名的模块,用dmesg | grep -i "module verification"或mokutil --sb-state确认。第三个原因是 nouveau 没屏蔽干净,lsmod | grep nouveau有输出就说明问题在这。
排查的固定套路是:lsmod | grep nvidia看模块在不在 →dmesg | grep -i nvidia看内核怎么说 →dkms status看编译情况。三刀下去基本能定位。
6.2 failed to load module "glxserver_nvidia"
这个报错常见于 Xorg 日志,全称类似[ 7.125] (EE) NVIDIA: Failed to load module "glxserver_nvidia"。它通常指向用户态库和内核模块版本不匹配,或者 32 位/64 位库缺了一部分。最常见的原因是用.run装过一次、又用 apt 装了一次,两套库混在一起。
解决办法是先彻底清干净(看 6.5),再重新用单一方式装一遍。如果只是想补库,可以试试sudo apt install --reinstall libnvidia-gl-535。另外确认一下 Xorg 配置文件ls /usr/lib/xorg/modules/drivers/ | grep nvidia里是不是有nvidia_drv.so,缺了就说明对应包没装到位。
6.3 黑屏、循环登录、只停在光标
这三种现象经常一起出现,本质都是图形界面起不来。常见诱因有几个:nouveau 没屏蔽干净被官方驱动抢了硬件;Xorg 配置文件冲突(比如残留的nvidia-xconfig生成的老配置);显示管理器版本和驱动不兼容;还有少数情况是驱动版本和卡不匹配。
应急处理是进恢复模式或者用Ctrl+Alt+F3切到 tty,先卸载驱动回到 nouveau,保证能进系统:sudo apt purge '^nvidia-.*',然后sudo update-initramfs -u,重启。能进桌面之后再仔细排查。预防上,装之前做快照(3.4 节)是最有效的。
6.4 内核升级后驱动突然失效
这是个经典场景:某天apt upgrade升了内核,重启后nvidia-smi就报错了,之前一直好好的。原因是新内核的头文件和你原来的驱动模块对不上,DKMS 没有自动重编,或者重编失败了。
排查:dkms status会显示哪个内核版本 build 失败。解决:先装新内核的头文件sudo apt install linux-headers-$(uname -r),再sudo dpkg-reconfigure nvidia-dkms-535触发重编。如果还是失败,检查/var/lib/dkms/nvidia/.../build/make.log看具体编译错误,一般是编译器版本或者内核补丁导致。长期方案是用apt-mark hold锁住内核和驱动,或者确保 DKMS 一直处于工作状态。
6.5 卸载不干净导致重装反复失败
这是最让人抓狂的一类问题。表现是重装了无数次,问题依旧。根因是残留文件和新安装冲突。彻底清理的步骤:
sudo apt purge '^nvidia-.*' sudo apt purge '^libnvidia-.*' sudo apt autoremove sudo apt autoclean # 清掉可能的残留配置 sudo rm -f /etc/modprobe.d/nvidia*.conf sudo rm -f /etc/X11/xorg.conf sudo rm -rf /etc/X11/xorg.conf.d/20-nvidia.conf如果你之前用过.run安装,还得先跑一遍sudo nvidia-uninstall。图形界面里还有一个思路可以参考 Windows 上用 DDU 彻底卸载驱动的做法——先卸干净再装,不要指望"覆盖安装"能解决问题。清理完重启一次,确认lsmod | grep nvidia为空、nvidia-smi报 command not found,再开始装新的,这样才叫干净。
6.6 常见问题速查表
把上面这些整理成一张表,方便你对着现象直接定位。
| 现象 | 最可能的原因 | 优先排查动作 |
|---|---|---|
| nvidia-smi 报连不上驱动 | 内核模块没编 / 没签名 | dkms status、mokutil --sb-state |
| 命令不存在(command not found) | 用户态库没装 | `dpkg -l |
| glxserver_nvidia 加载失败 | 库版本混乱 / 缺库 | 彻底清理后单一方式重装 |
| 黑屏、循环登录 | nouveau 未屏蔽 / Xorg 配置冲突 | 进 tty 卸载驱动恢复 |
| 内核升级后驱动失效 | DKMS 没重编 | 装头文件后dpkg-reconfigure |
| 重装反复失败 | 残留文件冲突 | 按 6.5 彻底清理 |
| 独显不参与渲染 | PRIME 模式不对 | prime-select query并切换 |
| Secure Boot 下 .run 装不上 | 模块未签名 | 注册 MOK 或关闭 Secure Boot |
这张表建议收藏,出问题的时候按"现象"那一列找就行,能省下大量到处搜帖子的时间。
7. 一些掏心窝的实操体会
关于版本,我的态度一直很明确:能用 LTS 分支就别追新分支。新分支带来的性能提升,在大多数场景下你根本感知不到,但它带来的兼容性问题却可能让你损失一整天。我见过有人为了"用最新驱动"从稳定的 535 升到最新分支,结果 CUDA 环境直接崩了,回退还要重装一堆东西。除非你的卡强制要求新分支(比如 50 系),否则 535、550 这类分支就是最舒服的选择。
另外,关于双系统的问题也值得提一句。如果你机器上装了双系统,Windows 那边的驱动更新有时候会影响 Nvidia 显卡的固件状态,导致 Linux 这边出现奇怪的问题。我遇到过几次这种情况,排查了半天才发现是固件层面的问题。所以如果 Linux 这边突然不对了,回想一下最近有没有动过 Windows 那边的驱动更新。
最后一个习惯:每次装完驱动,我都会把nvidia-smi的输出、驱动版本、内核版本记到一个文本文件里。看着麻烦,但当环境出问题时,你能一眼看出"原来是内核从 A 升到了 B",排查效率完全不一样。装显卡驱动这件事,说到底是和版本管理打交道,你说的每一句话、改的每一个配置,都应该留下痕迹,这样下次出问题才不会两眼一抹黑。