NVIDIA 显卡驱动安装指南 (CentOS Stream 9 / RTX 5090)

本文档详细记录了在 CentOS Stream 9 系统上为 NVIDIA GeForce RTX 5090 D V2 显卡安装驱动的完整过程。

特别注意 :对于 RTX 50 系列(Blackwell 架构)及更新的显卡,必须使用 NVIDIA Open Kernel Modules(开源内核模块)版本的驱动,否则标准闭源驱动可能无法正确初始化 GPU。

1. 系统环境确认

在安装前,首先确认系统版本和显卡型号。

1.1 查看系统版本

bash 复制代码
cat /etc/os-release

输出示例

复制代码
NAME="CentOS Stream"
VERSION="9"
ID="centos"
...

1.2 确认显卡型号

使用 lspci 命令查看已连接的 NVIDIA 设备。

bash 复制代码
lspci | grep -i nvidia

输出示例

复制代码
02:00.0 VGA compatible controller: NVIDIA Corporation GB202 [GeForce RTX 5090 D V2] (rev a1)
85:00.0 VGA compatible controller: NVIDIA Corporation GB202 [GeForce RTX 5090 D V2] (rev a1)

2. 安装前准备

安装编译驱动所需的依赖包,包括 GCC 编译器和内核开发头文件。

bash 复制代码
# 更新系统
sudo dnf update -y

# 安装 EPEL 源和开发工具
sudo dnf install -y epel-release
sudo dnf install -y gcc make kernel-devel-$(uname -r) kernel-headers-$(uname -r)

3. 添加 NVIDIA 官方软件源

使用 NVIDIA 提供的 RHEL 9 CUDA 软件源,这是最稳定且推荐的安装方式。

bash 复制代码
# 添加 CUDA 仓库
sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo

# 清理并重建缓存
sudo dnf clean all

4. 安装 NVIDIA 驱动

4.1 选择正确的驱动模块

RTX 5090 等新一代显卡需要 Open Kernel Modules。我们需要安装 open-dkms 分支的驱动。

警告 :不要直接安装 latest-dkms(闭源版本),可能会导致 Failed to allocate NvKmsKapiDevice 错误。

4.2 执行安装命令

使用 DNF 的模块功能安装驱动:

bash 复制代码
# 安装 Open Kernel Module 版本的驱动
sudo dnf module install -y nvidia-driver:open-dkms

注:如果系统之前安装过其他版本的驱动,建议先卸载:

bash 复制代码
sudo dnf module remove nvidia-driver
sudo dnf module reset nvidia-driver

4.3 加载内核模块

安装完成后,通常需要重启系统。如果在服务器环境下不便重启,可以尝试手动加载模块:

bash 复制代码
sudo modprobe nvidia

5. 验证安装结果

使用 nvidia-smi 命令验证驱动是否正常工作。

bash 复制代码
nvidia-smi

成功输出示例

复制代码
Wed Mar 11 10:37:03 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.45.04              Driver Version: 595.45.04      CUDA Version: 13.2     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 5090 ...    Off |   00000000:02:00.0 Off |                  N/A |
|  0%   31C    P0             54W /  575W |       2MiB /  24455MiB |      0%      Default |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA GeForce RTX 5090 ...    Off |   00000000:85:00.0 Off |                  N/A |
| 30%   30C    P0             45W /  575W |       2MiB /  24455MiB |      0%      Default |
+-----------------------------------------+------------------------+----------------------+
  • Driver Version: 595.45.04 (支持 RTX 50 系列的最新驱动)
  • CUDA Version: 13.2
  • GPU: 正确识别到两块 RTX 5090 显卡。

6. 常见故障排除

故障 1: nvidia-smi 显示驱动版本但找不到 GPU

现象nvidia-smi 输出空表格,或者 dmesg 中出现以下错误:

复制代码
NVRM: installed in this system requires use of the NVIDIA open kernel modules.
[drm:nv_drm_dev_load [nvidia_drm]] *ERROR* [nvidia-drm] Failed to allocate NvKmsKapiDevice

原因 :安装了闭源驱动(Legacy/Proprietary),但显卡硬件(如 RTX 5090 GB202 核心)强制要求使用开源内核模块。
解决方法

  1. 卸载当前驱动:sudo dnf module remove nvidia-driver
  2. 重置模块流:sudo dnf module reset nvidia-driver
  3. 安装开源版:sudo dnf module install nvidia-driver:open-dkms

故障 2: NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver

原因 :内核模块未加载,或内核版本更新后 DKMS 未重新编译模块。
解决方法

  1. 检查模块状态:lsmod | grep nvidia
  2. 尝试手动加载:sudo modprobe nvidia
  3. 如果失败,重启系统让 DKMS 自动重修编译:sudo reboot

7. 驱动版本管理与更新

7.1 自动更新

由于使用了 DKMS(Dynamic Kernel Module Support),当系统内核更新时,驱动模块会自动重新编译适配,无需重新安装驱动。

7.2 手动更新驱动

定期检查更新:

bash 复制代码
sudo dnf update

如果有新的驱动流发布(例如从 595 更新到 600),可以使用模块命令切换:

bash 复制代码
sudo dnf module switch-to nvidia-driver:open-dkms
相关推荐
专注API从业者16 小时前
告别人工盯品!借助 Open Claw 搭建电商商品自动化监控与数据分析系统(完整可运行源码)
大数据·运维·数据库·数据分析·自动化
爱喝水的鱼丶18 小时前
SAP-ABAP:ABAP 用户出口参数传递与上下文获取:SAP 标准数据读取与交互逻辑实现
运维·性能优化·交互·sap·abap·经验交流·出口
IT大白鼠18 小时前
PentestGPT作为AI运维编排工作流自动化底座的技术架构与应用价值评估
运维·人工智能·自动化·pentestgpt
M78佐菲18 小时前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法
ltl19 小时前
QUIC 协议拆解(上):为什么 TCP 改不动了
linux
j7~19 小时前
【Git】《Git 系列指南(二):Git基本操作与 reset 三种模式》
运维·git·git安装·git基本操作·git配置·创建git仓库·git reset三种模式
zzzll111119 小时前
n8n 工作流自动化平台入门指南
运维·自动化
Hrain-AI19 小时前
Anthropic oncall-kit 开源拆解:运维 Agent 落地范式的四基石与权限边界
运维·人工智能·开源
HXDGCL19 小时前
从“转盘困局”到“直线破局”:华创力科技PTS精密分度输送系统如何重塑自动化产线
运维·科技·自动化
戴西软件20 小时前
国内有哪些智能化RPA工具?——从“录数据”到“做判断”,国产数字员工正在重新定义自动化
运维·自动化·rpa