作者:小阳
发布时间:2026-08-04
适用环境:Ubuntu 24.04 LTS + RTX A6000 双卡 + 内核 7.0.0
目录
[1.1 错误现象](#1.1 错误现象)
[1.2 检查驱动模块是否存在](#1.2 检查驱动模块是否存在)
[1.3 确认硬件与系统信息](#1.3 确认硬件与系统信息)
[2.1 核心问题](#2.1 核心问题)
[2.2 为什么会出现这种情况?](#2.2 为什么会出现这种情况?)
[3.1 方案一:使用 ubuntu-drivers 自动安装](#3.1 方案一:使用 ubuntu-drivers 自动安装)
[3.2 方案二:备选------安装稳定版闭源驱动](#3.2 方案二:备选——安装稳定版闭源驱动)
[3.3 方案三:手动安装NVIDIA官方.run文件(终极方案)](#3.3 方案三:手动安装NVIDIA官方.run文件(终极方案))
[Step 1:安装编译依赖](#Step 1:安装编译依赖)
[Step 2:确认内核头文件](#Step 2:确认内核头文件)
[Step 3:下载并安装NVIDIA驱动](#Step 3:下载并安装NVIDIA驱动)
前言
最近在配置深度学习开发环境时,遇到了一件令人头疼的事情:运行 nvidia-smi 时提示:
bash
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
Make sure that the latest NVIDIA driver is installed and running.
更重要的是,modinfo nvidia 直接返回 Module not found,说明系统里压根儿就没有NVIDIA驱动模块。本文记录了我从零开始排查、安装、解决问题的全过程,希望能帮助遇到类似问题的你。
**一、**问题现象与初步排查
1.1 错误现象
bash
(base) greatwall@greatwall-Z790-EAGLE-AX:~$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
Make sure that the latest NVIDIA driver is installed and running.

1.2 检查驱动模块是否存在
bash
modinfo nvidia | grep signer
# 输出:modinfo: ERROR: Module nvidia not found
这说明系统根本没有安装NVIDIA驱动,或者安装了但内核模块编译失败。
1.3 确认硬件与系统信息
bash
# 查看显卡信息(双RTX A6000)
lspci | grep -i nvidia
# 输出:
# 01:00.0 VGA compatible controller: NVIDIA Corporation GA102GL [RTX A6000] (rev a1)
# 01:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)
# 05:00.0 VGA compatible controller: NVIDIA Corporation GA102GL [RTX A6000] (rev a1)
# 05:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)
# 查看内核版本
uname -r
# 输出:7.0.0-28-generic
# 查看系统版本
lsb_release -a
# 输出:
# Distributor ID: Ubuntu
# Description: Ubuntu 24.04.4 LTS
# Release: 24.04
# Codename: noble
# 检查是否有nouveau冲突
lsmod | grep nouveau
# 无输出,说明没有冲突

二、问题根因分析
2.1 核心问题
内核版本 7.0.0-28-generic 是关键所在!
Ubuntu 24.04 LTS 的默认内核是 6.8.x 系列,而我的系统不知道什么原因升级到了 7.0.0。这个版本非常新,导致:
-
Ubuntu官方仓库中的NVIDIA驱动包可能还没有针对该内核完成适配编译
-
即使通过
apt安装了驱动,DKMS自动编译环节也可能失败 -
系统找不到对应的内核头文件(
linux-headers-7.0.0-28-generic)
2.2 为什么会出现这种情况?
-
系统自动更新时升级了内核(HWE硬件使能内核)
-
手动添加了某些PPA源,引入了更高版本的内核
-
使用了
mainline内核工具手动升级
三、解决方案全过程
3.1 方案一:使用 ubuntu-drivers 自动安装
ubuntu-drivers 是Ubuntu官方提供的驱动管理工具,会自动检测硬件并推荐合适的驱动版本。
bash
# 查看推荐的驱动版本
ubuntu-drivers devices

输出中可以看到大量驱动选项,其中:
bash
driver : nvidia-driver-595-open - distro non-free recommended
nvidia-driver-595-open 被标记为 recommended,这是NVIDIA最新的开源驱动分支。
bash
# 安装推荐驱动
sudo apt update
sudo apt install nvidia-driver-595-open
# 或者直接让系统自动安装
sudo ubuntu-drivers autoinstall
# 重启
sudo reboot

结果 :重启后 nvidia-smi 正常显示,驱动安装成功!✅
3.2 方案二:备选------安装稳定版闭源驱动
如果开源驱动安装失败,可以尝试成熟的闭源驱动版本(如550系列):
bash
sudo apt install nvidia-driver-550
sudo reboot
3.3 方案三:手动安装NVIDIA官方.run文件(终极方案)
如果上述两种方式都失败(通常是因为内核头文件缺失导致DKMS编译失败),可以手动下载NVIDIA官方驱动进行安装。
Step 1:安装编译依赖
bash
sudo apt update
sudo apt install build-essential dkms gcc make
Step 2:确认内核头文件
bash
# 检查是否存在对应内核的头文件
apt search linux-headers-$(uname -r)
如果找不到(这是7.0.0内核可能遇到的问题),你有两个选择:
-
选择A:重启并选择旧内核(6.8.x)启动,然后再安装
-
选择B :从 kernel.ubuntu.com 手动下载对应版本的头文件
Step 3:下载并安装NVIDIA驱动
bash
# 下载驱动(RTX A6000 适用)
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/550.144.03/NVIDIA-Linux-x86_64-550.144.03.run
# 添加执行权限
chmod +x NVIDIA-Linux-x86_64-550.144.03.run
# 关闭图形界面
sudo systemctl stop gdm3 # 如果使用GNOME
# 或
sudo systemctl stop lightdm # 如果使用LightDM
# 执行安装
sudo ./NVIDIA-Linux-x86_64-550.144.03.run
安装过程中会提示是否注册DKMS,选择 Yes。
bash
# 重启
sudo reboot
四、验证与结果
安装成功后,运行以下命令验证:
bash
# 1. 检查驱动状态
nvidia-smi
正常输出应显示显卡型号、驱动版本、CUDA版本等信息:
bash
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 550.xx.xx Driver Version: 550.xx.xx CUDA Version: 12.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 RTX A6000 Off | 00000000:01:00.0 Off | Off |
| 30% 42C P0 45W / 300W | 0MiB / 49140MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 RTX A6000 Off | 00000000:05:00.0 Off | Off |
| 30% 40C P0 42W / 300W | 0MiB / 49140MiB | 0% Default |
+-------------------------------+----------------------+----------------------+

bash
# 2. 检查内核模块是否加载
lsmod | grep nvidia
# 应该看到 nvidia, nvidia_modeset, nvidia_uvm, nvidia_drm 等模块
# 3. 检查驱动版本
cat /proc/driver/nvidia/version