资讯动态

Ubuntu NVIDIA显卡驱动安装与nvidia-smi排错实战

发布时间:2026/9/30 3:50:04 来源:尧图企业网站定制
1. 装驱动之前先把这三件事弄明白在 Ubuntu 上折腾 NVIDIA 显卡驱动说难不难说简单也真不简单。我见过太多人上来就敲一句apt install nvidia-driver-535结果重启之后黑屏、循环登录或者终端里冒出那句经典报错nvidia-smi has failed because it couldnt communicate with the nvidia driver然后就开始满世界找教程。这篇内容就是写给这类朋友的——不管你是刚装完 Ubuntu 22.04 想跑深度学习的新手还是给老机器换块显卡想点亮图形界面的老玩家我都尽量把每一步的理由讲清楚让你不是照着命令抄而是知道自己为什么这么做。核心关键词就三个Ubuntu、NVIDIA、显卡驱动后面所有内容都围着它们转。1.1 nouveau、nvidia 官方驱动到底差在哪Ubuntu 装好之后如果你什么驱动都不装系统其实也能亮屏用的是内核自带的nouveau驱动。这是一个社区反向工程出来的开源驱动优点是开箱即用、跟着内核走、不容易把系统搞崩缺点也很明确——它没有 NVIDIA 官方的专利固件没有办法做频率动态调节性能通常只有官方驱动的三分之一到一半跑 CUDA、跑大模型推理、跑视频硬编解码基本免谈。官方驱动也就是我们常说的闭源驱动、proprietary driver是另一回事。它包含内核模块nvidia.ko、用户态库libnvidia-*、Xorg 的显示驱动nvidia_drv.so还有一套管理工具。它能让显卡跑满频率、支持 CUDA 和 NVENC/NVDEC、支持多屏和 G-SYNC。代价就是它跟内核版本强绑定内核一升级模块得重新编译一次否则就加载失败。理解这个差异很重要因为它决定了后面一个高频问题为什么我升级完内核第二天开机就进不去图形界面了。答案几乎都是 nouveau 被禁用了、官方模块又没编译成功两边都没接上。1.2 你的卡和你的系统版本决定了能装哪个版本这一步是新手最容易忽略的。不是所有驱动版本都支持所有显卡也不是所有 Ubuntu 版本都能直接从仓库里装到最新驱动。大致规律是这样的10 系Pascal及更早的老卡比如 GTX 750、GTX 960最后一个比较稳的支持分支是 470 系列再往上的新版本会陆续砍掉支持。20 系Turing到 30 系Ampere470 到 550 之间都能用535 是长期分支LTSB比较稳我一般推荐这个。40 系Ada需要 525 以上推荐 535 或更高。50 系Blackwell这种新架构Ubuntu 22.04 自带的仓库里往往没有足够新的版本需要 Ubuntu 24.04 或者手动加官方的软件源。系统版本这块Ubuntu 20.04、22.04、24.04 的软件仓库里预置的驱动版本差别很大。20.04 仓库里常见的是 470/51022.04 是 515/525/53524.04 会新一些。所以经常有朋友问「我的 22.04 怎么 apt 里搜不到 550」不是你的操作有问题是仓库里确实没有得换思路。1.3 装驱动会动到系统的哪些地方我习惯在动手前先想清楚「这一刀切下去会改什么」心里有数就不慌。装官方驱动大概会动这几处位置作用改动方式/lib/modules/$(uname -r)/kernel/drivers/video/内核模块nvidia.koDKMS 编译生成/etc/modprobe.d/nouveau 黑名单、模块参数手动或安装脚本写入/usr/lib/x86_64-linux-gnu/用户态库包管理安装/etc/X11/xorg.confXorg 显示配置一般不需要多屏才用initramfs早期启动阶段的模块update-initramfs -u更新GRUB 参数内核启动选项必要时加nomodeset看到这个表你就明白为什么卸载驱动不能只删一个包——它是分布在好几个位置的残留的xorg.conf或者没清干净的黑名单配置都可能导致新驱动装上了却跑不起来。2. 三条安装路线的选型对比与决策逻辑装 NVIDIA 驱动在 Ubuntu 上至少有三种主流做法我这些年三种都用过各有各的适用场景没有哪一种是「绝对正确」的。下面把三条路线的原理、优缺点和适用范围讲清楚你对号入座就行。2.1 路线一ubuntu-drivers 自动推荐安装Ubuntu 提供了一个叫ubuntu-drivers的工具它会读取你的 PCI 设备 ID然后跟仓库里的驱动包做匹配给出一个推荐列表。命令很简单# 查看推荐 ubuntu-drivers devices # 自动安装推荐版本 sudo ubuntu-drivers autoinstall这条路线最大的价值是「不烧脑」。它输出的列表里会标注recommended通常是经过 Ubuntu 团队验证过、跟当前内核兼容性最好的那个版本。对于绝大多数用户尤其是第一次装驱动的新手我强烈建议先走这条。它的局限也得说清楚一是只能装仓库里有的版本你想装个刚发布的 570 就别指望了二是自动推荐有时候会偏保守可能给你一个比硬件能力更旧的版本三是在服务器版 Ubuntu 上默认没装这个工具得先apt install ubuntu-drivers-common。2.2 路线二apt 指定版本安装如果你明确知道自己要哪个版本比如团队统一要求 535或者要跟某个 CUDA 版本对齐那就用 apt 直接指定sudo apt update sudo apt install nvidia-driver-535这条路线的优势是可控、可复现写进自动化脚本、Dockerfile 或者 Ansible playbook 都很干净。而且它用的是包管理卸载也干净sudo apt purge nvidia-*基本能清利索。注意一个细节apt 安装驱动时会自动处理 nouveau 的黑名单和 initramfs 更新不用你手动去改/etc/modprobe.d/。很多人不知道这点装完 apt 版本又手动加了一遍黑名单虽然不冲突但容易把自己绕晕。2.3 路线三官方 runfile 手动安装从 NVIDIA 官网下载.run文件给执行权限然后进文本模式运行安装程序。这条路最「硬核」也最容易被推荐给新手——我个人其实不太建议新手一上来就干这个。它的核心命令大概是这样# 赋予执行权限 chmod x NVIDIA-Linux-x86_64-535.183.01.run # 停掉图形界面 sudo systemctl isolate multi-user.target # 安装 sudo ./NVIDIA-Linux-x86_64-535.183.01.run这条路线的优点是版本不受仓库限制最新的、最老的都能装。缺点是一堆得手动禁 nouveau、手动装build-essential和linux-headers-$(uname -r)、DKMS 是要你自己勾选的、内核升级后如果不装 DKMS 就得重装一遍、卸载要用nvidia-uninstall、还得处理 Secure Boot 签名。有个经典参数是--no-opengl-files它的作用是只装内核模块和 CUDA 相关不覆盖系统的 OpenGL 库。这在某些服务器场景下有用能避免跟系统自带的 Mesa 库打架导致桌面崩掉。但反过来说如果你是桌面用户要玩游戏、要用图形加速那就不能加这个参数否则跑不起来硬件加速。2.4 三种路线怎么选给个直接的决策表场景推荐路线理由桌面用户第一次装路线一 autoinstall省事兼容性最好需要固定版本、团队统一路线二 apt 指定可复现好维护仓库里没有你需要的版本路线三 runfile唯一选择服务器无桌面环境路线二或路线三路线一也行但不必要50 系新卡 老系统路线三或升级系统仓库确实没有需要和特定 CUDA 版本严格对齐路线二配官方源apt 更好管依赖我自己的习惯是能不手动就别手动。runfile 看着简单出问题的时候排查成本比 apt 高一个量级。3. 实操从干净系统到 nvidia-smi 正常输出这一节是重头戏我把三条路线从准备到验证的完整流程都写一遍。你可以按顺序读也可以直接跳到你要走的那条。3.1 准备阶段备份、快照与依赖确认动手之前先做三件事。第一确认显卡型号和系统版本。# 查显卡型号 lspci | grep -i vga lspci | grep -i nvidia # 查系统版本和内核 lsb_release -a uname -r输出里你会看到类似01:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060]这种信息记住这个型号。uname -r是当前内核版本比如5.15.0-91-generic后面装 headers 要用到。第二确认当前加载的驱动。lsmod | grep -i nouveau lsmod | grep -i nvidia如果 nouveau 有输出、nvidia 没有说明当前用的是开源驱动符合预期。如果 nvidia 已经有输出说明系统里已经装了官方驱动你要做的是升级或者重装不是从头装。第三做一次快照。这条我要重点强调如果你用的是虚拟机直接打一个快照成本几乎为零。如果是物理机至少把重要数据备份出来。我见过太多人因为驱动装崩了进不去系统最后重装整个 Ubuntu数据全丢。花五分钟做个备份比事后抢救一整个下午划算得多。提示物理机上如果没做快照至少确认你知道怎么进 GRUB 编辑启动参数、怎么切到 TTYCtrlAltF3这是后面救命的两个技能。依赖方面走 apt 路线基本不用额外装什么走 runfile 路线必须先装sudo apt install build-essential linux-headers-$(uname -r) dkmslinux-headers这个包特别关键它提供了编译内核模块需要的头文件。很多人 runfile 装到一半报Unable to find the kernel source tree就是这个包没装或者装的是别的版本内核的 headers。3.2 路线一完整操作ubuntu-drivers 自动推荐先更新索引再跑检测sudo apt update ubuntu-drivers devices输出大概长这样 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 modalias : pci:v000010DEd00002504sv00001462sd00003914bc03sc00i00 vendor : NVIDIA Corporation model : GA106 [GeForce RTX 3060] driver : nvidia-driver-535 - distro non-free recommended driver : nvidia-driver-525 - distro non-free driver : nvidia-driver-470 - distro non-free带recommended的那个就是 Ubuntu 建议你装的。直接sudo ubuntu-drivers autoinstall这条命令会自动装驱动、写 nouveau 黑名单、更新 initramfs。整个过程可能要几分钟取决于你的网络速度。装完会让你重启sudo reboot重启之后正常情况下直接跑nvidia-smi就能看到显卡信息了。这里有个小技巧如果你用的是笔记本双显卡Intel 核显 NVIDIA 独显装完之后还需要切换模式# 查看当前模式 prime-select query # 切到独显性能模式耗电 sudo prime-select nvidia # 切到核显省电NVIDIA 只在需要时唤醒 sudo prime-select on-demand我一般笔记本用on-demand台式机就用nvidia。切完要重启才生效。3.3 路线二完整操作apt 指定版本假设你要装 535sudo apt update sudo apt install nvidia-driver-535如果你的 Ubuntu 版本仓库里没有 535会提示找不到包。这时候先搜一下有什么apt search nvidia-driver apt-cache search ^nvidia-driver-[0-9]$还有个办法是加上官方的软件源。不同版本的源地址不一样你应该去 NVIDIA 官方文档查当前对应的地址不要照抄别人教程里的老地址——这是很常见的一个坑抄了旧地址之后apt update报 GPG 错误或者 404。安装过程中如果弹出 Secure Boot 相关的对话框让你设置一个密码那是在准备 MOK 注册。记住这个密码重启时会有一个蓝色界面让你输入输完以后模块才能被内核接受。这个环节后面第 4 章会详细讲。装完重启然后验证。验证命令我一般跑这一套# 基础验证 nvidia-smi # 显示驱动版本信息 cat /proc/driver/nvidia/version # 看看哪些进程在用显卡 nvidia-smi -q | head -50nvidia-smi正常输出应该是这样的----------------------------------------------------------------------------- | NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 CUDA Version: 12.2 | |--------------------------------------------------------------------------- | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | || | 0 NVIDIA GeForce RTX 3060 Off | 00000000:01:00.0 On | N/A | | 30% 45C P8 18W / 170W | 156MiB / 12288MiB | 0% Default | ---------------------------------------------------------------------------看到这个表恭喜你驱动装好了。注意一个容易误读的地方右上角那个CUDA Version: 12.2不是说你已经装了 CUDA 12.2而是说这个驱动最高支持的 CUDA 运行时版本是 12.2。你实际装的 CUDA Toolkit 可能是 11.8也可能是 12.4两者不是一回事。这个误解太常见了我在第 6 章还会再展开。3.4 路线三完整操作官方 runfile 手动安装这条路麻烦我按顺序写。第一步装依赖。sudo apt update sudo apt install gcc make build-essential linux-headers-$(uname -r) dkms第二步禁掉 nouveau。新建一个文件sudo tee /etc/modprobe.d/blacklist-nouveau.conf EOF blacklist nouveau options nouveau modeset0 EOF # 更新 initramfs sudo update-initramfs -u第三步重启进文本模式。sudo reboot # 重启后如果进了桌面手动切 sudo systemctl isolate multi-user.target或者开机时在 GRUB 里给内核参数加3直接进 multi-user 模式。第四步确认 nouveau 真的没加载。这一步很关键很多人跳过了lsmod | grep nouveau如果还有输出说明黑名单没生效回去检查文件路径和 initramfs。必须确认没有输出才能往下走。第五步运行安装程序。chmod x NVIDIA-Linux-x86_64-535.183.01.run sudo ./NVIDIA-Linux-x86_64-535.183.01.run安装过程中会问你几个问题是否注册 DKMS 模块选 Yes。这样内核升级后模块会自动重编译省很多事。选 No 的话每次内核升级你都得手动重装一遍驱动。32 位兼容库桌面用户建议装服务器可以不装。是否更新 xorg.conf一般选 No让 Xorg 自动配置就行。只有多屏、需要固定分辨率的时候才手动配置。是否运行 nvidia-xconfig同上一般 No。第六步重启验证。sudo reboot nvidia-smi3.5 安装后的验证清单装完别急着庆祝按这几条过一遍能提前发现大部分问题检查项命令期望结果驱动是否加载lsmod | grep nvidia有 nvidia、nvidia_modeset 等设备节点ls /dev/nvidia*nvidia0、nvidiactl、nvidia-uvm驱动版本cat /proc/driver/nvidia/version与安装版本一致工具是否可用nvidia-smi正常输出表格图形加速glxinfo | grep OpenGL renderer显示 NVIDIA 显卡型号内核日志dmesg | grep -i nvidia没有 error、failed 关键字glxinfo需要mesa-utils包没装的话先sudo apt install mesa-utils。如果它输出的是llvmpipe或者Intel说明图形加速没有走 NVIDIA这时候得查prime-select的状态。4. 高频报错逐条排查手册这一章是全文最实用的部分。我把这些年遇到最多的几个报错按出现频率排一下逐条给排查思路。4.1 nvidia-smi 通信失败报错原文nvidia-smi has failed because it couldnt communicate with the nvidia driver. Make sure that the latest NVIDIA driver is installed and running.出现这个说明nvidia-smi这个用户态工具能找到但内核模块没加载上。按这个顺序排查第一看模块有没有加载。lsmod | grep nvidia没输出说明内核模块压根没起来。接着看日志dmesg | grep -i nvidia | tail -30 sudo journalctl -k | grep -i nvidia | tail -30常见的原因是内核版本和驱动不匹配日志里会写version magic ... should be ...。这基本就是 DKMS 没跑或者跑失败了手动触发一次sudo dkms status sudo dkms autoinstall第二看是不是内核升级引起的。如果你昨天还好好的今天开机就不行了先查内核版本uname -r ls /lib/modules/$(uname -r)/kernel/drivers/video/大概率是新内核下没编译出 nvidia 模块。解决办法是进旧内核启动或者装新内核对应的 headers 然后sudo apt install --reinstall nvidia-driver-535。第三看有没有被 nouveau 重新抢占。偶尔会有这种情况lsmod | grep nouveau如果有检查黑名单文件还在不在。4.2 glxserver_nvidia 加载失败报错原文(EE) NVIDIA: Failed to load module glxserver_nvidia (module does not exist, 0)。这个报错通常出现在 Xorg 日志里/var/log/Xorg.0.log表现为图形界面起不来或者退回软件渲染。根因一般有两个一是驱动包没装全nvidia-driver-XXX装了但libnvidia-gl-XXX缺了二是残留的xorg.conf指向了旧的模块路径。排查方式# 检查相关包 dpkg -l | grep nvidia # 看是否存在手工配置 ls -l /etc/X11/xorg.conf /etc/X11/xorg.conf.d/如果/etc/X11/xorg.conf存在而且不是你专门配的直接删掉或者重命名sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak然后重启图形界面或者直接重启。这一招解决过我至少三次同类问题。4.3 黑屏、循环登录、分辨率错乱这三个症状表现不同根因经常是同一个——驱动和显示管理器打架。黑屏屏幕完全没信号或者卡在启动画面。这时候切到 TTYCtrlAltF3如果能进去说明系统活着只是图形界面起不来。循环登录输入密码后又弹回登录界面。这是最典型的一种通常是 Wayland 和 NVIDIA 驱动不兼容导致的。针对循环登录我的处理办法是临时切到 Xorg 会话sudo nano /etc/gdm3/custom.conf # 取消注释这一行 # WaylandEnablefalse保存后sudo systemctl restart gdm3。老一点的驱动在 Wayland 下确实容易出问题切到 Xorg 立刻就稳了。新驱动535 以后在 Wayland 下已经好很多但如果你想少折腾Xorg 依然是更保险的选择。分辨率错乱只能显示 800x600 或者 1024x768说明显卡驱动没接管显示输出。检查glxinfo和nvidia-smi如果是 nouveau 在跑那还是驱动没装上。还有一个隐藏杀手是nomodeset参数。如果你之前为了救系统在 GRUB 里加了nomodeset装完驱动之后一定要把它去掉否则它会阻止 NVIDIA 驱动接管模式设置。sudo nano /etc/default/grub # 从 GRUB_CMDLINE_LINUX_DEFAULT 里删掉 nomodeset sudo update-grub4.4 Secure Boot 与模块签名现在的电脑默认开着 Secure Boot这会阻止未签名的内核模块加载NVIDIA 驱动就是未签名的。表现是nvidia-smi报同样的通信失败但dmesg里会明确写Loading of module with unavailable key is rejected module verification failed: signature and/or required key missing两个解法。解法一注册 MOK推荐。apt 安装驱动时会问你要一个密码重启后出现蓝色界面选Enroll MOK输入那个密码然后重启。这样模块就会被信任。如果当时没设密码可以手动补sudo mokutil --import /var/lib/shim-signed/mok/MOK.der # 会提示设置一个一次性密码记住它 sudo reboot解法二关掉 Secure Boot。进 BIOS/UEFI 设置把 Secure Boot 设为 Disabled。这招最省事但如果你有双系统跑 Windows 11关掉可能影响某些功能自己权衡。注意如果你的机器是企业统一管理的BIOS 密码可能不在你手上这种情况优先用 MOK 注册别去动 BIOS。4.5 报错速查表报错关键词最可能原因首选处理could not communicate with the nvidia driver模块未加载lsmod、dkms status、重装Failed to load module glxserver_nvidia包不全或残留 xorg.conf删 xorg.conf、补装 gl 包version magic should be内核与模块不匹配dkms autoinstallmodule verification failedSecure Boot 未签名MOK 注册或关 SBNo devices were found设备未识别查 BIOS 是否禁用独显unknown error / initialization failed驱动与卡不兼容换版本重装Unable to find the kernel source tree缺 headers装linux-headers-$(uname -r)NVRM: API mismatch用户态库和内核模块版本不一致apt purge后重装表格里最后一条特别值得说。API mismatch 通常是你先手动装了一次 runfile后来又用 apt 装了一次两套文件混在一起。这种时候唯一的办法是彻底清理不能指望覆盖安装。5. 驱动卸载、版本切换与内核更新后的维护装好不是终点后面还有维护。这一章讲的就是「装完以后的日子」。5.1 干净卸载的两种做法apt 装的用 apt 卸# 先看看装了哪些 dpkg -l | grep -i nvidia # 全部清掉注意 purge 会连配置一起删 sudo apt purge nvidia-* libnvidia-* # 清理依赖 sudo apt autoremove # 更新 initramfs sudo update-initramfs -uapt purge和apt remove的区别要搞清楚remove保留配置文件purge连配置文件一起删。驱动这种强耦合的东西我建议直接purge别留尾巴。runfile 装的用官方卸载程序sudo /usr/bin/nvidia-uninstall如果这个脚本找不到说明安装时没生成那就手动清sudo rm -rf /usr/lib/modules/$(uname -r)/kernel/drivers/video/nvidia* sudo rm -rf /usr/lib/x86_64-linux-gnu/libnvidia* sudo update-initramfs -u手动清有风险容易删多或者删漏所以我一再强调能用 apt 就用 apt。5.2 版本升降级与双显卡切换降级是常见需求新驱动有时候会有兼容性问题。做法是先卸再装sudo apt purge nvidia-* sudo apt install nvidia-driver-470 sudo reboot不要试图直接覆盖安装两套文件混着很容易出 API mismatch。双显卡切换用prime-selectprime-select query # 看当前 sudo prime-select nvidia # 独显模式 sudo prime-select intel # 核显模式 sudo prime-select on-demand # 按需切换on-demand模式下程序默认跑核显想要用独显得显式指定__NV_PRIME_RENDER_OFFLOAD1 __GLX_VENDOR_LIBRARY_NAMEnvidia glxinfo | grep OpenGL renderer如果输出的渲染器是 NVIDIA说明离屏渲染配置生效了。这条命令我在调试笔记本外接显示器的时候用得特别多。5.3 内核更新后驱动失效的补救Ubuntu 的安全更新会升级内核升级后重启如果 DKMS 正常工作模块会自动重建你什么都不用做。但如果 DKMS 出问题就会开机进不了图形界面。判断方法dkms status正常输出应该是nvidia/535.183.01, 5.15.0-91-generic, x86_64: installed。如果显示built但没有installed或者干脆没有你这个内核版本就是 DKMS 没跑成功。补救# 装新内核的 headers sudo apt install linux-headers-$(uname -r) # 手动触发 sudo dkms autoinstall # 确认 dkms status lsmod | grep nvidia为了防止这种情况我的习惯是设置 apt 不自动升级内核或者至少在升级前看一眼会不会动内核。# 查看可升级的包 apt list --upgradable | grep linux另外保留一个旧内核也是好习惯万一新内核起不来在 GRUB 的「Advanced options」里选旧内核进去把驱动修好再重启。默认情况下 Ubuntu 会保留几个旧内核别手贱全删了。6. 进阶衔接CUDA、ffmpeg 硬编解与容器环境驱动只是地基上面还要盖房子。这一章讲讲装完驱动之后常见的三个延伸场景。6.1 nvidia-smi 里的 CUDA Version 到底是什么意思再强调一遍nvidia-smi右上角显示的CUDA Version是驱动支持的最高 CUDA 运行时版本不是你装的 CUDA Toolkit 版本。这两个数字经常被人搞混然后在装 PyTorch 的时候选错版本。正确的关系是这样的驱动版本决定了一个上限比如 535 支持到 CUDA 12.2。你安装的 CUDA Toolkit 可以是 11.8、12.0、12.1、12.2 中任意一个只要不超过上限。实际运行时用的是 Toolkit 里的版本。查实际安装的版本nvcc --version如果提示nvcc: command not found说明你没装 CUDA Toolkit只装了驱动这是正常的状态。装 CUDA Toolkit 的时候有个坑官方安装包里会问你要不要装驱动一定选No。你已经装好驱动了让它再装一遍很可能把现有驱动覆盖成另一个版本然后就是一堆 API mismatch。6.2 ffmpeg 调用 NVENC/NVDEC装完驱动之后ffmpeg如果编译时开启了 NVENC 支持就能用显卡做视频转码速度比 CPU 快几倍到几十倍。先确认支持ffmpeg -hide_banner -hwaccels ffmpeg -hide_banner -encoders | grep nvenc如果hwaccels里没有cuda或者encoders里没有h264_nvenc说明你装的 ffmpeg 是发行版仓库里的精简版需要换一个带 NVENC 支持的构建。Ubuntu 仓库的 ffmpeg 有时候确实不带这时候可以考虑官方静态构建或者自己编译。用 NVENC 转码的命令大概是这样ffmpeg -hwaccel cuda -i input.mp4 \ -c:v h264_nvenc -preset p4 -b:v 5M \ -c:a copy output.mp4-hwaccel cuda是解码加速h264_nvenc是编码器-preset p4是速度与质量的平衡点数字越大越慢质量越好。实测在 RTX 3060 上转一个 1080p 的十分钟视频CPU 软编要五六分钟NVENC 只要二十几秒差距非常直观。注意NVENC 并发会话数是有限制的消费级卡一般是 3 到 8 路具体看型号和驱动版本。而且这个限制不是靠软件绕过去的硬要绕需要改驱动我不建议在正式环境这么干。6.3 虚拟机与容器场景的注意点虚拟机里装 Ubuntu 跑 NVIDIA 驱动需要先在宿主机上把显卡直通PCI Passthrough配好同时 BIOS 要开 VT-d/IOMMU、CPU 要支持虚拟化直通。如果只是普通虚拟机没有直通那 Ubuntu 里看到的是虚拟显卡lspci根本找不到 NVIDIA 设备装驱动自然也无从谈起。所以如果你在 VMware 或 VirtualBox 里折腾先确认有没有做直通。容器场景下现在主流是用 NVIDIA Container Toolkit。装好之后运行容器时加--gpus all就能在容器里用显卡docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi容器里的nvidia-smi显示的驱动版本跟宿主机一致因为容器直接复用了宿主机的驱动这也是为什么容器里不需要单独装驱动。7. 一些踩坑记录和我的使用习惯最后聊聊我这些年攒下来的几个习惯都是被坑出来的。第一装驱动之前一定先查内核版本和显卡型号。我刚开始的时候图快上来就apt install nvidia-driver-535结果机器是 GTX 750装完直接黑屏。后来才知道 750 得用 470。五秒钟的lspci能省你两小时的抢救时间。第二能不用 runfile 就不用。我手上有一台工作站当年为了追新驱动用了 runfile 安装后来每次内核升级都要手动重装一次忘了就是黑屏。换成 apt 之后两年没出过事。DKMS 这个机制真的省心前提是你得走包管理。第三装完立刻做一次完整验证。不要只跑nvidia-smi就完事glxinfo、/dev/nvidia*、dmesg都要看一眼。有一次我nvidia-smi正常但glxinfo显示的是 llvmpipe跑图形程序特别卡查了半天才发现是 prime-select 没切。第四笔记本用户记得配 on-demand。一直用独显模式电池续航会掉一半以上风扇也吵。prime-select on-demand配合__NV_PRIME_RENDER_OFFLOAD环境变量日常用核显、跑训练用独显这是笔记本最舒服的姿势。第五出问题先切 TTY别急着重装系统。绝大多数驱动问题都能在 TTY 里修好dmesg和/var/log/Xorg.0.log里通常写得明明白白。养成看日志的习惯比在论坛上发帖等回复快得多。我个人的感觉是Ubuntu 装 NVIDIA 驱动这件事难点从来不在命令本身而在「知道自己在哪一步、知道出错时该看哪里」。把 nouveau 和官方驱动的区别搞清楚把三条路线的适用场景记牢把 dmesg 和 Xorg 日志养成习惯剩下的就是重复劳动了。等你把这套流程走顺以后帮同事装十台机器也就是半小时的事。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑