ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Ubuntu安装NVIDIA驱动从入门到排坑:nouveau、Secure Boot与nvidia-smi全解析

Ubuntu安装NVIDIA驱动从入门到排坑:nouveau、Secure Boot与nvidia-smi全解析 1. 装Linux显卡驱动前先把这几件事想明白先直接给结论Ubuntu 20.04和22.04安装NVIDIA显卡驱动大多数场景一条命令就能解决但翻车的人基本都栽在“安装前准备”这一步。这不是驱动难装而是很多人没搞清楚自己机器属于哪种情况。动手之前我建议先花十分钟回答三个问题你的显卡到底需要哪个版本的驱动nouveau有没有禁干净系统有没有开启Secure Boot这三个点只要有一个没处理好装完大概率就是黑屏、循环登录或者nvidia-smi给你报一行“couldnt communicate with the nvidia driver”。这篇文章适合所有想在Ubuntu上跑起NVIDIA显卡的人不管你是刚装完系统的新手还是在CUDA、Docker、FFmpeg硬件转码等场景里反复被驱动问题折磨的老手。下面这套思路和命令我在20.04和22.04上都反复验证过照着走基本能一次性搞定。1.1 先确定显卡型号和该装哪个版本很多新手上来就搜“最新版驱动”其实这里没有“最新就最好”的说法。NVIDIA官网的驱动更新很快但Ubuntu软件仓库里的驱动更新会经过更多测试目的是保证和你当前的内核、桌面环境兼容。装错版本轻则性能异常重则进不去图形界面。先看机器上到底是什么显卡lspci | grep -i nvidia lspci | grep -i vga如果输出里有类似NVIDIA GA106 [GeForce RTX 3060 Lite Hash Rate]这样的信息说明系统已经识别到显卡了。接着用Ubuntu自带的工具查看推荐的驱动版本sudo apt update ubuntu-drivers devices这条命令会列出当前可用的所有驱动分支并且直接标出recommended。我自己的RTX 3070在22.04上被推荐535在20.04上曾经被推荐470原因就是内核版本不一样驱动兼容矩阵也不一样。记住一句话系统推荐什么优先用什么别自己想当然追新版。如果你的机器是Intel核显加NVIDIA独显的双显卡笔记本lspci里可能既有Intel又有NVIDIA这是正常的。比如常见的Intel UHD Graphics 630配NVIDIA独显两个GPU都会出现在设备列表里。这种情况下NVIDIA驱动只负责独显核显仍然由系统mesa驱动接管两者并不是冲突关系真正要操心的只是怎么切换这点后面第3.4节再细说。1.2 为什么新手翻车往往栽在nouveau上这是整个安装过程里最关键的环节也最容易被跳过。Ubuntu默认加载一个开源驱动nouveau它本身能用但NVIDIA官方驱动和它互相排斥。官方驱动安装的时候如果检测到nouveau模块正在运行轻则装到一半卡死重则装完重启后两个驱动在图形栈里打架结果就是黑屏或循环登录。禁用nouveau方法很固定sudo bash -c echo blacklist nouveau /etc/modprobe.d/blacklist-nvidia-nouveau.conf sudo bash -c echo options nouveau modeset0 /etc/modprobe.d/blacklist-nvidia-nouveau.conf sudo update-initramfs -u写完后重启执行lsmod | grep nouveau如果没有输出说明nouveau已经被禁掉可以放心装驱动了。有些教程会让你用.run安装包时加--no-nouveau-check参数来绕过检查但千万不要因为有这个参数就不禁nouveau我见过太多人跳过这一步然后安装日志里报一堆ERROR: Unable to load the kernel module nvidia.ko最后只能进恢复模式重新处理。从原理上讲update-initramfs -u是把nouveau的禁用配置重新写进启动镜像。只要这个文件还在重启后nouveau就不会被加载NVIDIA官方驱动才能独占GPU设备。如果你之后把blacklist-nvidia-nouveau.conf删掉又执行了update-initramfs -unouveau就会重新回来这一点在卸载驱动时特别重要。1.3 Secure Boot、备份和启动盘都别省先说Secure Boot。如果你是在实体机上装UbuntuBIOS里很可能开着Secure Boot。用apt安装NVIDIA驱动时不会立刻失败但装完重启会跳出一个蓝色的MOK管理界面要求你输入一个密码来注册密钥。很多人在这一步不知所措随便按几个键就过去了结果驱动模块没有签名进系统后nvidia-smi照常报错。应对办法有两种。第一种是进BIOS关闭Secure Boot自己家用、没有特殊安全要求的机器直接关掉最简单。第二种是保留Secure Boot在apt安装过程中仔细设置一个MOK密码重启后选择Enroll MOK按提示输入密码让系统信任NVIDIA驱动模块。整个过程看起来唬人其实就是内核模块签名认证做过一次就知道是怎么回事了。备份这件事同样不能省。装驱动前至少确认两件事第一sudo df -h /boot看一下启动分区空间够不够内核更新后如果空间满了会出现各种诡异问题第二虚拟机的话打个快照物理机的话准备一个Ubuntu启动U盘。我自己的经验是驱动装坏了最可靠的恢复路径是U盘引导进Live环境然后把系统里的nvidia-*包卸干净比在BIOS里瞎折腾靠谱得多。注意如果你同时装了NVIDIA驱动、CUDA Toolkit、Docker还有一堆用户态库出问题时要先冷静判断是哪一层坏了不要一上来就重装系统。驱动层面的问题通常卸载驱动重装就能解决而重装系统会把后面所有环境全部拖下水代价太大。2. 三种主流安装方式怎么选Linux下装NVIDIA驱动的方式很多但真正值得长期使用的其实只有三种apt仓库安装、官网run安装包、离线deb包安装。对20.04和22.04的日常使用者我几乎无脑推荐第一种因为它和系统更新机制绑定内核升级后DKMS会自动帮你重新编译驱动模块不容易出现“升级完内核显卡就挂了”的问题。后面两种适合特定场景我把原理和操作都讲清楚你自己判断。2.1 最省心ubuntu-drivers apt安装先看最简单的方案对差不多九成用户都适用sudo apt update sudo apt install nvidia-driver-535或者直接sudo ubuntu-drivers autoinstall区别在于手动指定版本可以精确控制装哪个驱动而autoinstall会直接读取ubuntu-drivers devices的推荐结果把推荐版本和所有运行时依赖一次性装好省心但可定制性差。我自己的习惯是先看一眼推荐版本然后手动指定版本号安装这样能清楚知道自己装的是哪一版后续排查问题心里有数。apt方式为什么稳因为Ubuntu仓库里的驱动在发布前会经过大量的硬件和内核组合测试而且会自动带上dkms、nvidia-kernel-common、libnvidia-compute这些关键依赖。尤其是不用自己手动编译内核模块DKMS会在安装时自动为当前内核编译nvidia、nvidia_modeset、nvidia_drm这些模块。下次系统更新内核时DKMS也会自动跑一遍编译流程避免“升级完内核驱动就废了”的经典翻车。缺点也很明显版本比官网更新慢。比如新显卡刚上市时官网驱动已经支持40系甚至50系了Ubuntu仓库可能还停留在旧版本。不过话说回来对大多数生产环境来说驱动本来就是越稳越好追新并没有太大意义。如果你非要追新那看下面第二种。2.2 官网.run手动安装适合什么情况官网的.run安装包是很多人印象里“Linux装驱动”的标准画面。流程大致是从NVIDIA官网下载对应显卡型号的驱动文件进纯命令行模式停掉图形界面然后执行安装脚本。对20.04和22.04都通用但更推荐给以下场景Ubuntu仓库里还没有你要的驱动版本、需要自定义安装参数、或者你清楚知道自己要干什么。步骤拆开看chmod x NVIDIA-Linux-x86_64-535.146.02.run sudo service lightdm stop # 如果用的GDM执行 sudo systemctl stop gdm3 sudo ./NVIDIA-Linux-x86_64-535.146.02.run --no-opengl-files sudo reboot我的习惯是带--no-opengl-files参数。这个参数的意思是不要覆盖系统中的OpenGL库文件很多桌面环境下NVIDIA自带的OpenGL库会和系统库打架不带这个参数可能导致循环登录或桌面起不来。如果你的电脑有Intel核显或者AMD核显加上这个参数更安全。这里有个容易踩的坑run包安装过程中会问你是否运行nvidia-xconfig、是否需要覆盖已有的NVIDIA库。如果之前已经通过apt装过NVIDIA驱动建议先sudo apt purge nvidia-*把旧驱动清干净再跑run否则两套文件混在一起迟早出问题。另外run包安装的内核模块不会自动纳入DKMS管理之后每次更新内核都需要重新手动跑一次run包这是它最不方便的地方。2.3 离线deb包安装内网机器的“搬砖”方案搜“ubuntu22.04离线安装nvidia显卡驱动”的人非常多这个场景真实存在。内网机器不能访问外网常见做法是找一台相同Ubuntu版本、有网的机器先把deb包下载好再拷过去安装。需要注意三个细节架构、版本匹配、依赖顺序。先在有网的机器上创建目录并下载mkdir ~/nvidia-debs cd ~/nvidia-debs apt-get download nvidia-driver-535 nvidia-kernel-common-535 nvidia-utils-535 libnvidia-compute-535 libnvidia-gl-535 libnvidia-extra-535apt-get download只下载包但不安装依赖所以你必须把这一堆关联依赖都手动下载。如果你不清楚完整的依赖列表有个更省事的方法先在一台联网机器上执行sudo apt install nvidia-driver-535然后用apt-cache depends nvidia-driver-535查看依赖树再把所有依赖包用apt-get download统一拉下来。实操中宁可多拷几个包也别少了缺一个依赖就可能卡在dpkg阶段。离线环境下还需要确保dkms、build-essential、linux-headers-$(uname -r)这些编译工具已经存在。因为离线机器不能临时apt install如果之前没装过后续驱动内核模块根本编译不了。拷到离线机器后执行sudo dpkg -i *.deb如果报依赖错误就按依赖顺序逐个装一般先装libnvidia-*、nvidia-kernel-common-*最后装nvidia-driver-*。装完执行sudo dkms status看到类似nvidia/535.xx.x, 5.15.0-xx-generic, x86_64: installed的输出才算编译成功。2.4 三种方式速选表与实际建议安装方式推荐场景优点缺点apt ubuntu-drivers普通桌面/服务器求稳自动处理依赖和DKMS升级省心版本较保守新显卡支持慢官网run版本追新、自定义安装参数版本新安装灵活不会自动适配内核更新需手动操作离线deb内网/无外网环境可提前下载离线可装依赖处理繁琐需要备齐工具链如果你的目标是跑CUDA、深度学习、Docker的GPU容器强烈建议走第一条路。把宿主机驱动装统一上层CUDA版本、PyTorch版本怎么换都方便不会因为驱动和容器要求的CUDA版本不兼容而反复折腾。官网run在我看来更像个“一次性工具”适合解决特定问题不适合作为长期维护方案。3. 实操记录Ubuntu 20.04与22.04完整安装前面讲完原理和选型这一节写实打实的操作流程。我以最常见的nvidia-driver-535为例分别给出20.04和22.04两个版本的实际安装过程和验证方法顺带把双显卡笔记本、老显卡新显卡这些容易翻车的场景单独拉出来说。3.1 Ubuntu 20.04安装nvidia-driver-535实录Ubuntu 20.04的默认软件源里不一定有535尤其刚装完系统时。如果执行apt install nvidia-driver-535提示找不到包先加graphics-driversPPAsudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt install nvidia-driver-535有老手对PPA有顾虑这很正常。但graphics-drivers/ppa是Ubuntu社区里维护最勤、使用最广的显卡驱动PPA之一只要你不是在内网隔离、强合规的长周期服务器上跑业务给20.04加这个源来获取新版驱动完全可以接受。装完以后顺手跑一下sudo apt upgrade把可能随依赖一起更新的内核装上再重启。实际操作中20.04上容易遇到一个问题内核头文件没装导致DKMS编译失败。如果安装过程正常结束但重启后nvidia-smi报错第一件事检查DKMS状态sudo apt install linux-headers-$(uname -r) build-essential dkms sudo dkms status这里有个细节20.04原装内核是5.4如果你升级到了HWE内核例如5.15内核头文件的包名会变成linux-headers-5.15.0-xx-generic用uname -r先确认当前内核版本再安装对应的头文件。很多人只装linux-headers-generic结果版本对不上DKMS怎么编译都失败。3.2 Ubuntu 22.04安装流程和MOK的坑22.04的软件源默认已经包含nvidia-driver-535不需要额外加PPA直接sudo apt update sudo apt install nvidia-driver-535如果安装时系统弹出紫色配置界面要求你设置并确认一个MOK密码说明Secure Boot正开着。这时候不要慌输入一个你记得住的密码继续完成安装。重启后会进入蓝色MOK管理界面选择Enroll MOK跟着提示选择Ok或者Yes最后输入刚才设置的密码等待写盘重启后NVIDIA模块才会被正确加载。整个过程表面上是“认证驱动”本质上就是让系统信任NVIDIA的内核模块签名。如果你在22.04上用的是Wayland会话装完NVIDIA驱动后可能会发现GNOME桌面进不去或者各种渲染异常。NVIDIA对Wayland的支持这几年才逐步完善老驱动配老版本GNOME会有不少坑。最稳妥的建议是在登录界面左下角齿轮图标选择Ubuntu on Xorg会话先用X11把系统跑起来等驱动和桌面版本都更新了再折腾Wayland。3.3 装完驱动后的三连验证重启后先跑三条命令验证nvidia-smi lsmod | grep nvidia glxinfo | grep -i opengl renderernvidia-smi要能显示GPU型号、驱动版本、显存占用比如Driver Version: 535.xx.x和CUDA Version: 12.x说明驱动和用户态工具都正常。lsmod | grep nvidia能看到nvidia、nvidia_modeset、nvidia_drm这些内核模块已经挂载。glxinfo如果显示NVIDIA Corporation ...说明OpenGL渲染走的就是NVIDIA而不是还没卸载干净的nouveau或者软件渲染。没有glxinfo的话先装一下sudo apt install mesa-utils有时候nvidia-smi正常但桌面还是卡成PPT十有八九是图形渲染没切到NVIDIA这时候glxinfo的输出是最直接的证据。如果显示的是llvmpipe或者nouveau就得回头检查驱动模块是否真的在加载、有没有被Xorg正确识别。3.4 双显卡笔记本、Intel核显、老卡新卡的取舍双显卡笔记本在Linux下有个专门的场景叫NVIDIA Optimus装好驱动后系统里有两个GPU默认可能走的是Intel核显。这时候用命令行切换sudo apt install nvidia-prime prime-select query prime-select nvidia执行完prime-select nvidia后退出登录重新进再用glxinfo确认渲染设备。有的机器还需要在BIOS里把显卡模式设为Discrete Graphics而不是Hybrid不同品牌叫法不一样但原理都是让独显作为主输出。很多人的误区是看到lspci里有Intel UHD Graphics 630就以为NVIDIA驱动没生效其实只需确认prime-select和glxinfo的结果就行。老显卡不要盲目装新驱动。比如GTX 750、P600这些老卡如果装535甚至更新版本很可能进不去图形界面或者内核模块加载报错。NVIDIA每发一个新驱动分支都会逐渐停止对旧架构显卡的支持。这种老卡老老实实用仓库里的nvidia-driver-470维护分支即可稳定不代表落后能用就是好驱动。反过来如果你手里是40系、50系这种新卡仓库里的老版本驱动很可能识别不了。这种情况优先考虑官网run包或者找更新的PPA源。网上搜“ubuntu24.04安装50系显卡驱动”的朋友本质就是老驱动没有新显卡的设备ID必须在驱动更新后才能识别。如果nvidia-smi报No devices were found先怀疑驱动版本太旧别急着怀疑硬件坏了。4. 常见问题与排查技巧实录网上高频搜索的“nvidia-smi has failed because it couldnt communicate with the nvidia driver”、“failed to load module glxserver_nvidia”这些报错我几乎每次帮人排查驱动问题都会碰到。这一节把最常见的几类故障按“现象—原因—操作”写清楚方便你直接对着查。4.1 nvidia-smi报错couldnt communicate with the nvidia driver这个报错的意思是nvidia-smi工具能跑起来但跟内核态的NVIDIA驱动模块通信失败。第一次装完驱动遇到这种情况大概率是驱动模块根本没加载。先按这个顺序排查lsmod | grep nvidia sudo dmesg | grep -i nvidia如果lsmod没有输出说明nvidia.ko内核模块没有被加载。可能原因有DKMS编译失败、内核升级后模块未重新生成、nouveau又回来了、Secure Boot签名未生效。逐个排除。如果是升级内核后出现的重建DKMS模块sudo dkms autoinstall或者指定版本sudo dkms install -m nvidia -v 535.xx.x sudo modprobe nvidia如果dmesg提示nvidia: Unknown symbol之类说明内核头文件不匹配重新确认后安装sudo apt install linux-headers-$(uname -r)modprobe执行成功后再跑nvidia-smi应该就正常了。还有一种情况是Secure Boot导致模块被拒dmesg里会出现Lockdown: modprobe nvidia: Lockdown mode之类字样这就需要去MOK管理界面重新注册密钥或者直接在BIOS里关掉Secure Boot。4.2 Xorg报错glxserver_nvidia加载失败热词里有条[ 7.125] (EE) nvidia: failed to load module glxserver_nvidia (module does not exist, 0)。这条经常出现在装完驱动后Xorg无法加载NVIDIA的GLX扩展结果要么进不了桌面要么桌面能进但OpenGL渲染是空的。这个错误的核心很简单libglxserver_nvidia.so没有被Xorg找到。一般原因是驱动没装完整或者Xorg配置里模块路径不对。排查方式find /usr -name libglxserver_nvidia.so* 2/dev/null如果文件存在多半是路径配置问题。查看/usr/share/X11/xorg.conf.d/下有没有NVIDIA的配置或者手动在/etc/X11/xorg.conf里指定路径Section Files ModulePath /usr/lib/xorg/modules ModulePath /usr/lib/xorg/modules/extensions EndSection如果文件本身不存在就是驱动安装不完整。重新安装一次nvidia-driver-535并重启或者执行sudo ldconfig重建动态库缓存。这里要注意一点官网run包安装时如果加了--no-opengl-files有时候确实会导致这个扩展缺失你可以尝试去掉该参数重装但也要接受这个参数本来要规避的OpenGL覆盖风险。4.3 黑屏、循环登录、MOK签名这些连锁反应黑屏和循环登录是NVIDIA驱动问题里最令人头痛的两大症状。成因五花八门最常见的有nouveau没禁干净、桌面管理器配置被NVIDIA覆盖、.Xauthority权限错误、GDM或lightdm与驱动不兼容。循环登录的排查顺序我强烈建议这样按CtrlAltF2进入文本终端用你的用户名密码登录。检查家目录下.Xauthority文件的属主如果所属用户不对很容易循环登录。重新配置桌面管理器并重启sudo dpkg-reconfigure gdm3 sudo reboot如果用的lightdmsudo dpkg-reconfigure lightdm如果怀疑是NVIDIA OpenGL库覆盖了系统GL库可以重新安装mesa相关库sudo apt install --reinstall libgl1-mesa-glx libgl1-mesa-dri这里再强调一次MOK。如果你开着Secure Boot又漏掉了MOK注册重启后系统看起来进了桌面但一调用NVIDIA模块就黑屏journalctl里能看到签名校验失败。这类问题防患于未然最有效进BIOS暂时关掉Secure Boot等确认驱动没问题再决定要不要开回来。4.4 虚拟机、SSH连不上、环境变量这类“伪问题”很多人装完NVIDIA驱动后又遇到VMware虚拟机里驱动一直失败。这里想提醒一句VMware默认不会直通物理GPU虚拟显卡和NVIDIA物理显卡完全是两套东西除非你在虚拟机设置里做了PCI直通否则别浪费时间去查驱动日志。搜“vmware虚拟机安装ubuntu”的朋友先把虚拟机的显卡方式改对再谈驱动安装。还有人装完驱动后SSH连不上。多数时候这不是驱动导致的而是安装过程中重启了网络服务或者新装了桌面组件改变了默认运行级别。按CtrlAltF2登录后执行sudo systemctl status ssh看一下如果ssh服务是正常的那就去查网络配置别盲目认为是驱动把系统搞坏了。另一类问题是环境变量配置错误。装了CUDA后很多人会把PATH和LD_LIBRARY_PATH写进~/.bashrc结果路径写错或者重复设置导致一堆命令找不到库文件。这里有个小技巧修改.bashrc之前先备份改完执行source ~/.bashrc之前先确认语法没问题。如果已经坏了临时执行export PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin把路径恢复回来再慢慢改。4.5 干净卸载NVIDIA驱动Linux下的DDU操作搜“DDU卸载显卡驱动”的多半是从Windows过来的朋友。DDU是Windows下的显卡驱动清理工具Linux下其实不需要那么复杂的工具对应操作就是清理所有NVIDIA相关软件包和配置文件sudo apt purge nvidia-* libnvidia-* sudo apt autoremove sudo rm -f /etc/X11/xorg.conf sudo rm -rf /tmp/nvidia-*如果你还想让nouveau重新回来就把/etc/modprobe.d/blacklist-nvidia-nouveau.conf删掉然后sudo update-initramfs -u sudo reboot如果是官网run包安装的可以用sudo nvidia-uninstall卸载。执行完再检查lsmod | grep nvidia有没有残留。我踩过最惨的一次坑是重装驱动时没有purge干净新的run包安装到一半提示“An NVIDIA kernel module nvidia appears to already be loaded”然后整个安装中断。自打那以后我不管装什么版本都先干净卸载一遍旧驱动。注意卸载驱动之前先确认目前的GPU任务是否已经保存。因为apt purge nvidia-*通常会触发图形界面重启正在跑的CUDA任务、视频转码作业没保存的话数据可能直接丢。生产服务器务必先停服务再操作。5. 驱动装好之后接着做哪些事NVIDIA驱动不是终点而是很多工作的起点。驱动装好之后nvidia-smi能显示显卡只是第一步紧接着很多人就要在上面跑CUDA、容器化GPU任务、视频转码这类实际业务。如果目标是深度学习或自动驾驶仿真这类重GPU场景这一步几乎是必经之路。5.1 CUDA验证与版本匹配思路驱动装好后系统里有了NVIDIA用户态库但不一定有CUDA Toolkit。NVIDIA官网可以下载CUDA Toolkit安装包也可以用apt安装对应版本。有些驱动版本后面显示CUDA Version: 12.4那只是驱动支持的最高CUDA运行时版本不代表你已经装了CUDA编译器。运行nvcc --version才能看到真正的Toolkit版本。我的建议是先装驱动再装对应版本的CUDA Toolkit。驱动和Toolkit版本如果错配运行程序时会出现libcuda.so找不到或者版本不满足的问题。比如你在官方文档里看到某个深度学习框架要求CUDA 11.8但驱动装的是470分支最高只支持到CUDA 11.4那就得要么换驱动分支要么在驱动范围内选一个较新的Toolkit版本。很多人在这一步反复折腾其实先对照NVIDIA官方“驱动版本与CUDA版本兼容表”选型能省下一整天。5.2 Docker容器访问GPU搜索里经常出现“ubuntu安装docker”这其实和NVIDIA驱动关系密切。装好NVIDIA驱动后想让Docker容器访问GPU还得装nvidia-container-toolkitsudo apt install nvidia-container-toolkit sudo systemctl restart docker然后跑一次验证docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi注意--gpus all是关键参数没有它容器内看不到GPU。这里有个非常常见的错误宿主机的nvidia-smi正常但容器内报could not select device driver with capabilities: [[gpu]]多半是nvidia-container-toolkit没装好或者Docker守护进程没有重启。如果你是在Ubuntu上玩Carla这类自动驾驶仿真平台容器化部署时尤其要注意宿主驱动和容器内CUDA版本的一致性否则画面渲染和传感器数据读取都可能出故障。5.3 FFmpeg NVENC硬件转码另一个和NVIDIA驱动高度相关的场景是FFmpeg的NVENC硬件转码。很多人搜“linux安装nvidia版本ffmpeg”其实他们想要的是编译或安装一个启用了NVIDIA硬件加速的FFmpeg。Ubuntu官方仓库里的FFmpeg默认不包含NVENC需要自己找启用了NVIDIA支持的构建版本或者手动编译。验证你的FFmpeg是否支持NVENCffmpeg -encoders 2/dev/null | grep nvenc如果输出有h264_nvenc、hevc_nvenc说明你的FFmpeg已经支持硬件编码。在支持的显卡上做转码速度和CPU软压比有质的区别尤其对视频剪辑、直播推流这类场景可以说是刚需。还需要注意一点部分新老驱动分支对NVENC SDK版本有要求驱动太旧可能导致某些编码特性不可用这时候升级驱动分支比换FFmpeg版本更有效。最后再分享一个不太容易被注意到的经验每次装完驱动我都建议把uname -r、驱动版本、安装方式、Secure Boot是否开启记到笔记里。下次系统出问题时翻一下记录很快就能定位是内核升级导致的还是驱动配置被改坏了。装驱动本身不难难的是你对自己机器的状态有没有掌控感。先把基础链路走通后面的坑都会少很多。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进