十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

NVIDIA显卡驱动重装与排错实战指南

NVIDIA显卡驱动重装与排错实战指南 “重新安装的nvidia显卡驱动”这活儿我干过太多回了多到闭着眼都能把命令行敲出来。每次接这种单子不是Ubuntu内核一升级重启之后nvidia-smi直接失联就是自己手欠装了不对版的驱动把整个桌面环境搞崩。说真的重装NVIDIA驱动本身不难难的是你永远不知道机器之前被折腾成什么样了残留的库、冲突的模块、没删干净的配置任何一个都能让你新装的驱动起不来。这篇文章不扯虚的就是把重装驱动的完整逻辑、我在不同系统上踩过的坑、排查报错的思路一次性梳理清楚。不管你是跑深度学习、做3D渲染还是搞自动驾驶仿真这套流程都能直接用。1. 为什么你总在重装显卡驱动1.1 重装场景与根因NVIDIA驱动在Linux上重装频率远高于Windows这个问题几乎是无解的。你要是只在Windows上打游戏驱动装上基本就忘了它的存在。但换到Ubuntu这种滚动更新的环境内核一两天一个小版本驱动模块需要跟着重新编译但凡其中一个环节没匹配上你的GPU就变成了一块砖头nvidia-smi直接给你一句冷冰冰的has failed because it couldnt communicate with the nvidia driver。我遇到的场景大概分这么几类第一内核升级后驱动失效这是频率最高的尤其Ubuntu 22.04用了HWE内核的机器每次大版本内核更新都像抽奖第二手动从官网下了.run安装包装的时候没卸干净旧驱动结果两套驱动在系统里互相打架第三换了显卡比如从GTX 750换成RTX 3060老的390驱动根本不识别新卡第四自己改了Xorg配置或者装了某些需要覆盖驱动的软件比如CUDA自带的驱动把系统驱动覆盖了。搞清楚自己属于哪一类才能决定下一步要不要先卸载、怎么卸载。1.2 动手前必须收集的环境信息不要一上来就敲安装命令。我在重装之前固定会花两分钟确认下面这些信息省得装到一半发现方向错了显卡具体型号lspci | grep -i nvidia看VGA controller后面跟的型号是GA106还是TU116这决定了该装哪个驱动分支当前内核版本uname -r这个直接决定DKMS能不能编译成功新内核对应新版驱动老内核往往卡在gcc版本不匹配当前驱动状态nvidia-smi还能不能跑lsmod | grep nvidia看看模块是不是已经加载了再看dkms status确认是哪个版本的内核模块在待命系统版本和gcclsb_release -a和gcc --version如果你的系统是Ubuntu 24.04内核6.8起步那驱动版本至少得550以上老版本编译都过不去。有时候nvidia-smi输出正常只是分辨率不对这种根本不用重装大概率是Xorg配置被改了但如果你连nvidia-smi都看不到或者开机直接卡在登录界面循环那就老老实实走下面的完整重装流程。另外补一句我见过不少人不看显卡型号就装驱动拿着给Ampere架构准备的驱动装到老旧Maxwell架构显卡上折腾一晚上最后发现是驱动版本根本不支持这个卡属于典型的先射箭后画靶子。2. Ubuntu下从零到一重装NVIDIA驱动的完整流程2.1 选驱动来源apt、官网runfile还是PPA在Ubuntu上装NVIDIA驱动主流的渠道就这么几个但不同渠道的坑完全不一样我一个个说。apt直接安装是我最推荐的方式原因很简单它跟你的系统仓库绑定依赖问题会自动处理内核更新的时候DKMS会自动重新编译模块省掉一大半麻烦。Ubuntu 20.04的源里有nvidia-driver-53522.04源里有535和55024.04源里直接就是550和570与时俱进。该版本对应的CUDA兼容性也都维护好了对绝大多数人来说这是最省心的路径。用ubuntu-drivers devices它会自动检测你显卡型号和当前内核然后推荐一个最合适的版本。不过apt装驱动有一个前提你的系统软件源得是正常的不然下载依赖的时候能卡到怀疑人生。官网runfile安装我一般只在内核特别新、或者需要特定版本驱动的时候才用比如生产服务器上需要装的版本仓库里没有。runfile的优点是可以自定义安装组件不装OpenGL、不装32位库都可以勾选缺点是依赖管理完全是手工活缺哪个库自己去补而且如果你的旧驱动没有干净卸掉runfile的安装脚本很容易直接报错退出。PPA方式尤其是ppa:graphics-drivers/ppa这个源提供的驱动版本比官方源新很多适合那些需要追新驱动支持新显卡、新特性的用户。但代价是稳定性差一些毕竟它把驱动打好包装到Ubuntu老版本上经常需要额外升级一些基础库。我自己的原则是只要能跑优先用官方源官方源没有合适的版本才考虑PPA或者官网runfile。2.2 卸载旧驱动的准确姿势很多人重装驱动失败就栽在第一步没卸载干净。旧驱动的残骸包括内核模块、OpenGL库、Xorg扩展文件、还有一堆配置文件任何一个残留都可能让新驱动起不来。正确的卸载姿势如下sudo apt purge nvidia-* libnvidia-* sudo apt autoremove sudo apt --fix-broken install这里用purge而不是remove是有讲究的purge会连配置文件一起删掉remove还会留在系统里的/etc/modprobe.d/nvidia*.conf、/etc/X11/xorg.conf.d里的残留都会在下次启动的时候干扰新驱动。autoremove删掉那些因为驱动依赖被拉进来但现在已经没用的库避免后续编译模块的时候gcc找到一堆错误版本的库文件头。--fix-broken install是为了把依赖关系理顺以防残留的包导致apt无法正常工作。如果你之前是用runfile安装的那就不能用apt来卸。官方runfile在安装目录下会生成一个卸载脚本路径大概是/usr/bin/nvidia-uninstall执行它即可。还有一些第三方脚本比如在旧版本里用的nvidia-installer --uninstall也能卸得相对干净。重点说一句卸载完驱动之后一定要重启一次再装新驱动不要在旧模块还在内核里加载的情况下直接覆盖安装否则你会看到各种奇怪的段错误和加载失败。2.3 禁用nouveau这一步走错全盘皆输nouveau是Linux内核自带的开源NVIDIA驱动实现问题在于它和NVIDIA闭源驱动的内核模块是完全不兼容的两者同时存在时加载了哪个模块取决于启动顺序大概率是nouveau先抢占了GPU你的闭源驱动无论如何起不来。更恶心的是nouveau加载了之后连nvidia-smi都看不到显卡。所以重装驱动之前必须把nouveau彻底拉黑。创建一个配置文件sudo bash -c echo blacklist nouveau /etc/modprobe.d/blacklist-nouveau.conf sudo bash -c echo options nouveau modeset0 /etc/modprobe.d/blacklist-nouveau.conf这里有个细节容易被忽略很多教程只让你写blacklist nouveau但没写options nouveau modeset0。如果不禁用modesetnouveau的加速渲染路径还是会被启动某些情况下它依然会去抢占设备。写完配置文件之后必须执行sudo update-initramfs -u然后再重启。注意update-initramfs -u这条命令是必须的光改modprobe.d配置文件不更新initramfs在开机早期nouveau就会被加载后面再想拉黑就晚了。重启之后用lsmod | grep nouveau检查如果没有输出说明黑名单生效了。我见过有人在这个环节直接跳过了检测就往下装驱动结果后面报错排查了半天回头一看nouveau还挂在系统里属于典型的低级失误。2.4 安装驱动与验证环境准备好之后安装就分两步第一步先让系统自己推荐驱动版本ubuntu-drivers devices这条命令会列出你的显卡型号以及系统源中可用的驱动版本并用recommended标记出来推荐版本。在Ubuntu 20.04上我在GTX 1660这台机器上拿到推荐版本是nvidia-driver-470但现在源里一般推荐535在24.04的源里推荐版本可能直接就是550甚至575。推荐版本不一定就是最好的但它的内核模块是经过Ubuntu测试的对大多数人来说兼容性最有保障。第二步安装sudo apt install nvidia-driver-535这里我把版本号写死是为了避免部分老教程更新滞后。用apt install nvidia-driver-535这种写法系统把驱动主包、内核模块、OpenGL库、Vulkan库、CUDA运行时库虽然只是runtime一次性全部拉下来装好。如果你需要32位应用的OpenGL支持可以再补一个sudo apt install libnvidia-gl-535:i386。装完之后把用户加进video组大多数系统已经自动加入不放心就执行一下sudo usermod -a -G video $USER然后重启用nvidia-smi验证。正常的话输出类似下面这样----------------------------------------------------------------------------- | NVIDIA-SMI 535.154.05 Driver Version: 535.154.05 CUDA Version: 12.3 | |---------------------------------------------------------------------------如果你看到这个恭喜你重装成功了。之后如果需要配置CUDA开发环境继续往下看第三节。3. 驱动安装的进阶配置3.1 安装驱动后如何配CUDA很多朋友装好驱动之后顺手就跑nvcc --version结果报command not found就以为驱动没装好。其实驱动和CUDA Toolkit是两码事驱动是让GPU跑起来的基础软件CUDA Toolkit是让你能编译CUDA代码的开发环境两者是独立安装的。nvidia-smi输出的CUDA Version表示的是当前驱动最高支持到哪个CUDA版本并不代表你已经装了CUDA。如果你只是为了跑别人的预编译程序比如Carla 0.9.15那么现在流行的安装方式其实只需要装好驱动就行很多程序都带了CUDA runtime运行时库。但如果你需要自己写CUDA代码、编译PyTorch/tensorflow的扩展、或者做C层面的CUDA开发那必须安装CUDA Toolkitsudo apt install nvidia-cuda-toolkit说真的我在生产服务器上不推荐用apt装这个工具链因为它依赖库版本低和自己项目编译好的代码经常不兼容。更好的做法是去NVIDIA官网下载runfile的CUDA安装包装的时候务必取消勾选Driver组件只装Toolkit和Samples避免它自带的驱动把你这系统驱动覆盖得乱七八糟。这里还建议装完CUDA后设置好环境变量在~/.bashrc里写export PATH/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda/lib64:$LD_LIBRARY_PATH3.2 双显卡冲突的修复方法双显卡机器在重装NVIDIA驱动时是最容易翻车的场景之一牛就牛在它永远不是一种翻车方式。笔记本是Intel核显NVIDIA独显台式机是核显A卡/N卡的混插还有可能是一张老卡一张新卡插一起。先说Intel核显NVIDIA独显的笔记本。这类机器在BIOS里把图形输出模式设置成Optimus或者Hybrid混合模式NVIDIA独显作为辅助渲染设备最终画面由核显输出。重装驱动之后系统认不出独显在nvidia-settings里只看到核显或者干脆看不到NVIDIA卡。这时检查/etc/X11/xorg.conf如果存在删掉它重启让Xorg自动识别如果不存在可以用prime-select query查看当前PRIME模式执行sudo prime-select nvidia切换到独显模式重新登录。注意如果你在笔记本上装了NVIDIA驱动之后开机黑屏或者登录后一直转圈大概率是PRIME模式设置错了回到文本模式重启lightdm或者gdm即可恢复。再说台式机双显卡。我处理过一个机器一张RTX 3060挖矿一张老的GTX 750做亮机卡装驱动之后怎么也进不了桌面。查日志发现Xorg的配置里BusID指向了错误的PCI地址X server尝试用GTX 750加载NVIDIA模块但实际渲染目标又是RTX 3060驱动直接Segfault。解决方法是手动写xorg.conf指定每张卡的BusIDnvidia-xconfig --enable-all-gpus然后打开/etc/X11/xorg.conf在Device段里补上每张卡的BusID这个BusID可以用nvidia-xconfig --query-gpu-info查。两块N卡冲突时优先把不承担显示输出的卡在BIOS里设成禁用或者直接把副卡拔掉等系统稳定了再插回去这招最省事。3.3 完全离线安装驱动的方案离线装NVIDIA驱动这个需求真实存在尤其是那些无法连外网的生产环境、开发机和内网服务器。你没法跑apt install没法下载runfile只能靠U盘或者内部镜像源解决。方案一离线安装.run文件最简单。在联网机器上从NVIDIA官网下载对应型号的驱动.run文件拷贝到目标机器后sudo chmod x NVIDIA-Linux-x86_64-535.154.05.run sudo ./NVIDIA-Linux-x86_64-535.154.05.run --no-questions --uinone如果之前装过驱动runfile会自动调用nvidia-uninstall把旧的卸掉再装新的亲测在离线机器上问题不大前提是系统本身装了编译内核模块所需的gcc、make和kernel-headers。方案二离线.deb包安装。这个方法适合你完全依赖apt生态管理驱动的情况。在一台联网且系统版本一致的机器上执行apt download nvidia-driver-535 libnvidia-gl-535 libnvidia-compute-535 libnvidia-decode-535 libnvidia-encode-535 libnvidia-extra-535 libnvidia-fbc1-535 libnvidia-gl-535 libnvidia-ifr1-535 libnvidia-tesla-535-fbc1 libnvidia-tesla-535-gl libnvidia-tesla-535-ifr1 nvidia-dkms-535 nvidia-kernel-common-535 nvidia-kernel-source-535 nvidia-utils-535把所有deb包拷贝到内网机器同一个目录下然后sudo dpkg -i *.deb重点来了dpkg装deb包不会自动处理依赖关系所以上面列依赖的时候你自己要一条条把依赖包也下载下来。我踩过坑缺了libnvidia-compute装完nvidia-smi坏了报错信息还是那句话couldnt communicate with the nvidia driver查了半天结果是库文件缺失不是驱动本身的锅。还有一种方案是离线配置apt本地源把官方源下载到本地内网机器把它当成自己的软件源apt install依然能用但配置复杂度更高一般个人用不上。4. 高频报错速查指南4.1 nvidia-smi失联报错这个报错是我见过最多的出镜率极高原文是nvidia-smi has failed because it couldnt communicate with the nvidia driver。翻译一下就是nvidia-smi这个工具找到了但内核里没有对应的nvidia模块可以通信。原因基本集中在三处第一驱动根本没装上模块没进内核。执行lsmod | grep nvidia没有输出再试sudo modprobe nvidia如果报Module nvidia not found说明模块文件根本没编译出来或者没安装重新执行一遍驱动的安装流程重点检查DKMS。第二驱动装了但加载失败。执行dmesg | grep -i nvidia很多时候能看到NVRM: API mismatch或者Unknown symbol这类信息。API mismatch的意思是驱动主程序和内核模块版本不一致比如你之前用的是570现在模块还是535的残留sudo apt purge nvidia-*之后重装能解决。Unknown symbol则一般说明内核版本升级了模块没有重新编译执行sudo dkms autoinstall。第三nouveau抢占。这个前面已经说过不重复。第四Secure Boot没关。如果你在BIOS里开了Secure Boot而驱动模块没有签名内核会拒绝加载它同样导致nvidia-smi失联。排查方式是mokutil --sb-state如果显示SecureBoot enabled进BIOS关掉它或者去折腾签名流程不推荐太麻烦了。4.2 Xorg报glxserver_nvidia加载失败日志里出现(EE) NVIDIA: Failed to load module glxserver_nvidia (module does not exist, 0)这是典型的X server找不到NVIDIA的OpenGL扩展模块。在Ubuntu 22.04上出现频率非常高原因是NVIDIA驱动包里的libglxserver_nvidia.so没有被安装到Xorg的模块目录或者被其他库覆盖了。解决方式其实不复杂安装完整的驱动包即可sudo apt install --reinstall nvidia-driver-535 libglx0 libglx-vendor-nvidia如果还是没有直接去/usr/lib/xorg/modules/extensions/目录看有没有libglxserver_nvidia.so.535.154.05没有的话从libnvidia-gl-535包提取。还有一种可能是Xorg版本太老或者太新导致GLX模块接口不兼容这种需要升级/降级Xorg或者换驱动版本。我把这个报错的排查思路整理成下表报错信息可能原因解决方向Failed to load module glxserver_nvidialibglxserver_nvidia.so未安装/被覆盖重装nvidia-driver及libglx-vendor-nvidiaNVIDIA: Failed to load the NVIDIA kernel module内核模块未加载检查dkms status执行sudo dkms installNVRM: API mismatch: client is 535.154, kernel is 550.xx驱动版本不一致purge所有nvidia包后重装统一版本nouveau模块仍在加载未正确禁用且更新initramfs确认blacklist文件并update-initramfs -unvidia-settings: ERROR: Unable to load info from any available system驱动模块未加载/PRIME配置错误先解决modprobe再检查prime-select4.3 安装程序卡住不动在Windows上装NVIDIA驱动时安装包卡在进度条上不动尤其在NVIDIA安装3D Vision这个组件上卡住的情况遇到过好几次。3D Vision这套老古董组件在Windows 10/11上兼容性极差显卡驱动包在安装的时候会自动尝试装3D Vision驱动一装就是老半天甚至直接假死。解决方法有两个任选其一第一种去NVIDIA官网下载对应的离线安装包但安装时选择“自定义安装”在组件列表里把“3D Vision控制器驱动”和“3D Vision驱动”前面的勾取消掉只装显卡驱动和PhysX。第二种如果你需要用的功能不需要3D Vision直接用NVIDIA App管理驱动它会给你装好干净的驱动不会带那些用不上的旧组件。这个卡住问题在Studio驱动和Game Ready驱动上都出现过跟驱动版本关系不大主要还是组件兼容性的锅。4.4 驱动装好后控制面板和缓存问题Windows端驱动装好了但右键桌面找不到NVIDIA控制面板这问题我在Win10/11企业版上遇到太多次了。原因通常是微软商店里那个NVIDIA Control Panel没有自动装或者老的桌面控制面板被新驱动移除。解决方式去Microsoft Store搜索NVIDIA Control Panel下载安装即可。注意某些精简版系统直接把商店阉割了那就需要从NVIDIA官网下载独立的控制面板安装包或者在驱动安装时选择“自定义”并勾选控制面板组件。顺带提一个经常在网上被搜到的问题C:\Users\Admin\AppData\Local\NVIDIA\DXCache这个目录是干嘛的。DXCache是NVIDIA的DirectX着色器缓存游戏运行时把编译好的着色器缓存到磁盘上下次启动同一游戏可以直接加载所以它体积会越来越大甚至好几个G。有时你发现游戏加载变慢、帧率不稳可以考虑清空它让驱动重新编译。正常的清理方法是NVIDIA控制面板 - 管理3D设置 - 着色器缓存大小把它从“默认”改成“无限制”能减少反复编译但要清理时直接删除DXCache目录下的文件即可驱动会自动重建。注意删除之前最好关闭正在运行的3D应用否则可能碰到文件占用。4.5 驱动版本选择尤其是老显卡GTX 750、750 Ti、P600这些老卡的用户经常问“用什么版本的驱动好”。我的答案是在Windows下NVIDIA官方对Maxwell架构GTX 750/900系的驱动支持还算厚道最新的Game Ready驱动依然支持但是性能提升有限而且新驱动对老卡优化变少体积倒是越来越大。老实说如果你的卡是750Ti装537.13之前的版本体验最稳定后面的版本基本没有为老卡做优化体积还翻倍。P600这种专业入门卡直接用Studio驱动就行。在Linux下老Maxwell和Pascal架构10系对驱动版本的选择就敏感得多。Ubuntu 20.04下GTX 750建议装nvidia-driver-470或者nvidia-driver-535实测535跑CUDA 12也没问题但470由于是最后一个支持Maxwell的版本很多老库维护者还在用它。千万别从官网下最新的570驱动装到GTX 750上大概率启动模块就报架构不支持被迫回滚。5. Windows端重装驱动的差异与补充5.1 用DDU彻底清理旧驱动Windows下重装NVIDIA驱动最大的坑不是驱动本身而是旧驱动的残留。NVIDIA的驱动卸载程序做得并不干净注册表、服务项、驱动程序文件、DXCache、配置文件到处都会留点东西。如果新版驱动装不上或者装完总是掉驱动、进游戏黑屏我强烈建议用DDUDisplay Driver Uninstaller在安全模式下彻底清一遍。DDU的使用要点下载DDU解压到一个干净目录断开网络防止Windows自动下载替换驱动重启进入安全模式运行DDU选择“清除并重启”重启后正常进入系统再运行NVIDIA的最新驱动安装包。这一步走完系统基本回到没有任何显卡驱动残留的状态驱动安装成功率极高。安全模式下DDU清除驱动的作用就是绕开正在运行的系统服务对这些文件的占用删起来才干净。5.2 Studio驱动和Game Ready驱动怎么选NVIDIA官方目前有两条驱动线Game ReadyGRD和Studio DriverSD。很多人以为前者是给游戏玩家的后者是给设计师的其实没那么简单。Game Ready驱动会第一时间为最新游戏做优化但随之而来的是更新频繁、稳定性和兼容性一般有时候一个版本为了新游戏可能导致旧游戏或专业软件闪退。Studio驱动则更加保守它把主要精力放在Adobe全家桶、Blender、DaVinci Resolve这些创作软件上稳定性优先更新频率低但驱动版本往往比GRD落后几周。跑深度学习、3D渲染、视频剪辑、CAD设计的机器我建议直接用Studio驱动。玩最新3A大作才考虑Game Ready。我还在Studio驱动上跑过CUDAPyTorch训练和推理没有任何问题所谓Studio驱动不带游戏优化会影响CUDA性能的说法实测下来基本是玄学。另外如果NVIDIA Studio 616.92这个版本驱动安装失败很大概率不是驱动本身的问题而是系统里有旧驱动残留或者杀毒软件拦截了驱动安装服务。先跑DDU再关掉实时防护装完驱动再打开然后重新安装。Windows 10/11的驱动签名强制校验不会拦截NVIDIA签名驱动但第三方的杀毒软件可能因为行为检测误杀驱动安装程序这点值得留意。5.3 驱动下载路径、历史版本与Profile InspectorNVIDIA App下载的驱动默认存放在C:\Users\Admin\Downloads\NVIDIA目录下如果你安装时选择了自定义路径则有可能在C:\Program Files\NVIDIA Corporation\Installer2的某个随机子目录里。NVIDIA的下载器在安装完成之后一般会自行清理安装包所以如果你是想保存离线安装包备用就不要用NVIDIA App来下载直接去NVIDIA官网手动下载完整的离线安装包。历史驱动的下载NVIDIA官网的驱动下载页面有“试用版驱动”区域里面可以找到所有历史正式版和试用版驱动。有时候新驱动对老游戏反而是一个负优化或者你用的专业软件对新驱动支持不良回滚到上一版本就正常了。我的习惯是新驱动出来后先在虚拟机或者备用机器上跑一周确认没坑再在主力机器上更新不然工作到一半掉驱动就是灾难。顺带介绍一下NVIDIA Profile Inspector这工具是给进阶玩家用的可以修改显卡驱动内置的配置文件包括SLI/交火设置、垂直同步、最大预渲染帧数等高级控制面板里没有的选项。比如你想给某个DX9老游戏强制开启MSAA、或者调整SLI的渲染模式都可以用它改。不过警告一下这个工具能把设置改得很深改错了轻则帧数暴跌重则驱动崩溃改之前记得备份nvdrsdb0.bin和nvdrsdb1.bin配置档案。5.4 特殊硬件平台的驱动安装最后聊两个特殊硬件平台的场景。一个是NVIDIA Jetson Nano这类嵌入式开发板。Jetson的驱动是烧录在官方的SDK Manager镜像里的不要尝试手动安装普通的显卡驱动会直接把整个系统搞坏。重装系统的最佳方式是用NVIDIA SDK Manager重新烧录官方镜像镜像里的驱动版本和板子的硬件是绑定的。你的板子如果跑不了nvidia-smi直接重烧镜像比重装驱动靠谱得多。另一个是像浪潮CE530H这种整机服务器它会提供自带的驱动光盘或者OEM驱动zip包虽然内核还是NVIDIA的但OEM包往往附带了一些针对服务器主板和散热策略的定制参数。我建议优先用官方提供的OEM包没有OEM包才用NVIDIA官网驱动。工作站级别的RTX 8000请直接用Studio驱动跑渲染、CUDA稳定得很。至于网上偶尔讨论的B300这类面向AI训练的数据中心GPU用的就不是我们常规的桌面驱动流程了那套体系CUDA驱动、MIG、持久化模式和普通桌面卡完全两个世界但基本的驱动加载、nvidia-smi通信原理是一样的。6. 一些让我少跑冤枉路的习惯干了这么多年踩过无数次坑之后我给自己定了几条装驱动的铁律分享给你参考第一重装之前先备份。备份/etc/X11/xorg.conf如果有备份/etc/modprobe.d/下的所有NVIDIA相关配置文件记录一下当前的驱动版本和CUDA版本这样即使装废了也能快速回滚。第二别混着装。apt的、官网runfile的、PPA的三选一不要交叉。很多人驱动装不上是因为之前在官网下了runfile后来又在apt里升了级两套驱动管理器互相覆盖痕迹清理起来非常痛苦。第三内核升级后留个心眼。Ubuntu自动升级内核之后如果重启发现nvidia-smi挂了先进恢复模式用旧内核启动然后执行dkms status看模块状态有时候它在编译新内核模块时因为gcc版本对不上静默失败了手动执行sudo dkms autoinstall就能解决。第四装驱动之前查一查自己的显卡是不是被官方“退休”了。以我在Linux上跑GTX 750的经历为例曾经很长一段时间我只能用390版本那个版本停止更新之后新内核直接编不进去最后只能换Ubuntu版本或者换卡。如果你也有这种老硬件提前做好心理准备别跟驱动死磕该升级硬件就升级。最后再分享一个最实用的技巧装驱动这种高危操作永远在SSH连接或者物理终端下进行不要开着一堆图形界面程序就动手。很多驱动问题不是驱动本身导致的而是你恰好开着Chrome、微信、Unity编辑器这些占用显存的应用安装脚本在替换OpenGL库的时候正在运行的程序还在调用旧的库文件装完就冲突。先把图形界面应用全退了或者干脆进纯文本模式装一次成功的概率至少翻一倍。
返回列表