ARTICLE DETAIL

资讯详情

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

RTX 5090D在Ubuntu 24.04上的NVIDIA驱动安装全攻略

RTX 5090D在Ubuntu 24.04上的NVIDIA驱动安装全攻略 RTX 5090D首发那天我就下了单结果显卡到手有多兴奋后面在Ubuntu 24.04上装驱动的过程就有多崩溃。作为常年主力机跑Linux的人Windows下的驱动反而不用操心真正卡了整整两天的是Blackwell新架构在Linux下的适配问题。RTX 5090D和上一代Ada Lovelace架构完全是两回事手头的旧驱动装上去直接认不出核心必须上570系列及以上的新版本。这篇就把我在Ubuntu 24.04 LTS上给RTX 5090D装NVIDIA驱动的完整过程、选型思路、踩过的坑和最终排查方案全整理出来给同样在Linux下折腾这张卡的朋友做个参考。不管是跑AI训练、本地大模型还是Blender渲染、CUDA编程这套流程都适用建议先收藏再慢慢看。1. 项目概述RTX 5090D在Linux下的定位与驱动选型1.1 为什么RTX 5090D的驱动安装需要单独讨论先说清楚一个概念RTX 5090D是NVIDIA面向特定市场推出的Blackwell架构旗舰卡和标准版RTX 5090相比在AI算力部分做了调整屏蔽了部分张量核心。但这个“D”后缀并不影响它在图形渲染、视频编解码、CUDA通用计算上的表现对于绝大多数开发者和创作者来说这张卡的能力依然是第一梯队的。问题恰恰出在架构上。Blackwell对于Linux生态来说还是一个比较新的东西NVIDIA虽然在2025年初就发布了支持RTX 50系的驱动但当时还处于“能用但不省心”的状态。我查了一圈资料确认了RTX 5090D需要驱动版本570系列及以上才能被正确识别低于这个版本的驱动安装后会出现“Unknown GPU”或者直接加载不了模块的情况。这就让很多习惯用老方法装驱动的人翻车了——不管是apt方式还是runfile方式只要版本不对装完都是白折腾。还有一个细节容易被忽略Ubuntu 24.04用的是6.8内核比20.04/22.04都新而新内核和NVIDIA驱动的配合往往需要更晚版本的驱动才能完美支持。如果你用的是半年甚至一年前的驱动备份大概率会在编译模块的时候报错。所以对于5090D用户来说驱动版本选择从一开始就没得商量必须用新的。1.2 驱动版本怎么选570系列是分水岭结合我这段时间的实测追一遍NVIDIA驱动版本的迭代情况你会发现5090D的驱动适配其实经历了一个比较清晰的阶段560系列及以下完全识别不了RTX 5090D核心显示Unknown不建议尝试。570系列早期版本能装上驱动能起来但部分场景下功耗控制不够积极风扇策略也偏保守跑大模型的时候温度偏高。575、580系列性能表现趋于稳定CUDA生态兼容性也补得差不多了是目前相对舒服的版本段。所以我给新人的建议是不要在安装驱动这件事上追求“最新”也不要用太久远的“稳定版”直接选NVIDIA官网当前推荐的生产分支版本Production Branch就好。官网下载页面会根据你选的显卡型号给出一个默认推荐版本那个版本就是经过大量验证的踩雷概率最小。如果你暂时拿不准就到 NVIDIA驱动下载页 把型号选成GeForce RTX 50系列注意认准5090D操作系统选Linux 64-bit它会给你推荐一个版本号。写本文时推荐版本已经到580系列大家以后安装时以官网页面显示的为准即可。1.3 安装方式的整体思路三种路线怎么选在动手之前先理清楚Ubuntu下安装NVIDIA驱动主要有三条路路线一官网.run文件手动安装。最灵活、最可控适合对Linux有一定了解、需要自定义安装选项的用户。缺点是每次内核升级后驱动模块需要重新编译过程稍繁琐。路线二NVIDIA官方apt源安装。我目前的主力方案。NVIDIA维护了一个独立的软件源可以直接通过apt安装和升级驱动比手动runfile更方便又能比Ubuntu自带源更快拿到新版本驱动。路线三Ubuntu系统自带源安装。最简单sudo ubuntu-drivers autoinstall一条命令就能搞定但版本往往滞后对于5090D这种新卡系统源里未必有合适的新驱动。适合老显卡用户或者不追新功能的场景。我个人推荐路线二兼顾稳定性和后续维护成本。这篇文章三种方式都会详细讲你可以根据自己的水平和需求选择。2. 动手安装前的准备很多问题根源在准备阶段2.1 把系统更新到最新并安装编译工具链不管选哪条安装路线装驱动之前把系统基础环境弄干净都是必须的第一步。我见过太多人跳过这步直接下驱动结果编译模块时报错缺头文件回头又来查半天。其实就几条命令的事sudo apt update sudo apt upgrade -y sudo apt install build-essential dkms linux-headers-$(uname -r) -ybuild-essential提供gcc、make等编译工具dkms负责让驱动模块在内核升级后自动重新编译linux-headers-$(uname -r)则是编译NVIDIA内核模块必需的头文件。这三个缺一不可。这里特别说下linux-headers的重要性。NVIDIA驱动在安装时会针对当前内核编译一个nvidia.ko模块编译过程需要内核头文件。如果头文件缺失或者版本和当前内核不匹配安装程序会报错“Unable to build the NVIDIA kernel module”然后直接中止。很多人在这里就卡住了其实只是没装headers的问题。另外多说一句强烈建议装DKMS。没有DKMS的情况下每次系统内核更新你的NVIDIA驱动就会失效重启后只能进命令行重新装一遍。装了这个内核升级后它会自动把nvidia模块重新编译好省掉无数麻烦。2.2 禁用nouveau90%的安装失败和它有关nouveau是Linux内核自带的NVIDIA显卡开源驱动问题在于它和NVIDIA闭源驱动同时加载的话会直接冲突轻则安装报错重则黑屏起不来。所以闭源驱动安装前必须把nouveau列入黑名单。禁用方法很简单新建一个配置文件sudo tee /etc/modprobe.d/blacklist-nouveau.conf EOF blacklist nouveau options nouveau modeset0 EOF然后更新initramfs并重启sudo update-initramfs -u sudo reboot重启后确认nouveau确实没加载lsmod | grep nouveau如果没有任何输出说明禁用成功。如果还有输出检查一下刚才的配置文件内容是否写对了有些发行版还需要检查/etc/modprobe.d/下是否有其他文件重新启用了nouveau。这一步是后续所有安装方式的前提千万别跳过。2.3 Secure Boot是个隐藏的坑必须提前处理如果用的是品牌机或者开启了UEFI安全启动的电脑这一步处理不好后面就算驱动装完也会在重启时被“踢”出来表现为黑屏或循环登录。原因是Secure Boot只允许加载被签名过的内核模块而NVIDIA的开源驱动模块没有被微软或主板厂商签名。处理方式有两种方式一直接关闭Secure Boot最简单适合自己装机。开机进BIOS/UEFI设置找到Secure Boot选项设为Disabled。这个在组装机上很容易做到。方式二保留Secure Boot并签名MOK适合不想关安全启动的用户。安装驱动时NVIDIA安装程序会生成一个签名请求重启后进入蓝色MOK管理界面选择Enroll key输入刚才设置的密码确认后系统会用这个密钥给驱动模块签名。这条路流程繁琐每次内核更新签名还要重新做一遍新手不建议折腾。我的建议很直接如果是自己的机器直接把Secure Boot关掉最省心。如果是公司电脑有统一安全策略关不了再走MOK签名的路子。3. 三种安装路线实操全记录3.1 官网.run文件安装最灵活但要注意几个细节官网下载驱动这步就不多赘述了选好型号下载后一般会得到一个类似NVIDIA-Linux-x86_64-570.XXX.XX.run的文件。拿到文件后先别急着双击有几个细节必须处理好。第一步进入纯命令行环境。因为装驱动时必须停止图形界面服务否则安装程序会提示“You appear to be running an X server”。先按下CtrlAltF3切换到tty3纯文本界面用你的账号登录然后停止显示管理器sudo systemctl stop gdmUbuntu 24.04默认的显示管理器是GDM3。如果你自己改装了LightDM或者SDDM就把上面命令里的gdm换成对应的服务名。第二步给.run文件加执行权限并运行。建议配合几个参数能省掉不少交互麻烦chmod x NVIDIA-Linux-x86_64-*.run sudo ./NVIDIA-Linux-x86_64-*.run --dkms --no-cc-version-check--dkms参数自动把模块注册到DKMS里防止以后内核升级驱动失效--no-cc-version-check是跳过gcc版本检查。因为Ubuntu 24.04自带的gcc 13和NVIDIA某些版本驱动的检查逻辑存在冲突不加这个参数可能直接报错退出。安装过程中会问几个问题“Would you like to register the kernel module souces with DKMS?”选Yes“Install NVIDIAs 32-bit compatibility libraries?”建议选Yes因为有些应用依赖32位库“Would you like to run the nvidia-xconfig utility?”选Yes它会生成一个基本的Xorg配置文件。第三步重启验证。装完重启如果一切正常执行nvidia-smi就能看到GPU信息和使用情况。如果黑屏了别慌后面第5章有专门排查方案。3.2 NVIDIA官方apt源安装目前最推荐的方案如果你不想和.run文件打交道也不想每次内核升级后手动处理驱动NVIDIA官方apt源是最舒服的选择。NVIDIA为每个Ubuntu LTS版本维护了一个独立仓库直接适配dGPU驱动和CUDA工具包的安装升级。第一步添加NVIDIA官方仓库。先安装cuda-keyring包来导入GPG公钥和仓库配置wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb装完后执行apt update你会在源列表里看到cuda-ubuntu2404-x86_64这个仓库。第二步安装驱动。这个源里有显卡驱动也有CUDA工具包。只装驱动的话直接sudo apt update sudo apt install nvidia-driver-580版本号可以改成当前最新的比如575、580等。装完重启就行。如果后续还要做AI开发那可以直接装CUDA全家桶sudo apt install cuda这会把匹配当前驱动的CUDA工具包一起装上省去手动配环境的麻烦。注意这里不推荐用Ubuntu源里那个nvidia-cuda-toolkit版本太旧和5090D的驱动常有兼容问题。第三步验证安装。重启后执行nvidia-smi如果能看到驱动版本和显存信息说明安装成功。3.3 Ubuntu系统自带源安装适合老卡但5090D要慎重如果说前两种是用“新工具”装“新驱动”那这个方式就是用“旧工具”撞运气。Ubuntu 24.04的系统软件源里确实提供了NVIDIA驱动包可以通过如下命令全自动安装sudo ubuntu-drivers list sudo ubuntu-drivers autoinstall但问题在于系统源里的驱动版本通常滞后几个月。对于5090D这种刚推出不久的新卡很可能出现“装上了但识别不了”的尴尬情况。我自己实测过Ubuntu 24.04刚发布时系统源里最新只有到550系列这个版本对Blackwell架构根本不支持装上之后nvidia-smi报错“No devices were found”。所以我对这个方案的态度是可以知道有这么回事但除非你的卡是30系、40系等老卡或者你明确知道系统源里已经有570版本的驱动否则不推荐把这个作为5090D的首选方案。真要用的话记得先apt search nvidia-driver看下可用版本号确认高于570再动手。4. 装完之后的验证别只看“好像成功了”4.1 nvidia-smi的正确打开方式装完驱动重启后第一件事就是验证驱动是否真的正常工作。在终端输入nvidia-smi正常情况下输出分上下两部分上半部分是显卡型号、驱动版本、显存总量和当前占用下半部分是当前运行的进程。重点看这几个信息Driver Version确认版本号是570以上。GPU Name应该正确显示NVIDIA GeForce RTX 5090D如果显示Unknown或N/A说明驱动版本还是不行。Memory-Usage显示显存被哪些进程占用。有时候nvidia-smi已经能看到卡了但图形界面还是有点奇怪这时候再用glxinfo确认OpenGL渲染器是否走的是NVIDIAsudo apt install mesa-utils -y glxinfo | grep renderer正常输出类似OpenGL renderer string: NVIDIA GeForce RTX 5090D/PCIe/SSE2。如果你看到llvmpipe说明渲染器还在用CPU软件模拟NVIDIA加速没启用需要继续排查。4.2 CUDA工具包的安装与版本匹配踩坑如果你装这张卡是为了跑CUDA开发或者AI框架光有驱动还不够还得装CUDA Toolkit。这里有个很容易晕的知识点驱动和CUDA是两回事。驱动是系统层面的内核模块CUDA是用户态的编译器和运行时库。但两者之间有依赖关系——特定版本的CUDA要求驱动不低于某个版本。对应关系在 NVIDIA的CUDA兼容矩阵 里有官方说明简单说就是CUDA 12.8需要驱动≥570CUDA 12.9需要驱动≥575。所以如果你用的驱动是570就别强行装最新CUDA 13.x否则运行时会报“CUDA driver version is insufficient”。我的安装建议是直接用前面说的NVIDIA官方apt源一条命令装全套sudo apt install cuda-toolkit装完确认版本nvcc --version如果输出的版本符合你的需求就可以直接去编译CUDA代码了。顺便说一句装完nvcc和驱动后nvidia-smi里显示的CUDA版本号是当前驱动支持的最高版本和已安装的nvcc版本并不冲突两者可以不同。4.3 图形界面与性能落地的初步检查驱动装好之后还可以顺手验证一下GPU加速在真实场景中的表现。我习惯用一个简单到极致的命令查看GPU实时频率和温度nvidia-smi dmon -s pucvmetnmon在开发和训练场景里也能用不过dmon更直观。用watch -n 1 nvidia-smi可以持续刷新状态跑模型的时候观察显存占用和核心利用率是否正常。如果你主要用Wayland会话注意Ubuntu 24.04默认登录界面是GDM Wayland有些老版本驱动对Wayland的支持不完善可能造成画面撕裂或者桌面卡顿。遇到这种情况可以在登录界面点用户头像右下角的齿轮图标手动选择“Ubuntu on Xorg”登录。X11在兼容性上还是更稳一些。5. 常见问题与排查实录5.1 黑屏驱动装完重启进不了桌面这是装完NVIDIA驱动后最经典也最吓人的一个问题。先别急着重装系统大概率是GRUB引导时图形界面初始化出问题了。在开机出现GRUB菜单时没出现的话重启并按Shift键选中内核那一行按e编辑启动参数找到quiet splash后面加上nomodesetquiet splash nomodesetnomodeset的作用是让内核在启动时不做显卡模式设置先用基本Display驱动把系统拉起来这样至少能进桌面或者命令行终端。进系统后再检查驱动是否真的在运行nvidia-smi能不能正常显示。如果nomodeset下能进系统但驱动没起来说明UEFI Secure Boot或者nouveau的禁用还没处理干净。另外一种黑屏情况是进入桌面后屏幕灭了但系统还在运行能听到风扇转、能ping通或远程连上。这种情况大概率是驱动和显示管理器冲突去tty3登录删掉手动生成的/etc/X11/xorg.conf再重启试试。5.2 循环登录输完密码又弹回登录界面这个问题的本质是显示管理器启动失败。登录界面能显示说明驱动还没完全失效但进入桌面时需要调用GPU加速的合成器起不来于是被踢回登录界面。排查思路从三个地方入手第一关掉Wayland会话。在登录界面把会话切到“Ubuntu on Xorg”如果Xorg能进桌面就是Wayland和驱动配合的问题。第二检查驱动模块是否加载。在登录界面按CtrlAltF3进tty执行lsmod | grep nvidia如果没有输出说明模块根本没加载。手动加载并查看报错sudo modprobe nvidia如果是“Key was rejected by service”这类的报错直接指向Secure Boot问题参考前面章节处理。第三确认nouveau没有复活。有时候升级内核或者装其他软件会把nouveau带回来再次lsmod | grep nouveau检查一下。5.3 Failed to initialize NVML与驱动版本不匹配这个报错我在一次驱动小版本升级后遇到过nvidia-smi弹出“Failed to initialize NVML: Driver/library version mismatch”系统的CUDA程序也全挂了。原因是当前内核里加载的nvidia.ko模块版本和用户态库文件版本不一致——通常是你在图形界面下跑了nvidia-smi但实际刚更新过驱动内核没重启。解决方法很简单重启一次就完事sudo reboot如果重启后还有这个问题可能是旧模块还留在内存里没被清理。可以试试把NVIDIA相关模块全部卸载再重新加载sudo rmmod nvidia_drm nvidia_modeset nvidia_uvm nvidia sudo modprobe nvidia5.4 如何彻底卸载驱动干净重来如果你折腾了好几轮都不成功最稳妥的办法是把所有NVIDIA相关的东西全部清干净从头来一遍。卸载命令分两种如果用的是runfile方式sudo /usr/bin/nvidia-uninstall如果用的是apt方式sudo apt purge ^nvidia-.* ^libnvidia-.* ^cuda-.* -y sudo apt autoremove -y卸载完再检查一下残留lsmod | grep nvidia有输出的话手动rmmod卸载。然后重新走一遍第2章的禁用nouveau流程再找一套方案从零开始。这套“一键重来”的操作虽然粗暴但对于救急非常有效我遇到过不少环境被各种教程“叠加”到不可用的机器都是这样救回来的。最后分享一个经验如果你不是硬件发烧友非要折腾最新驱动给5090D选驱动的时候尽量用官网推荐的生产分支版本不要一看到Beta就往上冲。生产分支经过的验证周期足够长和主流CUDA版本的兼容性也更好。驱动装好之后给系统做个快照或者备份一下/etc/modprobe.d/目录下的配置以后万一出了状况也能快速恢复。希望这篇能帮你少走点弯路有踩到其他坑的朋友也欢迎交流补充。
返回列表