Ubuntu 20.04 安装 NVIDIA 驱动:路线选择、黑屏排查与卸载回滚

发布时间:2026/9/30 4:11:38

Ubuntu 20.04 安装 NVIDIA 驱动:路线选择、黑屏排查与卸载回滚 1. 先把这件事想明白为什么 Ubuntu 20.04 装 NVIDIA 驱动老出事Ubuntu 20.04 上装 NVIDIA 显卡驱动是那种看起来三条命令就能搞定、实际上能吃掉你整整一个下午的活。我手上这台带 GTX 1660 的机器为了测试不同版本的内核行为前前后后重装了不下十次系统。最开始我用的是最粗暴的办法——看到黑屏就重装重装完再来一遍循环三轮之后才意识到黑屏从来不是系统坏了而是驱动模块和内核显示栈之间没有接上系统其实活得好好的只是画面没能送到显示器上。搞清楚这一点之后后面所有问题都变成了可定位、可回滚的工程问题而不是玄学。这篇内容面向的是这样几类人第一次在 Ubuntu 20.04 上给 NVIDIA 独显装驱动、装完重启就黑屏不知道怎么办的人需要按特定驱动版本跑深度学习框架、视频编解码或者三维渲染必须精确控制版本的人以及装坏了想卸干净重来、却发现残留文件让新驱动装不上的人。我会把三条主流安装路线的取舍逻辑、黑屏的定位方法、以及卸载回滚的完整流程都摊开讲清楚包括每一步背后的原因——知道为什么你才能在自己遇到的陌生报错面前推下去而不是只会照抄某一条命令。1.1 三条路线各有各的代价在 Ubuntu 20.04 上装 NVIDIA 驱动本质上只有三个来源系统仓库包括 ubuntu-drivers 推荐和 graphics-drivers PPA、NVIDIA 官方 .run 安装包、以及第三方打包。它们不是哪个更好的问题而是你能承受什么样的维护成本。系统仓库这条路的核心优势是内核升级后自动重建模块因为它走的是 DKMSDynamic Kernel Module Support机制。你 apt 升级内核DKMS 会在下次启动前把 nvidia 内核模块针对新内核重新编译一遍整个过程你几乎无感。代价是版本选择受限仓库里给什么你就得用什么而且 Ubuntu 20.04 原仓库的驱动版本偏老想用 535 这种较新的长期分支基本要加 PPA。官方 .run 文件这条路优势是版本完全由你说了算NVIDIA 官网上从很老的版本到最新版都能下到某些特定框架对驱动版本有硬性要求时这条路最靠得住。代价是它默认不接管 DKMS除非你在安装时选择注册内核一升级、模块就可能加载失败你就得重新跑一遍安装程序。而且它和系统仓库的驱动会互相打架装之前必须先把 apt 装的版本清干净。第三方打包这条路我不推荐新手走因为出了问题很难找到有效的求助路径而且安全性和可维护性都不可控。我的建议很简单能用仓库就用仓库版本实在不满足需求再考虑 .run并且一旦选了 .run就自己写个脚本记录装上时的内核版本和安装参数方便日后重放。1.2 黑屏不是故障是驱动没接上的表现理解黑屏得先理解 Linux 的显示栈是怎么串起来的。简单类比一下内核负责认出显卡这块硬件X Server 或者 Wayland 合成器负责画出画面中间的绘图指令翻译层就是驱动模块nvidia.ko、nvidia-drm.ko 这些。这三者任何一环断了你看到的都是黑屏但原因完全不同。第一种情况内核认不出显卡或者开源驱动 nouveau 抢先占了位置。NVIDIA 的闭源驱动和 nouveau 是不能共存的如果 nouveau 没被屏蔽干净加载时就可能出现冲突最后表现为停在某个黑屏或者只有光标的界面。第二种情况内核模块装上了但版本对不上。这在 .run 安装方式里特别常见你装驱动的时候内核是 5.4.0-42后来系统更新到 5.4.0-150旧模块没法加载nvidia-smi 就会报那句经典的 NVIDIA-SMI has failed because it couldnt communicate with the NVIDIA driver。第三种情况模块加载了但显示管理器gdm3 或 lightdm启动时和驱动协商失败典型表现是卡在紫色启动画面、或者反复回到登录界面。这三种情况的排查路径截然不同所以第一件事不是急着敲命令而是判断你属于哪一种。后面第 4 章我会给一张现象对照表你可以对着自己的屏幕状态先做一次粗筛。2. 动手前的准备把回滚通道留好装驱动这件事最忌讳的就是裸奔——不备份、不留后路、一黑屏就抓瞎。我现在的习惯是任何涉及显卡和内核的操作之前先花十分钟做三件事记录当前环境、确认引导参数、准备一个能进系统的备用手段。这十分钟能省掉后面几个小时的折腾。2.1 摸清家底显卡型号、系统版本、内核很多人一上来就去 NVIDIA 官网找驱动连自己显卡是什么型号都没确认。Ubuntu 20.04 里查显卡最直接的是这条命令lspci -nn | grep -i vga输出里会有类似NVIDIA Corporation TU116 [GeForce GTX 1660]的字样方括号里那串[10de:2184]是厂商 ID 和设备 ID装 .run 驱动时安装程序会拿它来判断提前记下来能省很多事。同时确认系统和内核版本lsb_release -a uname -r为什么要看内核版本因为 DKMS 编译模块需要对应的头文件包linux-headers-$(uname -r)而 Ubuntu 20.04 有 GA 内核5.4和 HWE 内核一段时间后升到 5.15两条线两条线的头文件包名和可用性不一样。如果你的机器装的是 HWE 内核但头文件没跟上驱动安装会直接卡在编译阶段。顺手确认一下头文件在不在dpkg -l | grep linux-headers-$(uname -r)没有的话先补上再往下走这一步的依赖比驱动本身还关键。2.2 屏蔽 nouveau 这一步别偷懒nouveau 是内核里自带的开源 NVIDIA 驱动Ubuntu 默认就加载它。它和闭源驱动的关系是同一个位置上只能坐一个人不把它请走闭源驱动就算装上了也可能在启动时被它抢占初始化流程结果就是各种显示异常。屏蔽的方法是在 modprobe 配置目录下加一个黑名单文件sudo tee /etc/modprobe.d/blacklist-nouveau.conf EOF blacklist nouveau options nouveau modeset0 EOF sudo update-initramfs -u sudo reboot重启后验证是否屏蔽成功lsmod | grep nouveau如果没有输出说明 nouveau 已经不再加载。这里要特别注意update-initramfs -u这一步很多人只写了黑名单文件就重启结果 initramfs 里还留着原来的模块加载记录等于白做。另外options nouveau modeset0这行也别省它关掉 nouveau 的内核模式设置能避免它在初始化早期就去碰显示控制器。注意屏蔽 nouveau 之后、闭源驱动装上之前这个中间状态是没有硬件加速的桌面会明显卡顿。这是正常的别以为系统坏了。如果你在这中间状态重启了多次每次都会卡属于预期行为。2.3 Secure Boot 与 MOK被忽视的黑屏源头这一条是我踩过最深的坑。很多机器默认开启了 Secure Boot而 Secure Boot 只允许加载有合法签名的内核模块。Ubuntu 仓库提供的 NVIDIA 驱动模块是用 Canonical 的密钥签过名的理论上能过但如果你是自己编译的、或者是版本不匹配的加载就会被拒绝表现同样可能是黑屏或者驱动不生效。先看 Secure Boot 状态mokutil --sb-state如果输出SecureBoot enabled那你走 PPA 或仓库安装时会被要求设置一个 MOKMachine Owner Key密码重启后会进入蓝底的 MOK 管理界面需要手动选择 Enroll MOK 并输入刚才设置的密码。这一步如果跳过驱动就是装上了也加载不了。很多人装机时看到蓝屏界面以为是出错了直接重启结果就是白白折腾一轮。如果你的使用场景不需要 Secure Boot比如自己搭的开发机、测试机最省事的做法是进 BIOS 把它关掉能省掉一大堆签名相关的麻烦。但如果是公司统一管理的机器那就老老实实走 MOK 注册流程别想着绕过。2.4 GRUB 编辑的保命习惯黑屏之后想改引导参数你得能进到 GRUB 菜单。默认 Ubuntu 是隐藏 GRUB 菜单的开机直接进系统所以黑屏时你连改参数的机会都没有。我的做法是提前把菜单显示出来sudo nano /etc/default/grub把GRUB_TIMEOUT_STYLEhidden改成GRUB_TIMEOUT_STYLEmenuGRUB_TIMEOUT设成 5 秒左右然后sudo update-grub。这样以后每次开机都会停一下按e就能临时编辑引导参数改完按F10启动这种临时修改只在当次启动生效重启就恢复非常适合拿来试参数。还有一点改 GRUB 配置文件之前先备份一份原始版本sudo cp /etc/default/grub /etc/default/grub.bak。我自己就干过把里面某一行写错、导致系统直接起不来的事当时是靠 U 盘启动进 Live 环境挂载分区改回来的多花了一个多小时。有这个备份习惯至少还能在能进系统的时候快速还原。3. 三种安装路径的完整实操准备工作做完接下来就是正式安装。我把三条路线的完整命令和注意事项都列出来你可以根据自己的需求挑一条走。需要强调的是同一台机器上不要混用多条路线尤其是 apt 装的版本没卸干净就去跑 .run 安装程序十有八九会在编译或链接阶段报一堆莫名其妙的错。3.1 省事路线ubuntu-drivers 一键推荐Ubuntu 20.04 自带一个ubuntu-drivers工具会扫描你的显卡型号并给出仓库里可用的驱动列表sudo apt update ubuntu-drivers devices输出里会标明哪个是recommended通常会带nvidia-driver-XXX的字样。直接自动装上推荐版本sudo ubuntu-drivers autoinstall如果你想指定版本比如 470sudo apt install nvidia-driver-470装完之后不要急着重启先做一件事确认 DKMS 状态。因为 apt 安装会触发 DKMS 编译编译失败的话驱动就是装了也用不了dkms status正常应该看到类似nvidia, 535.xx, 5.4.0-xx-generic, x86_64: installed的输出。如果这里是built而不是installed说明编译有问题去/var/lib/dkms/nvidia/*/build/make.log看具体报错最常见的原因是缺头文件或者 gcc 版本不匹配。确认没问题后重启sudo reboot3.2 可控路线PPA 指定版本安装以 535 为例仓库自带版本太老、又想用 DKMS 自动重建模块的场景加 graphics-drivers PPA 是最优解。这个 PPA 由 Ubuntu 社区维护版本更新比主仓库快很多sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update ubuntu-drivers devices这时候列表里就会多出 525、535 之类的较新版本。以 535 为例sudo apt install nvidia-driver-535 nvidia-dkms-535把nvidia-dkms-535一起装上是为了确保 DKMS 那部分组件齐全。装完之后同样先dkms status确认再重启。这里要提醒一点PPA 装完之后如果你之前装过仓库自带的旧版本apt 会尝试做版本替换但残留的配置文件不会自动清理偶尔会出现新旧库混在/usr/lib/x86_64-linux-gnu/里的情况导致failed to load module glxserver_nvidia这类报错。遇到这种情况先彻底卸载旧版本第 5 章再装新的。3.3 干净路线官方 .run 文件安装当你的框架对驱动版本有硬性要求、而 PPA 里又找不到对应版本时.run 路线就派上用场了。流程比 apt 麻烦但可控性最高。第一步去 NVIDIA 官网下载对应型号和版本的 .run 包放到用户目录下。第二步先把系统仓库装的任何 NVIDIA 相关包清干净参考第 5 章然后重启到多用户模式因为安装程序需要在没有 X Server 运行的环境下工作sudo systemctl isolate multi-user.target或者更彻底一点直接停掉显示管理器sudo systemctl stop gdm3第三步给安装包加执行权限并运行chmod x NVIDIA-Linux-x86_64-535.xx.xx.run sudo ./NVIDIA-Linux-x86_64-535.xx.xx.run安装过程中会问你几个问题我的选择是是否注册 DKMS 模块选Yes这样内核升级后不用手动重装是否安装 32 位兼容库看你的需求跑老游戏或者某些 32 位程序才需要是否更新 X 配置选 Yes。安装完成后确认模块加载lsmod | grep nvidia nvidia-smi这里有个细节如果你在安装前没有正确屏蔽 nouveau或者安装过程中 Secure Boot 拦截了模块签名安装程序虽然会提示成功但重启后模块其实没加载。所以第一次装完不要立刻重启先在当前 tty 里确认nvidia-smi能跑通跑通了再重启。3.4 装完必做验证与收尾无论走哪条路线装完之后都要做一轮验证我总结成四个检查点。第一个是nvidia-smi能输出驱动版本、CUDA 版本、显卡温度和显存占用说明内核模块加载正常和驱动通信也没问题。第二个是lsmod | grep nvidia应该能看到nvidia、nvidia_drm、nvidia_modeset这几个模块都在。第三个是查 X 或者 Wayland 会话有没有真正用上独显glxinfo | grep OpenGL renderer如果输出的是NVIDIA GeForce GTX 1660而不是llvmpipe或Mesa说明渲染已经走独显了。第四个是看系统日志里有没有报错dmesg | grep -i nvidia journalctl -b | grep -i nvidia这两条命令能看到启动过程中 NVIDIA 相关的所有消息包括警告和错误。有些问题当下不表现出来但日志里其实已经有提示比如某个版本的驱动报了不支持的 GPU 架构早点看到能省很多事。4. 黑屏排查按现象反推原因黑屏是这篇内容的核心也是最多人卡住的地方。我想强调的是黑屏本身不是一种故障而是好几种不同故障的共同表现所以必须先根据现象把范围缩小再动手改配置。下面这张表是我这几年攒下来的经验总结实际使用中命中率挺高。4.1 现象与原因对照表现象大概率原因优先排查项开机全黑显示器无信号风扇正常引导参数或 modeset 冲突加 nomodeset、检查 nouveau 是否屏蔽卡在紫色 / 厂商 logo 界面不动显示管理器与驱动协商失败换 gdm3/lightdm、查 Xorg 日志能看到登录界面输密码后回到登录界面会话级驱动加载失败查~/.xsession-errors、glx 模块是否缺失黑屏但能按 CtrlAltF3 进 TTY内核正常图形栈有问题在 TTY 里查 dmesg、重装驱动能进系统但nvidia-smi报错内核模块版本不匹配dkms status、重装模块双屏只有一个亮或者分辨率异常显示配置或显示器识别问题xrandr 配置、驱动版本用这张表的正确姿势是先看屏幕停在哪一步再看能不能切 TTY。能切 TTY 是个好消息说明内核和基础显示还活着问题基本锁定在驱动模块或图形栈不用重装系统。切不了 TTY 的情况通常更靠底层优先怀疑引导参数和内核模块初始化。4.2 nomodeset 与 GRUB 临时参数nomodeset是 Linux 显卡问题里最常被提到的参数但很多人只是听说加上它就能进系统不知道它到底做了什么。简单说它告诉内核先别碰显卡的模式设置把显示初始化交给后面的东西。对于 NVIDIA 闭源驱动来说它本身会接管模式设置所以内核提前去设置反而可能冲突。在 GRUB 里临时加上它的步骤是开机时在 GRUB 菜单选中 Ubuntu 那一项按e进入编辑找到以linux开头的那一行在末尾加上空格和nomodeset按F10启动如果这样能进系统说明你的黑屏确实和显卡模式初始化有关。但这只是临时手段别把 nomodeset 当成长期方案因为它会禁用硬件加速桌面会变得很卡。正确的做法是进系统后把驱动装好、确认模块能正常加载再把它去掉。还有一个和它相关的参数是nvidia-drm.modeset1这行是开启 NVIDIA 自己的内核模式设置对 Wayland 会话和某些多显示器场景有影响。Ubuntu 20.04 默认走 X11一般不需要加但如果你的桌面环境是 GNOME on Wayland就得确认这个参数打开着。4.3 TTY 与恢复模式实操黑屏之后的第一反应应该是尝试切 TTY快捷键是CtrlAltF3F1 到 F6 都可以F7 通常是图形界面。切进去之后是一堆文字的登录提示用你的用户名和密码登录就进入了一个纯命令行环境。进 TTY 之后我通常按这个顺序查# 看驱动模块到底加载了没有 lsmod | grep nvidia # 看内核日志里 NVIDIA 相关的报错 dmesg | grep -iE nvidia|nouveau # 看 X 启动失败的原因 cat /var/log/Xorg.0.log | grep -iE EE|WW # 看 DKMS 模块状态 dkms statusXorg.0.log里以(EE)开头的行是错误(WW)是警告。前面热词里提到的failed to load module glxserver_nvidia就属于这一类它通常意味着 NVIDIA 的 GLX 库缺失或版本不匹配最直接的修法是重装对应的库包sudo apt install --reinstall nvidia-driver-535或者单独补 GLX 库sudo apt install libnvidia-gl-535如果 TTY 也进不去那就得用恢复模式。开机在 GRUB 菜单里选Advanced options for Ubuntu再选带(recovery mode)的那一项。恢复模式会以最小配置启动进去之后选root会给你一个可写的命令行这时候可以修改配置文件、卸载驱动、查日志。恢复模式的一个限制是默认根分区可能是只读挂载的需要手动重挂mount -o remount,rw /4.4 几个真实报错的处理记录记录几个我实际遇到、并且比较有代表性的情况供你对号入座。第一个是nvidia-smi has failed because it couldnt communicate with the nvidia driver。这个报错出现频率极高原因几乎都是内核模块没加载。处理顺序是先lsmod | grep nvidia看模块在不在不在的话看dkms status如果显示模块是针对旧内核编译的执行sudo dkms install -m nvidia -v 版本号 -k $(uname -r)重新编译如果编译报错去 build 日志里找具体原因八成是缺linux-headers或者 gcc 版本问题。第二个是[ 7.125] (EE) nvidia: failed to load module glxserver_nvidia。这个是 X Server 加载 NVIDIA 的 GLX 扩展模块失败通常是库文件缺失或路径不对。先确认/usr/lib/x86_64-linux-gnu/nvidia/xorg/目录下有没有对应的.so文件没有的话就是安装不完整重装驱动包有文件但还是报错检查xorg.conf里有没有残留的旧配置指向了不存在的路径。第三个是背包式情况——装了新驱动后旧的xorg.conf还在/etc/X11/里配置里指定的驱动版本和实际装的版本对不上。这种问题的特征是日志里有明确的版本不符提示。处理方法是先看看这个文件在不在ls -l /etc/X11/xorg.conf如果存在且不是你自己写的直接备份后删掉让系统自动生成新的配置。Ubuntu 现在很少需要手写 xorg.conf多数情况让它自动探测就行。注意删xorg.conf之前一定先cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak万一删了之后问题更严重还能改回来。我在这一点上吃过亏当时直接删了结果恢复模式下没有编辑器可用只能靠重装驱动包来触发配置重新生成。5. 卸载与回滚卸干净比装上去更难装了不合适的版本想换或者升级内核后驱动彻底坏了想重来这时候就轮到卸载。我的经验是卸载的核心原则是让系统回到从来没装过闭源驱动的状态任何残留的库文件、配置、内核模块都可能让下一次安装出问题。5.1 apt 系卸载流程如果你的驱动是通过 apt、ubuntu-drivers、PPA 任意一种方式装上的卸载方法都是同一套。先用 apt 列出所有已安装的 NVIDIA 相关包dpkg -l | grep -i nvidia把看到的相关包名整理出来然后统一清除。注意用purge而不是remove因为 purge 会连带配置文件一起删掉sudo apt purge nvidia-* libnvidia-* sudo apt autoremove如果想更保险一点明确指定版本sudo apt purge nvidia-driver-535 nvidia-dkms-535 libnvidia-gl-535 sudo apt autoremove --purge清完之后还需要手动处理几处残留/etc/modprobe.d/下可能还留着 NVIDIA 相关的黑名单或参数文件/etc/X11/xorg.conf可能是旧的驱动生成的/usr/lib/x86_64-linux-gnu/nvidia/目录下可能有没被 apt 记录的文件。检查并清理ls /etc/modprobe.d/ | grep -i nvidia ls /etc/X11/ | grep -i xorg确认清理干净后sudo update-initramfs -u重建一次初始内存文件系统再重启。重启后系统应该用回开源驱动或者基础显示驱动这时候再装新版本就干净了。5.2 .run 系卸载流程官方 .run 安装的驱动卸载也得用官方的方式。找到你当初下载的那个 .run 文件如果删了就去 NVIDIA 官网重新下一个同版本的然后sudo ./NVIDIA-Linux-x86_64-535.xx.xx.run --uninstall如果当初安装时注册了 DKMS卸载程序会一并处理 DKMS 里的记录。如果忘了或者安装时没注册卸载后手动清一下sudo dkms status sudo dkms remove -m nvidia -v 版本号 --all.run 安装的驱动在卸载后同样要检查/etc/modprobe.d/和/etc/X11/的残留。有个坑我必须提醒有些版本的 .run 卸载程序不会删除/usr/lib/x86_64-linux-gnu/下自建的库文件如果你之后又用 apt 装了同版本驱动可能会出现两套库混在一起的情况报错形式五花八门。遇到这种情况dpkg -S查不到归属的文件基本都是 .run 留下的可以手动删。删之前用ls -l看下时间戳确认是驱动安装时间段的产物再动手。5.3 残留清理与版本切换有时候卸载重装好几轮之后问题依然存在这时候要怀疑的是残留而不是新驱动。我总结了一个清理清单按顺序执行位置内容处理方式/etc/modprobe.d/nvidia 黑名单、参数文件手动删除多余文件/etc/X11/xorg.conf旧驱动生成的配置备份后删除/lib/modules/$(uname -r)/kernel/drivers/video/残留的内核模块确认无 apt 归属后删除/usr/lib/x86_64-linux-gnu/nvidia/.run 留下的库手动清理/var/lib/dkms/nvidia/DKMS 编译缓存dkms remove清理~/.nvidia-settings-rc用户级显卡设置视情况删除清理完之后建议重启一次然后用lsmod | grep nvidia确认模块确实没加载再开始新的安装。这个先清空、再重装的流程虽然麻烦但比反复在脏环境里试错要快得多。我用这个办法处理过一台装了四五个版本驱动、A 卡 N 卡混插过的老机器清理后一次装上了正确版本。6. 速查表与踩坑心得写到这儿该说的技术细节基本都覆盖了。最后这部分我把常见问题的排查路径整理成一张速查表再分享几条文档里不会写、只有实际折腾过才知道的经验。6.1 常见问题速查问题排查命令常见解法重启后黑屏无信号检查 nouveau、GRUB 参数加 nomodeset 临时进系统能进 TTY 但进不了图形界面cat /var/log/Xorg.0.log重装驱动、补 glx 库nvidia-smi 报通信失败lsmod、dkms status重新编译 DKMS 模块驱动装完后桌面卡顿glxinfo可能走的是 llvmpipe 不是独显双屏识别异常xrandr调显示配置或换驱动版本卸载后装新版报冲突dpkg -l、检查残留彻底 purge 加手动清理这张表的使用建议是从上往下依次排除因为上面的问题往往会导致下面那些现象。比如你先解决了黑屏才可能发现 nvidia-smi 的报错先确保模块加载再谈桌面卡顿的问题。顺序错了你可能在修一个被上游问题掩盖的假故障。6.2 我踩过的坑最后分享几条实打实的经验。第一条不要在能用的时候乱升级。我有台专门跑训练任务的机器驱动和内核都稳定跑了大半年某次手贱执行了apt upgrade内核从 5.4.0-91 跳到 5.4.0-100DKMS 编译没成功重启后直接进了 TTY。后来我养成了习惯给这类机器锁定内核版本或者至少在升级前确认 DKMS 编译状态、留好 Live 环境。sudo apt-mark hold linux-image-generic linux-headers-generic可以临时锁住内核包。第二条装驱动前先问清楚自己到底要什么版本。深度学习框架、视频编解码库、三维软件对驱动的版本要求天差地别盲目追新反而容易出问题。我的做法是先去对应框架的官方文档里查它推荐的驱动版本范围再从这个范围里挑一个 PPA 或仓库里有的版本而不是先看官网最新版是哪个。第三条TTY 里的apt和桌面里的apt是同一个但环境变量可能不同。我有次在 TTY 里重装驱动DKMS 编译一直失败折腾半天才发现 TTY 环境下$PATH和桌面会话不一样gcc 的调用路径出了问题。后来我改正了习惯涉及编译的操作先echo $PATH确认一下必要时手动指定完整路径。第四条如果一块机器要反复装驱动做对比测试写个脚本。我把卸载旧驱动、清理残留、安装指定版本、验证模块、输出日志这一整套流程写成了一个 bash 脚本每次换版本只改一个变量。这样一来重复劳动变成了几十秒的事而且不容易漏步骤。脚本不复杂二三十行就够比每次手动敲命令靠谱得多。说到底Ubuntu 20.04 上折腾 NVIDIA 驱动真正的门槛不是命令本身而是理解每一层在做什么这件事。你知道了 nouveau 和闭源驱动为什么不能共存、DKMS 为什么能自动重建模块、Secure Boot 为什么会拦住签名、黑屏背后可能有哪几种原因剩下的就是按图索骥。我在最开始那台机器上重装了三次系统才明白这个道理希望你看完这篇能少走这几趟弯路。
延伸阅读

更多相关文章

2026/9/30 4:06:38

模型优化器实战:量化、剪枝、蒸馏与图优化全流程解析

1. 模型优化器到底在优化什么第一次看到 Model-Optimizer 这个词,很多人会下意识觉得它又是一个“调参工具”或者“训练加速库”。但真正在模型部署和推理这条链路上摸爬滚打过的人会明白,模型优化器解决的从来不是单一问题,它更像是一套贯穿…

2026/9/30 4:06:38

Model-Optimizer实战:量化、剪枝与图优化加速模型推理

1. 从“模型优化器”这个热词说起:它到底在解决什么问题“Model-Optimizer”这个词最近在技术社区里被反复提起,很多人第一次看到它,会下意识地以为这是某个具体的开源库或者某个大厂内部工具的名字。实际上,它更像是一个功能角色…

2026/9/30 4:06:38

深入理解Rust的IntoIterator:从for循环到迭代器生态

刚接触 Rust 那会儿,我写过一段很别扭的代码:明明for x in vec就能遍历,为什么我还要手动调vec.iter()?后来才明白,这背后站着一个经常被忽略的主角——IntoIterator这个 Trait。它决定了“什么样的类型可以被for循环消…

2026/9/30 6:56:44

道本科技携手DeepSeek:以AI重塑合同全生命周期管理

在国央企加速推进数智法务转型的背景下,合同管理作为企业经营的核心环节,正面临着效率与风险的双重考验。海量合同文本的处理、复杂条款的审查、版本一致性的核验以及履约风险的动态监控,传统人工模式已难以满足现代企业合规与效率并重的要求…

2026/9/30 6:56:44

C语言02:基本数据类型的选择与使用

文章目录前言1.三种基本数据类型的存储特性2. 字符型2.1使用场景2.2使用规范3.整型3.1使用场景3.2使用规范4.浮点型4.1使用场景4.2使用规范5..基础数据类型的取值范围5.1字符型5.2整形5.3浮点型6.总结前言 初学 C 语言时,“数据类型”就像盖房子用的砖——选对了&am…

2026/9/30 6:51:44

深入Vue 3:从入门到精通

深入Vue 3:从入门到精通 文章目录 深入Vue 3:从入门到精通 一、Vue 3 的核心优势 1. 更快的性能:采用新的渲染器和优化策略,提高了渲染速度和内存效率。 2. 更轻量的体积:核心库更小,减少了加载时间,提高了网页性能。 3. 更灵活的 Composition API:使用函数式编程思想,可…

2026/9/29 11:07:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/29 21:48:03

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 7:00:49

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 0:01:22

MATLAB+Yalmip+CPLEX实战:综合能源系统优化调度全流程解析

做综合能源系统优化调度这活儿,最痛苦的不是建模本身,而是模型写完之后不知道该怎么求解。看论文里轻飘飘一句“采用Yalmip调用CPLEX求解”,自己上手时却往往卡在环境配置、变量声明、约束写法和求解状态判读上,一耗就是两三天。这…

2026/9/30 0:01:22

I3C比I2C快10倍?RK3576实战:速率、DTS配置与混合总线避坑指南

I3C 比 I2C 快 10 倍?这句话在嵌入式群里传了很久,每次都能吵出一堆截图。前段时间我正好在 RK3576 上调板级 I3C 接口,从控制器寄存器一路摸到 Linux DTS 配置,踩了不少坑,也把这笔速度账彻底算明白了。本文就用 RK35…

2026/9/30 0:01:22

字符串转对象:JSON.parse、new Function与URLSearchParams

“字符串转对象”这几个字,我在技术群里见过的问法至少有十几种:有人拿着一串{a:1,b:2}说 JSON.parse 直接报错,有人要从 URL 里抠出参数,还有人只是想把abc变成能挂属性的东西。js 这门语言里,字符串和对象之间的转换…

2026/9/29 3:53:39

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/29 9:46:12

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/29 6:36:14

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑