应以 cat /proc/driver/nvidia/version 输出为准确认当前运行的 nvidia 内核模块版本,因其直接读取模块元信息;nvidia-smi 显示的是 nvml 接口协商的 abi 版本,可能与实际加载模块不一致。

别信 nvidia-smi 顶部显示的 “Driver Version” —— 它可能不是当前内核实际加载的驱动版本。
查 NVIDIA 驱动版本:必须用 /proc/driver/nvidia/version
这是唯一能确认「当前正在运行的 NVIDIA 内核模块版本」的途径。它直接读取内核模块的元信息,不受缓存、X server 占用或权限限制影响。
- 运行
cat /proc/driver/nvidia/version,输出类似:NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.129.03 Tue Aug 22 17:12:12 UTC 2023 - 如果该文件不存在(
cat: /proc/driver/nvidia/version: No such file or directory),说明nvidia内核模块根本没加载 —— 此时lsmod | grep nvidia会为空,nvidia-smi也大概率报错或返回旧缓存值 -
nvidia-smi显示的 Driver Version 实际是它通过 NVML 接口“协商到的驱动 ABI 版本”,不是模块加载版本;升级驱动后未重启或未 reload 模块时,两者常不一致
nvidia-smi -q 能看什么、不能看什么
nvidia-smi -q 是最接近“全量信息”的命令,但它依然不等于内核模块真实版本。
- 它能可靠显示:
Driver Version(NVML 接口层版本)、CUDA Version(驱动支持的最高 CUDA Toolkit 版本)、GPU 型号、温度、显存使用等实时状态 - 它不能反映:
i2c固件加载状态、GSP firmware 版本、模块参数(如NVreg_EnableGpuFirmware=1是否生效) - 常见误判场景:
nvidia-smi -q显示 Driver Version 535.129.03,但cat /proc/driver/nvidia/version显示 525.85.12 —— 说明新驱动安装了但没 reload 模块,或系统 fallback 到旧模块
AMD / Intel 显卡驱动版本怎么看
开源驱动没有统一的“smi 工具”,得靠内核模块和 sysfs 直接查。
- AMD
amdgpu:运行cat /sys/module/amdgpu/version,输出如5.15.0-105-generic(注意:这是模块编译时绑定的内核版本号,不是 amdgpu-dkms 的包版本;实际驱动逻辑随内核更新) - Intel
i915:用modinfo i915 | grep ^version,输出如version: 1.6.0;但更关键的是看dmesg | grep i915是否有固件加载失败(如Failed to load guc firmware),这直接影响硬解和计算能力 - 所有开源驱动都不应依赖
glxinfo | grep "OpenGL renderer"判断驱动版本 —— 它只反映 Mesa 层的 OpenGL 实现,和底层内核模块版本完全脱钩
为什么 lspci -k 有时比图形工具更可信
图形界面工具(如 GNOME “关于”、neofetch)常从 Xorg 日志或 D-Bus 抽取信息,而这些路径可能因 session 类型(Wayland/X11)、权限或驱动初始化阶段未完成而缺失或陈旧。
- 推荐组合验证:
lspci -k -s $(lspci | grep -i vga | head -n1 | cut -d' ' -f1),重点看Kernel driver in use:和Kernel modules:两行 - 若
Kernel driver in use: nvidia但/proc/driver/nvidia/version不存在 → 模块加载失败(常见于 Secure Boot 启用未签名模块) - 若
Kernel driver in use: nouveau但你装了 NVIDIA 驱动 →nouveau未被正确黑名单,需检查/usr/lib/modprobe.d/blacklist-nouveau.conf并执行dracut -f
真正决定 GPU 功能是否可用的,从来不是某个命令的某一行输出,而是 /proc/driver/nvidia/version 是否存在、modinfo i915 的 version 字段是否匹配内核、以及 dmesg 里有没有固件加载失败的 warning —— 这些才是调试驱动问题时最先该盯住的地方。











