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
相关推荐
戴为沐21 小时前
Linux内存扩容指南
linux
zylyehuo1 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF2 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者4 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo4 天前
Linux系统中网线与USB网络共享冲突
linux
荣--4 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森4 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜5 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https