«

Linux 系统 NVIDIA 显卡查询与驱动安装完全指南

从0至1 • 12 天前 • 45 次点击 • Linux 教程


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

输出关键信息说明:

| 字段             | 含义说明                                              |

| -------------- | ------------------------------------------------- |

| GPU            | 显卡编号(多卡环境下从 0 开始递增,可通过编号指定 GPU 任务)                |

| Name           | 显卡型号(如 Tesla T4、GeForce RTX 3060、A100 等,决定驱动适配版本) |

| Driver Version | 当前安装的 NVIDIA 驱动版本(如 550.54.14,需与显卡型号、内核版本兼容)      |

| Memory Usage   | 显存占用状态(已用 / 总容量,单位通常为 MiB/GiB,反映 GPU 负载)          |

| GPU-Util       | GPU 核心利用率(百分比,0% 表示空闲,100% 表示满负载)                 |

| Temperature    | 显卡核心温度(正常工作温度 40-85℃,超过 90℃ 需检查散热)                |

| Processes      | 占用 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),其中:

1.3 nvidia-settings(图形界面工具,驱动依赖型)

NVIDIA 驱动配套的图形化配置工具,兼具信息查询与参数配置功能,适用于桌面版 Linux 系统,操作直观易懂。


\# 终端启动图形界面(需安装驱动后执行)

nvidia-settings

核心功能:

  1. 信息查询:在「GPU 0 - (GeForce RTX 2060)」栏目中查看显卡型号、驱动版本、温度、显存占用等;

  2. 参数配置

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-sminvidia-settings 均无法正常工作,需安装 NVIDIA 官方驱动后使用;

  3. 服务器版 Linux(无图形界面)中,nvidia-settings 不可用,需通过 nvidia-smimodinfo 查询信息;

  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 nouveau

blacklist lbm-nouveau

options nouveau modeset=0

alias nouveau off

alias 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 -y

sudo 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 7

sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86\_64/cuda-rhel7.repo

\# CentOS 8

sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86\_64/cuda-rhel8.repo

\# CentOS 9

sudo 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 编译内核模块以适配当前系统内核。

解决办法:

  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
  1. 验证依赖是否安装成功:

gcc --version  # 显示版本号即正常

make --version  # 显示版本号即正常
  1. 关键注意点:kernel-devel 版本必须与当前内核版本(uname -r 输出)完全一致,若不一致,需安装对应版本:

\# Ubuntu/Debian 系安装指定版本 kernel-devel

sudo apt install kernel-devel-\$(uname -r) -y

\# CentOS/RHEL 系安装指定版本 kernel-devel

sudo 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 则用 lightdm

sudo systemctl stop gdm3  # 或 lightdm/gdm
  1. 切换到文本终端(避免后台重启 X 服务):

sudo chvt 1  # 切换到 tty1 终端,按 Ctrl+Alt+F7 可切回图形界面
  1. 关闭图形界面自动启动(临时,避免重启后自动加载):

sudo systemctl disable gdm3 --now  # 安装完成后需重新启用:sudo systemctl enable gdm3 --now
  1. 重新执行 .run 驱动安装命令。

3.4 报错:dkms build failed(DKMS 构建内核模块失败)

现象:

安装过程中出现 DKMS 构建失败日志:


ERROR: Failed to run dkms build -m nvidia -v 550.90.07 -k 5.15.0-78-generic

ERROR: DKMS build failed.

原因:

  1. 内核头文件(kernel-devel)版本与当前内核不匹配;

  2. DKMS 工具未安装或损坏;

  3. 驱动版本与内核版本不兼容(如最新内核不支持旧驱动)。

解决办法:

  1. 优先安装 DKMS 工具并修复损坏:

\# Ubuntu/Debian 系

sudo apt install --reinstall dkms -y

\# CentOS/RHEL 系

sudo dnf install --reinstall dkms -y
  1. 确保 kernel-devel 版本与内核完全一致:

\# 查看当前内核版本

uname -r

\# 安装匹配的 kernel-devel

sudo apt install kernel-devel-\$(uname -r) -y  # Ubuntu/Debian 示例
  1. 清理 DKMS 残留配置(避免旧模块干扰):

sudo dkms remove nvidia/550.90.07 --all  # 替换为实际驱动版本
  1. 若仍失败,更换驱动版本:

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 架构)未切换到独显;

  2. BIOS 中独显被禁用;

  3. 驱动版本与显卡型号不兼容;

  4. 内核模块未加载(nvidia 模块缺失)。

解决办法:

  1. 笔记本双显卡场景(最常见):

\# Ubuntu/Debian 系安装 nvidia-prime 切换工具

sudo apt install nvidia-prime -y

sudo prime-select nvidia  # 切换到独显模式

sudo reboot  # 重启后生效
  1. BIOS 检查与设置:
  1. 验证驱动与显卡兼容性:
  1. 手动加载 nvidia 内核模块:

sudo modprobe nvidia  # 加载模块

lsmod | grep nvidia  # 验证是否加载成功

3.6 安装后系统黑屏(无法进入图形界面)

现象:

重启后屏幕黑屏,仅显示光标或无任何输出,无法进入桌面。

原因:

  1. Xorg 配置文件损坏或未正确生成;

  2. 驱动版本过高,与显卡 / 桌面环境不兼容;

  3. 内核模块冲突(如 nouveau 残留)。

解决办法:

  1. 生成新的 Xorg 配置文件:

\# 切换到文本终端(Ctrl+Alt+F1)

sudo nvidia-xconfig  # 自动生成默认 Xorg 配置

sudo reboot
  1. 卸载当前驱动,安装更低版本:

\# 方法 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

\# 重启后重新安装适配版本驱动
  1. 临时禁用图形界面,排查驱动问题:

sudo systemctl set-default multi-user.target  # 切换到多用户模式(无图形界面)

sudo reboot

\# 登录后执行 nvidia-smi 验证驱动是否正常,若正常,再切换回图形界面

sudo systemctl set-default graphical.target

sudo 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 -y

sudo dracut --force

sudo reboot

问题:服务器版 Linux 安装后无图形界面,nvidia-smi 正常但应用无法调用 GPU

四、补充说明与最佳实践

  1. 驱动版本选择原则
  1. 多显卡环境配置
  1. 驱动更新与卸载

\# 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
  1. 特殊场景适配
  1. 常见工具推荐

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

输出关键信息说明:

| 字段             | 含义说明                                              |

| -------------- | ------------------------------------------------- |

| GPU            | 显卡编号(多卡环境下从 0 开始递增,可通过编号指定 GPU 任务)                |

| Name           | 显卡型号(如 Tesla T4、GeForce RTX 3060、A100 等,决定驱动适配版本) |

| Driver Version | 当前安装的 NVIDIA 驱动版本(如 550.54.14,需与显卡型号、内核版本兼容)      |

| Memory Usage   | 显存占用状态(已用 / 总容量,单位通常为 MiB/GiB,反映 GPU 负载)          |

| GPU-Util       | GPU 核心利用率(百分比,0% 表示空闲,100% 表示满负载)                 |

| Temperature    | 显卡核心温度(正常工作温度 40-85℃,超过 90℃ 需检查散热)                |

| Processes      | 占用 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),其中:

1.3 nvidia-settings(图形界面工具,驱动依赖型)

NVIDIA 驱动配套的图形化配置工具,兼具信息查询与参数配置功能,适用于桌面版 Linux 系统,操作直观易懂。


\# 终端启动图形界面(需安装驱动后执行)

nvidia-settings

核心功能:

  1. 信息查询:在「GPU 0 - (GeForce RTX 2060)」栏目中查看显卡型号、驱动版本、温度、显存占用等;

  2. 参数配置

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-sminvidia-settings 均无法正常工作,需安装 NVIDIA 官方驱动后使用;

  3. 服务器版 Linux(无图形界面)中,nvidia-settings 不可用,需通过 nvidia-smimodinfo 查询信息;

  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 nouveau

blacklist lbm-nouveau

options nouveau modeset=0

alias nouveau off

alias 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 -y

sudo 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 7

sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86\_64/cuda-rhel7.repo

\# CentOS 8

sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86\_64/cuda-rhel8.repo

\# CentOS 9

sudo 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 编译内核模块以适配当前系统内核。

解决办法:

  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
  1. 验证依赖是否安装成功:

gcc --version  # 显示版本号即正常

make --version  # 显示版本号即正常
  1. 关键注意点:kernel-devel 版本必须与当前内核版本(uname -r 输出)完全一致,若不一致,需安装对应版本:

\# Ubuntu/Debian 系安装指定版本 kernel-devel

sudo apt install kernel-devel-\$(uname -r) -y

\# CentOS/RHEL 系安装指定版本 kernel-devel

sudo 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 则用 lightdm

sudo systemctl stop gdm3  # 或 lightdm/gdm
  1. 切换到文本终端(避免后台重启 X 服务):

sudo chvt 1  # 切换到 tty1 终端,按 Ctrl+Alt+F7 可切回图形界面
  1. 关闭图形界面自动启动(临时,避免重启后自动加载):

sudo systemctl disable gdm3 --now  # 安装完成后需重新启用:sudo systemctl enable gdm3 --now
  1. 重新执行 .run 驱动安装命令。

3.4 报错:dkms build failed(DKMS 构建内核模块失败)

现象:

安装过程中出现 DKMS 构建失败日志:


ERROR: Failed to run dkms build -m nvidia -v 550.90.07 -k 5.15.0-78-generic

ERROR: DKMS build failed.

原因:

  1. 内核头文件(kernel-devel)版本与当前内核不匹配;

  2. DKMS 工具未安装或损坏;

  3. 驱动版本与内核版本不兼容(如最新内核不支持旧驱动)。

解决办法:

  1. 优先安装 DKMS 工具并修复损坏:

\# Ubuntu/Debian 系

sudo apt install --reinstall dkms -y

\# CentOS/RHEL 系

sudo dnf install --reinstall dkms -y
  1. 确保 kernel-devel 版本与内核完全一致:

\# 查看当前内核版本

uname -r

\# 安装匹配的 kernel-devel

sudo apt install kernel-devel-\$(uname -r) -y  # Ubuntu/Debian 示例
  1. 清理 DKMS 残留配置(避免旧模块干扰):

sudo dkms remove nvidia/550.90.07 --all  # 替换为实际驱动版本
  1. 若仍失败,更换驱动版本:

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 架构)未切换到独显;

  2. BIOS 中独显被禁用;

  3. 驱动版本与显卡型号不兼容;

  4. 内核模块未加载(nvidia 模块缺失)。

解决办法:

  1. 笔记本双显卡场景(最常见):

\# Ubuntu/Debian 系安装 nvidia-prime 切换工具

sudo apt install nvidia-prime -y

sudo prime-select nvidia  # 切换到独显模式

sudo reboot  # 重启后生效
  1. BIOS 检查与设置:
  1. 验证驱动与显卡兼容性:
  1. 手动加载 nvidia 内核模块:

sudo modprobe nvidia  # 加载模块

lsmod | grep nvidia  # 验证是否加载成功

3.6 安装后系统黑屏(无法进入图形界面)

现象:

重启后屏幕黑屏,仅显示光标或无任何输出,无法进入桌面。

原因:

  1. Xorg 配置文件损坏或未正确生成;

  2. 驱动版本过高,与显卡 / 桌面环境不兼容;

  3. 内核模块冲突(如 nouveau 残留)。

解决办法:

  1. 生成新的 Xorg 配置文件:

\# 切换到文本终端(Ctrl+Alt+F1)

sudo nvidia-xconfig  # 自动生成默认 Xorg 配置

sudo reboot
  1. 卸载当前驱动,安装更低版本:

\# 方法 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

\# 重启后重新安装适配版本驱动
  1. 临时禁用图形界面,排查驱动问题:

sudo systemctl set-default multi-user.target  # 切换到多用户模式(无图形界面)

sudo reboot

\# 登录后执行 nvidia-smi 验证驱动是否正常,若正常,再切换回图形界面

sudo systemctl set-default graphical.target

sudo 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 -y

sudo dracut --force

sudo reboot

问题:服务器版 Linux 安装后无图形界面,nvidia-smi 正常但应用无法调用 GPU

四、补充说明与最佳实践

  1. 驱动版本选择原则
  1. 多显卡环境配置
  1. 驱动更新与卸载

\# 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
  1. 特殊场景适配
  1. 常见工具推荐

个人矩阵

  • 抖音账号:从 0 至 1(日常分享Python自动化实操、效率工具教程)

  • 微信公众号:从 0 至 1(可通过该渠道获取完整代码包及EXE程序)

  • 博客网站:www.from0to1.cn(持续更新Python实战教程、技术干货内容)

  • GitHub账号:https://github.com/mtnljbydd(开源更多实用工具脚本及项目工程)


扫描二维码,在手机上阅读
文章目录


    收藏
    还没收到回复
    请先 登录 再回复