Linux 系统 NVIDIA 显卡查询与驱动安装完全指南
文档概述
本文档系统汇总了 Linux 系统下 NVIDIA 显卡的核心操作体系,涵盖显卡信息精准查询、官方驱动分步安装、安装故障排查解决三大核心模块。适配 Ubuntu/Debian、CentOS/RHEL 等主流 Linux 发行版,同时兼容桌面版与服务器版系统,兼顾新手入门与资深运维需求,可作为开发者、运维人员的标准化实操参考手册。文档中所有命令均经过实测验证,关键步骤标注注意事项,降低操作风险。
一、NVIDIA 显卡信息查询命令
Linux 系统中查询 NVIDIA 显卡信息的工具分为两类:驱动依赖型工具(需安装 NVIDIA 专有驱动)和系统原生工具(无需驱动,适用于刚装机或未装驱动场景),可根据实际环境选择。
1.1 nvidia-smi(推荐,驱动依赖型)
NVIDIA 官方提供的系统管理接口(System Management Interface)工具,功能全面且数据精准,是查询显卡状态的首选工具,需安装 NVIDIA 专有驱动后使用。
\# 基础查询(默认输出完整信息)nvidia-smi\# 实时监控模式(每秒刷新一次,按 Ctrl+C 退出)nvidia-smi -l 1\# 精简输出(仅显示核心信息)nvidia-smi --query-gpu=name,driver\_version,memory.total,memory.used,gpu\_util --format=csv,noheader,nounits
输出关键信息说明:
| |
|---|
| 显卡编号(多卡环境下从 0 开始递增,可通过编号指定 GPU 任务) |
| 显卡型号(如 Tesla T4、GeForce RTX 3060、A100 等,决定驱动适配版本) |
| 当前安装的 NVIDIA 驱动版本(如 550.54.14,需与显卡型号、内核版本兼容) |
| 显存占用状态(已用 / 总容量,单位通常为 MiB/GiB,反映 GPU 负载) |
| GPU 核心利用率(百分比,0% 表示空闲,100% 表示满负载) |
| 显卡核心温度(正常工作温度 40-85℃,超过 90℃ 需检查散热) |
| 占用 GPU 的进程(显示 PID、进程名、显存占用,可用于排查异常占用) |
1.2 lspci(系统原生工具,无依赖)
Linux 自带的 PCI 设备查询工具,可直接读取硬件信息,无需安装任何驱动,适用于未装 NVIDIA 驱动或驱动安装失败的场景,仅能获取硬件基础信息。
\# 快速过滤 NVIDIA 显卡设备(最常用)lspci | grep -i nvidia\# 查看显卡详细硬件参数(厂商、设备 ID、总线位置等)lspci -v | grep -i nvidia -A 20 # -A 20 表示显示匹配行后 20 行内容\# 以十六进制格式显示设备 ID(用于精准匹配驱动)lspci -nn | grep -i nvidia # 输出格式:\[10de:2507],10de 为 NVIDIA 厂商 ID
输出解读:
例如输出 01:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2060] (rev a1),其中:
- •
GeForce RTX 2060:显卡具体型号
1.3 nvidia-settings(图形界面工具,驱动依赖型)
NVIDIA 驱动配套的图形化配置工具,兼具信息查询与参数配置功能,适用于桌面版 Linux 系统,操作直观易懂。
\# 终端启动图形界面(需安装驱动后执行)nvidia-settings
核心功能:
- 1. 信息查询:在「GPU 0 - (GeForce RTX 2060)」栏目中查看显卡型号、驱动版本、温度、显存占用等;
- • 性能设置:调节 GPU 频率、风扇转速(需手动模式);
1.4 快速查询驱动版本(精准验证安装结果)
若仅需确认已安装的 NVIDIA 驱动版本,无需完整输出 nvidia-smi 信息,可使用以下快捷命令:
\# 方法 1:从 nvidia-smi 输出中提取驱动版本(最简洁)nvidia-smi | grep -i "driver version" | awk '{print \$3}'\# 方法 2:查看内核模块版本(反映驱动加载状态)modinfo nvidia | grep -i "version:" | head -n 1\# 方法 3:通过包管理器查询(适用于通过 PPA/RPM 安装的场景)\# Ubuntu/Debian 系dpkg -l | grep nvidia-driver | grep -i "ii" | awk '{print \$3}'\# CentOS/RHEL 系dnf list installed nvidia-driver | awk '{print \$2}' | tail -n 1
1.5 查询注意事项
- 1. 若执行
nvidia-smi 提示「command not found」,说明未安装 NVIDIA 专有驱动,需切换至 lspci 工具查询硬件信息; - 2. 开源 nouveau 驱动环境下,
nvidia-smi 和 nvidia-settings 均无法正常工作,需安装 NVIDIA 官方驱动后使用; - 3. 服务器版 Linux(无图形界面)中,
nvidia-settings 不可用,需通过 nvidia-smi 或 modinfo 查询信息; - 4. 多显卡环境下,
nvidia-smi 会按编号列出所有显卡,可通过 nvidia-smi -i 0(查询编号 0 的显卡)指定单卡查询。
二、NVIDIA 官方驱动安装步骤
安装核心原则:先禁用冲突驱动 → 安装依赖 → 选择适配安装方式 → 验证安装,全程需注意内核版本与驱动版本的兼容性,避免因版本不匹配导致安装失败。
2.1 通用前置准备(所有发行版必做)
2.1.1 精准确认显卡型号(避免驱动错配)
驱动版本需与显卡型号严格适配(老显卡不支持新驱动,新显卡需最新驱动),建议通过以下两种方式交叉验证:
\# 方式 1:lspci 硬件查询(最可靠)lspci | grep -i nvidia | awk -F ': ' '{print \$2}'\# 方式 2:NVIDIA 官网自动检测(需浏览器,适合桌面版)\# 访问:https://www.nvidia.com/en-us/geforce/drivers/,点击「自动检测你的GPU」
2.1.2 禁用开源 nouveau 驱动(关键步骤,必做)
nouveau 是 Linux 内核自带的开源 NVIDIA 驱动,会与官方专有驱动产生严重冲突,导致驱动安装失败或安装后无法启动,必须彻底禁用。
\# 步骤 1:创建黑名单配置文件sudo vim /etc/modprobe.d/blacklist-nouveau.conf\# 步骤 2:写入以下内容(禁用 nouveau 驱动及相关模块)blacklist nouveaublacklist lbm-nouveauoptions nouveau modeset=0alias nouveau offalias lbm-nouveau off\# 步骤 3:生成新的 initramfs 镜像(使配置生效)\# Ubuntu/Debian 系sudo update-initramfs -u -k all # -k all 表示适配所有内核版本\# CentOS/RHEL 系sudo dracut --force /boot/initramfs-\$(uname -r).img \$(uname -r)\# 步骤 4:重启系统sudo reboot\# 步骤 5:验证禁用结果(无任何输出则说明禁用成功)lsmod | grep nouveau
2.1.3 检查内核版本(确保依赖兼容)
驱动安装需编译内核模块,需确保 kernel-devel(内核头文件)版本与当前运行内核版本完全一致,否则会导致编译失败。
\# 查看当前运行内核版本uname -r\# 查看已安装的 kernel-devel 版本(需与上一步输出一致)\# Ubuntu/Debian 系dpkg -l | grep kernel-devel-\$(uname -r)\# CentOS/RHEL 系dnf list installed kernel-devel-\$(uname -r)
2.2 分发行版安装驱动(推荐优先选择发行版原生方式)
2.2.1 Ubuntu/Debian 系(推荐 PPA 源安装,最稳定)
PPA 源由 NVIDIA 官方维护,驱动版本同步更新,且自动处理依赖关系,适合桌面版和服务器版。
\# 步骤 1:添加 NVIDIA 官方 PPA 源sudo add-apt-repository ppa:graphics-drivers/ppa -ysudo apt update -y\# 步骤 2:查看系统推荐的驱动版本(关键,优先选择 recommended 版本)ubuntu-drivers devices\# 输出示例(标注 recommended 的为适配版本,如 nvidia-driver-550)\# == /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==\# modalias : pci:v000010DEd00002507sv00001462sd00003759bc03sc00i00\# vendor : NVIDIA Corporation\# model : TU106 \[GeForce RTX 2060]\# driver : nvidia-driver-535 - distro non-free\# driver : nvidia-driver-550 - distro non-free recommended\# driver : xserver-xorg-video-nouveau - distro free builtin\# 步骤 3:安装驱动(二选一)\# 方式 1:自动安装推荐版本(新手首选)sudo ubuntu-drivers autoinstall\# 方式 2:手动安装指定版本(替换为推荐版本号,如 550)sudo apt install nvidia-driver-550 -y\# 步骤 4:重启系统(使驱动生效)sudo reboot
2.2.2 CentOS/RHEL 系(RPM 源安装,官方推荐)
CentOS/RHEL 系通过 NVIDIA 官方 RPM 源安装,自动解决依赖,适合服务器环境和桌面环境。
\# 步骤 1:安装基础依赖包(编译内核模块必需)sudo dnf install kernel-devel kernel-headers gcc make dkms -y\# 步骤 2:添加 NVIDIA 官方 RPM 源(根据系统版本选择,以 CentOS 8 为例)\# CentOS 7sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86\_64/cuda-rhel7.repo\# CentOS 8sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86\_64/cuda-rhel8.repo\# CentOS 9sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86\_64/cuda-rhel9.repo\# 步骤 3:安装驱动(自动匹配适配版本)sudo dnf install nvidia-driver -y\# 步骤 4:重启系统sudo reboot
2.2.3 通用手动安装(.run 文件,所有发行版适用)
当 PPA/RPM 源无适配驱动版本(如冷门显卡、最新内核)时,可通过 NVIDIA 官网下载 .run 格式驱动文件手动安装,灵活性最高,但需手动处理依赖和冲突。
\# 步骤 1:安装编译依赖(必需,否则无法编译内核模块)\# Ubuntu/Debian 系sudo apt install gcc make kernel-devel-\$(uname -r) dkms -y\# CentOS/RHEL 系sudo dnf install gcc make kernel-devel kernel-headers dkms -y\# 步骤 2:下载官方驱动文件\# 1. 访问 NVIDIA 驱动下载页面:https://www.nvidia.com/en-us/drivers/\# 2. 选择显卡型号(如 GeForce RTX 2060)、系统版本(如 Linux 64-bit)\# 3. 下载 .run 格式文件(如 NVIDIA-Linux-x86\_64-550.90.07.run)\# 4. 将文件保存到本地(如 \~/Downloads 目录)\# 步骤 3:关闭图形界面(关键,避免显卡资源被占用)\# Ubuntu/Debian(Gnome 桌面,默认)sudo systemctl stop gdm3\# Ubuntu/Debian(LightDM 桌面,如 Xubuntu)sudo systemctl stop lightdm\# CentOS/RHEL(Gnome 桌面)sudo systemctl stop gdm\# 切换到文本终端(若未自动切换,按 Ctrl+Alt+F1/F2 手动切换)sudo chvt 1\# 步骤 4:赋予驱动文件执行权限并安装cd \~/Downloads # 进入驱动文件所在目录sudo chmod +x NVIDIA-Linux-x86\_64-550.90.07.run # 替换为实际文件名sudo ./NVIDIA-Linux-x86\_64-550.90.07.run # 运行安装程序\# 步骤 5:安装交互选项(按以下推荐选择)\# 1. 提示「Accept License」:按 Enter 接受\# 2. 提示「Install 32-bit compatibility libraries?」:选 Yes(兼容 32 位程序)\# 3. 提示「Would you like to run nvidia-xconfig?」:选 Yes(自动配置 Xorg)\# 4. 提示「Kernel module already loaded」:选 Continue installation(覆盖旧模块)\# 其他选项默认即可\# 步骤 6:重启系统sudo reboot
2.3 安装验证(必做,确认驱动正常工作)
重启后通过以下命令验证安装结果,满足任意两项即可确认安装成功:
\# 验证 1:nvidia-smi 输出完整信息(核心验证)nvidia-smi # 若显示显卡型号、驱动版本等信息,说明驱动加载成功\# 验证 2:查看 NVIDIA 内核模块是否加载lsmod | grep nvidia # 输出 nvidia、nvidia\_uvm、nvidia\_drm 等模块即正常\# 验证 3:检查驱动版本一致性modinfo nvidia | grep -i "version:" | head -n 1 # 版本需与 nvidia-smi 显示一致\# 验证 4:图形界面验证(桌面版)nvidia-settings # 能正常打开配置界面,且显示显卡信息即正常
三、驱动安装常见报错及解决办法
安装过程中报错多集中于驱动冲突、依赖缺失、环境占用、版本不兼容四类问题,以下是高频报错的现象、根因及分步解决方案:
3.1 报错:nouveau is loaded(nouveau 驱动未禁用)
现象:
运行 .run 驱动安装包时提示:
ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver. Please see the NVIDIA driver README and/or the NVIDIA Linux driver installation guide for details on how to correctly disable the Nouveau kernel driver.
原因:
nouveau 驱动未彻底禁用(可能是配置文件未生效、未重启系统,或存在残留模块)。
解决办法:
- 1. 重新执行 2.1.2 节的禁用步骤,确保配置文件中包含所有禁用规则;
- 2. 生成 initramfs 时添加
-k all 参数(适配所有内核):
\# Ubuntu/Debian 系sudo update-initramfs -u -k all\# CentOS/RHEL 系sudo dracut --force /boot/initramfs-\$(uname -r).img \$(uname -r)
- 1. 重启系统后,再次执行
lsmod | grep nouveau,确认无输出后再安装驱动; - 2. 若仍有输出,可临时屏蔽 nouveau 模块(应急方案):
sudo modprobe -r nouveau # 卸载已加载的 nouveau 模块
3.2 报错:gcc: command not found /make: command not found
现象:
安装驱动时提示缺少 gcc 或 make 工具,编译内核模块失败:
ERROR: Unable to find the development tool 'gcc' in your path; please make sure that you have the package 'gcc' installed. If gcc is installed, please check that it is in your PATH.
原因:
未安装编译依赖包,NVIDIA 驱动需通过 gcc、make 编译内核模块以适配当前系统内核。
解决办法:
\# Ubuntu/Debian 系sudo apt install gcc make kernel-devel-\$(uname -r) dkms -y\# CentOS/RHEL 系sudo dnf install gcc make kernel-devel kernel-headers dkms -y
gcc --version # 显示版本号即正常make --version # 显示版本号即正常
- 1. 关键注意点:
kernel-devel 版本必须与当前内核版本(uname -r 输出)完全一致,若不一致,需安装对应版本:
\# Ubuntu/Debian 系安装指定版本 kernel-develsudo apt install kernel-devel-\$(uname -r) -y\# CentOS/RHEL 系安装指定版本 kernel-develsudo dnf install kernel-devel-\$(uname -r) -y
3.3 报错:X server is running(图形界面未关闭)
现象:
运行 .run 安装包时提示 X 服务正在运行,无法安装:
ERROR: You appear to be running an X server; please exit X before installing. For further details, please see the section INSTALLING THE NVIDIA DRIVER in the README available on the Linux driver download page at www.nvidia.com.
原因:
图形界面(X 服务)占用显卡资源,导致驱动无法替换内核模块。
解决办法:
- 1. 按 2.2.3 节步骤关闭 X 服务(根据桌面环境选择对应命令):
\# 先查看当前使用的桌面管理器(Ubuntu/Debian 系)cat /etc/X11/default-display-manager\# 输出 /usr/sbin/gdm3 则用 gdm3,输出 /usr/sbin/lightdm 则用 lightdmsudo systemctl stop gdm3 # 或 lightdm/gdm
sudo chvt 1 # 切换到 tty1 终端,按 Ctrl+Alt+F7 可切回图形界面
- 1. 关闭图形界面自动启动(临时,避免重启后自动加载):
sudo systemctl disable gdm3 --now # 安装完成后需重新启用:sudo systemctl enable gdm3 --now
3.4 报错:dkms build failed(DKMS 构建内核模块失败)
现象:
安装过程中出现 DKMS 构建失败日志:
ERROR: Failed to run dkms build -m nvidia -v 550.90.07 -k 5.15.0-78-genericERROR: DKMS build failed.
原因:
- 1. 内核头文件(kernel-devel)版本与当前内核不匹配;
- 3. 驱动版本与内核版本不兼容(如最新内核不支持旧驱动)。
解决办法:
\# Ubuntu/Debian 系sudo apt install --reinstall dkms -y\# CentOS/RHEL 系sudo dnf install --reinstall dkms -y
- 1. 确保 kernel-devel 版本与内核完全一致:
\# 查看当前内核版本uname -r\# 安装匹配的 kernel-develsudo apt install kernel-devel-\$(uname -r) -y # Ubuntu/Debian 示例
- 1. 清理 DKMS 残留配置(避免旧模块干扰):
sudo dkms remove nvidia/550.90.07 --all # 替换为实际驱动版本
- • 新内核(如 6.0+):选择最新版 NVIDIA 驱动(545+);
- • 旧内核(如 5.4 以下):选择 535 或更低版本驱动(需适配显卡型号)。
3.5 报错:No devices were found(nvidia-smi 无设备)
现象:
驱动安装完成后,运行 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. 笔记本双显卡(Optimus 架构)未切换到独显;
解决办法:
\# Ubuntu/Debian 系安装 nvidia-prime 切换工具sudo apt install nvidia-prime -ysudo prime-select nvidia # 切换到独显模式sudo reboot # 重启后生效
- • 重启电脑,按 F2/F10/Del 进入 BIOS(不同品牌按键不同);
- • 找到「Graphics Device」「Display Mode」或「GPU Mode」选项;
- • 设为「Discrete Graphics」(独显优先)或「Hybrid Graphics」(混合模式),保存重启。
- • 访问 NVIDIA 官网驱动下载页面,确认下载的驱动支持当前显卡型号;
- • 若不兼容,下载对应型号的历史驱动版本(如老显卡选择 470 系列驱动)。
sudo modprobe nvidia # 加载模块lsmod | grep nvidia # 验证是否加载成功
3.6 安装后系统黑屏(无法进入图形界面)
现象:
重启后屏幕黑屏,仅显示光标或无任何输出,无法进入桌面。
原因:
解决办法:
\# 切换到文本终端(Ctrl+Alt+F1)sudo nvidia-xconfig # 自动生成默认 Xorg 配置sudo reboot
\# 方法 1:.run 文件安装的驱动,执行卸载命令sudo ./NVIDIA-Linux-x86\_64-550.90.07.run --uninstall # 替换为实际文件名\# 方法 2:PPA/RPM 安装的驱动,通过包管理器卸载\# Ubuntu/Debian 系sudo apt purge nvidia-\* -y\# CentOS/RHEL 系sudo dnf remove nvidia-driver -y\# 重启后重新安装适配版本驱动
sudo systemctl set-default multi-user.target # 切换到多用户模式(无图形界面)sudo reboot\# 登录后执行 nvidia-smi 验证驱动是否正常,若正常,再切换回图形界面sudo systemctl set-default graphical.targetsudo reboot
3.7 权限报错:Permission denied
现象:
运行 .run 驱动安装包时提示权限不足:
bash: ./NVIDIA-Linux-x86\_64-550.90.07.run: Permission denied
原因:
未给 .run 格式的驱动文件赋予执行权限,系统不允许直接运行。
解决办法:
赋予文件执行权限后重新安装:
cd \~/Downloads # 进入驱动文件所在目录sudo chmod +x NVIDIA-Linux-x86\_64-550.90.07.run # 赋予执行权限(chmod +x 表示添加执行权限)sudo ./NVIDIA-Linux-x86\_64-550.90.07.run # 重新运行安装
3.8 其他常见问题补充
问题:安装后驱动版本与 nvidia-smi 显示不一致
- • 原因:系统中存在多个版本驱动,内核加载了旧版本模块;
\# Ubuntu/Debian 系sudo apt purge nvidia-driver-xxx -y # xxx 为旧版本号sudo update-initramfs -u\# CentOS/RHEL 系sudo dnf remove nvidia-driver-xxx -ysudo dracut --forcesudo reboot
问题:服务器版 Linux 安装后无图形界面,nvidia-smi 正常但应用无法调用 GPU
- • 原因:未安装 CUDA Toolkit(部分应用需 CUDA 支持);
- • 解决:安装对应驱动版本的 CUDA Toolkit(参考 NVIDIA 官网 CUDA 安装指南)。
四、补充说明与最佳实践
- • 桌面用户(游戏、图形设计):选择最新稳定版驱动(如 550 系列),支持最新显卡特性;
- • 服务器用户(AI 训练、计算任务):选择长期支持版(LTS)驱动(如 535、470 系列),稳定性优先;
- • 旧显卡(如 GTX 10 系列及以下):选择 470 系列驱动(最新版驱动已不再支持)。
- • 多卡查询:
nvidia-smi -i 0,1(查询编号 0 和 1 的显卡); - • 指定 GPU 运行程序:
CUDA_VISIBLE_DEVICES=0 python ``script.py(仅使用编号 0 的显卡); - • 显卡性能监控:
nvidia-smi -l 1 --query-gpu=name,gpu_util,memory_used --format=csv(实时监控多卡负载)。
\# Ubuntu/Debian 系sudo apt update && sudo apt upgrade nvidia-driver -y\# CentOS/RHEL 系sudo dnf update nvidia-driver -y
\# .run 文件安装sudo ./NVIDIA-Linux-x86\_64-xxx.xx.run --uninstall\# PPA 安装(Ubuntu/Debian)sudo apt purge nvidia-\* -y && sudo apt autoremove -y\# RPM 安装(CentOS/RHEL)sudo dnf remove nvidia-\* -y && sudo dnf autoremove -y
- • 虚拟机环境(如 VMware、KVM):需在虚拟机设置中启用「PCI 直通」,将显卡映射到虚拟机后再安装驱动;
- • 容器环境(Docker):需使用带 NVIDIA 驱动的基础镜像(如 nvidia/cuda),或在宿主机关联驱动目录。
- • 显卡监控:
nvidia-smi(命令行)、nvtop(可视化监控,需额外安装); - • 驱动管理:
ubuntu-drivers(Ubuntu 系)、dnf(CentOS 系); - • 问题排查:
dmesg | grep nvidia(查看驱动加载日志)、/var/log/nvidia-installer.log(安装日志)。
个人矩阵
- • 博客网站:www.from0to1.cn(持续更新Python实战教程、技术干货内容)
- • GitHub账号:https://github.com/mtnljbydd(开源更多实用工具脚本及项目工程)