关于 nvidia-smi: no devices were found 解决方案

解决Ubuntu 22.04下RTX 5070显卡驱动安装的曲折历程

问题背景

最近在Ubuntu 22.04系统上安装NVIDIA RTX 5070显卡驱动时,遇到了一系列挑战。尽管按照常规方法安装了官方推荐的驱动,但nvidia-smi始终显示"No devices were found"。经过几天的摸索和多次重装,暂时找到了解决方案。

系统环境

  • 操作系统: Ubuntu 22.04 LTS
  • 内核版本: 6.8.0-87-generic
  • 显卡: NVIDIA RTX 5070 Ti
  • 多显卡配置: 系统同时配备了NVIDIA RTX 5070和AMD集成显卡

问题排查过程

1. 初始硬件检测

bash 复制代码
# 检查系统内核版本
chase@chase:~$ uname -r
6.8.0-87-generic

# 查看显卡硬件信息
chase@chase:~$ lspci | grep -i vga
01:00.0 VGA compatible controller: NVIDIA Corporation Device 2c05 (rev a1)
79:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 13c0 (rev c9)

从输出可以看到,系统正确识别到了NVIDIA RTX 5070(设备ID: 2c05)和AMD集成显卡。

2. 可用驱动检测

bash 复制代码
chase@chase:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0 ==
modalias : pci:v000010DEd00002C05sv00001043sd000089F4bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-580-server-open - distro non-free
driver   : nvidia-driver-570-server-open - distro non-free
driver   : nvidia-driver-570 - distro non-free
driver   : nvidia-driver-570-open - distro non-free
driver   : nvidia-driver-580 - distro non-free recommended
driver   : nvidia-driver-570-server - distro non-free
driver   : nvidia-driver-580-open - distro non-free
driver   : nvidia-driver-580-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

系统推荐安装nvidia-driver-580版本驱动。

3. 初次安装尝试

按照官方推荐安装580版本驱动:

bash 复制代码
sudo apt-get install nvidia-driver-580

安装完成后,检查驱动状态:

bash 复制代码
nvidia-smi

结果令人失望:

复制代码
No devices were found

问题分析与解决方案

根本原因

经过多次尝试和排查,发现问题可能源于以下几个方面:

  1. 新硬件兼容性问题: RTX 5070是相对较新的显卡,标准闭源驱动可能存在兼容性问题
  2. 内核模块加载失败: 闭源驱动可能无法正确加载内核模块
  3. Secure Boot冲突: 在某些情况下,Secure Boot可能会阻止专有驱动加载

最终解决方案

使用开源版本的580驱动成功解决问题:

bash 复制代码
# 卸载之前安装的驱动(如有)
sudo apt-get remove nvidia-driver-580

# 安装开源版本的580驱动
sudo apt-get install nvidia-driver-580-open

安装完成后,重启系统并验证:

成功验证

bash 复制代码
chase@chase:~$ nvidia-smi
Sat Nov 15 15:27:11 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.95.05              Driver Version: 580.95.05      CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| 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 5070 Ti     Off |   00000000:01:00.0  On |                  N/A |
|  0%   35C    P8             20W /  300W |     921MiB /  16303MiB |      6%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            2044      G   /usr/lib/xorg/Xorg                      392MiB |
|    0   N/A  N/A            2191      G   /usr/bin/gnome-shell                     80MiB |
|    0   N/A  N/A            4977      G   ...rack-uuid=3190708988185955192        386MiB |
+-----------------------------------------------------------------------------------------+

经验总结

  1. 新硬件优先尝试开源驱动: 对于像RTX 5070这样的新发布硬件,开源版本驱动往往具有更好的兼容性
  2. 不要盲目相信"recommended": 虽然系统推荐闭源驱动,但实际兼容性可能不如开源版本
  3. 多显卡环境复杂性: 在NVIDIA和AMD显卡共存的环境中,驱动冲突的可能性更高
  4. 版本选择很重要: 580版本驱动相比570版本对新硬件支持更好

后续优化建议

bash 复制代码
# 安装CUDA工具包(如需要)
sudo apt install nvidia-cuda-toolkit

# 这里我是安装cuda 12.8
sudo sh cuda_12.8.0_570.86.10_linux.run

# 验证CUDA安装
nvcc --version
bash 复制代码
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:20:09_PST_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0

结论

在Ubuntu 22.04上安装RTX 5070显卡驱动时,如果遇到nvidia-smi显示"No devices were found"的问题,尝试使用开源版本的驱动(如nvidia-driver-580-open)暂时能够解决问题。

相关推荐
wusam1 天前
计算机网络传输层应用层综合实验5:DHCP服务
linux·服务器·计算机网络·应用层服务
hnlq1 天前
高性能异步io机制io_uring(二) ——io_uring的简单实现
linux·服务器·网络
wusam1 天前
计算机网络传输层应用层综合实验7:Web网站架设
运维·服务器·计算机网络·应用层服务
tianyuanwo1 天前
服务器操作系统SBOM实践:基于RPM生态的大规模组件透明化管理
运维·服务器·rpm·sbom
wusam1 天前
计算机网络传输层应用层综合实验6:DNS服务部署
服务器·网络·计算机网络·应用层服务
云和恩墨1 天前
多元异构时代 DBA 的救赎:AI 驱动下,从 DeepSeek 到 zCloud 的全流程突围
数据库
不会书1 天前
Linux字符设备驱动的演进:从传统框架到现代实践
linux·运维·服务器·c语言·驱动开发
有想法的py工程师1 天前
PostgreSQL × Debezium × Kafka CDC(Change Data Capture)监控体系
postgresql·kafka·zabbix·grafana·prometheus
被闲置的鱼1 天前
麒麟OS各种环境安装脚本,达梦数据库DM8、JDK安装、Nginx安装、vsftpd安装、硬盘挂载一件安装脚本
java·linux·数据库·nginx·kylin
代码游侠1 天前
应用——Linux 标准IO编程
linux·前端·数据库·学习·算法