Ubuntu 24.04 安装 NVIDIA 驱动:解决 “NVIDIA-SMI has failed“ 报错全记录

作者:小阳

发布时间: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。这个版本非常新,导致:

  1. Ubuntu官方仓库中的NVIDIA驱动包可能还没有针对该内核完成适配编译

  2. 即使通过 apt 安装了驱动,DKMS自动编译环节也可能失败

  3. 系统找不到对应的内核头文件(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

相关推荐
Industio_触觉智能1 小时前
瑞芯微ISP内核驱动深度解析|RKISP39从架构到Probe初始化全流程(上篇)
linux·嵌入式硬件·硬件架构·摄像头·isp·瑞芯微·rk3576
有续技术1 小时前
三菱 (Mitsubishi) 机床 设置查看 IP 地址
linux·服务器·网络
yagami_gagami1 小时前
第四届黄河流域公安院校电子物证个人赛服务器取证
linux·服务器·网络·mysql·安全·docker·llama
九硕智慧建筑一体化厂家2 小时前
直流照明|档案库房专用照明,防紫外线、防纸张老化、适配24小时值守
运维·网络·笔记·智慧城市
邪修king2 小时前
Re:Linux系统篇(七) 开发工具篇 Chapter3:Makefile 从入门到精通 —— 依赖关系、伪目标、栈式推导与自动化构建全解
linux·运维·服务器·vim
bosins2 小时前
Ubuntu 日常最常用的文件操作场景和对应指令
linux·服务器·ubuntu
PinoLio2 小时前
鲁班猫5-实战篇之虚拟机运行yolov5
yolo·ubuntu
风曦Kisaki2 小时前
Kubernetes(K8s)笔记Day07: StatefulSet 有状态控制器详解与使用案例
linux·docker·云原生·容器·kubernetes
不相心 -w-2 小时前
Cmake的基础用法
linux·开发语言·c++