真正可靠的NVIDIA驱动版本应查cat /proc/driver/nvidia/version,它读取内核模块元信息;nvidia-smi仅显示接口版本,可能缓存或失效。

查 NVIDIA 驱动版本:别只信 nvidia-smi
很多用户运行 nvidia-smi 看到顶部显示的 “Driver Version: 535.129.03”,就以为这是当前加载的驱动版本——其实它只是 nvidia-smi 能“看到”的驱动接口版本,不等于内核模块实际加载的版本。
真正可靠的命令是:
$ cat /proc/driver/nvidia/version
它直接读内核模块的元信息,输出类似:
NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.129.03 Tue Aug 22 17:12:12 UTC 2023
-
/proc/driver/nvidia/version是唯一能确认当前正在运行的驱动版本的途径 - 如果该文件不存在,说明
nvidia内核模块根本没加载(lsmod | grep nvidia会为空) -
nvidia-smi可能因权限不足、X server 占用或驱动未完全初始化而返回旧缓存值
AMD GPU 怎么查驱动和固件状态
AMD 开源驱动(amdgpu)不提供类似 nvidia-smi 的统一工具,得拼几条命令看全貌:
- 查内核驱动版本:
cat /sys/module/amdgpu/version - 查显卡型号与启用状态:
lspci -k | grep -A 3 -i vga(注意看Kernel driver in use:行) - 查 GPU 当前负载/温度(需
radeontop或rocm-smi):rocm-smi --showtemp(仅 ROCm 环境)
常见误区是以为 glxinfo | grep "OpenGL renderer" 能反映驱动版本——它只显示 Mesa 的 OpenGL 实现层,和底层 amdgpu 模块版本无关。
Intel 核显驱动版本怎么看
Intel 核显用的是开源 i915 内核模块,没有独立驱动包,版本随内核更新。最直接的方式是:
- 查模块版本:
modinfo i915 | grep ^version - 查当前启用的渲染后端:
glxinfo | grep "OpenGL renderer"(显示Mesa Intel(R) Xe Graphics这类,说明正常走 i915 + Mesa) - 验证是否启用硬件加速:
vainfo(需安装intel-media-va-driver),失败则说明 VA-API 层没接上
注意:i915 模块从 Linux 5.4+ 开始默认启用 GUC/HUC 固件加载,若 dmesg | grep i915 出现 Failed to load guc firmware,虽不影响基本显示,但会影响视频硬解和部分计算性能。
通用 GPU 状态检查:为什么 lspci -v 比图形工具更可靠
图形界面工具(如 GNOME 的“关于”或第三方监控软件)常读取的是 Xorg 或 Wayland 的抽象层信息,容易漏掉真实硬件状态。终端里一条命令就能交叉验证:
$ lspci -v -s $(lspci | grep -i vga | head -n1 | cut -d' ' -f1)
重点关注三处:
-
Kernel driver in use:—— 真实绑定的内核模块名(nvidia/amdgpu/i915) -
Kernel modules:—— 可用但未加载的模块(比如写着nvidiafb,说明有冲突风险) -
Capabilities: [60] Power Management及后续节——确认 PCIe link speed 和宽度是否降级(如显示LnkSta: Speed 2.5GT/s, Width x4,而物理插槽是 x16,说明供电或 BIOS 设置异常)
这个命令不依赖 X server、不依赖用户态驱动库,只要系统能识别 PCIe 设备,结果就可信。遇到黑屏、休眠唤醒失败、GPU 计算卡死时,优先跑这一条。
驱动版本不是孤立数字,它必须和内核版本、固件版本、用户态库(CUDA / ROCm / Mesa)对齐。差一个环节,nvidia-smi 显示正常,但 torch.cuda.is_available() 就可能返回 False。











