首先确认显卡型号与绑定驱动模块,执行lspci -vnn | grep -A 12 "VGA compatible controller"并查看【Kernel driver in use】字段;若为空则驱动未加载。

在银河麒麟系统中确认显卡驱动是否正确加载、版本是否匹配,是解决图形界面卡顿、OpenGL渲染失败或AI框架报错的第一步。若执行nvidia-smi提示“NVIDIA-SMI has failed”,或glxinfo | grep OpenGL报错“unable to open display”,说明驱动未就绪或版本不兼容,必须立即验证当前绑定的驱动模块及其版本信息。
确认显卡型号与绑定驱动模块
这一步决定后续所有查询路径是否有效——如果硬件未被识别,modinfo和nvidia-smi都将返回空或错误结果。
1、打开终端,执行:lspci -vnn | grep -A 12 "VGA compatible controller"
2、在输出中定位【Kernel driver in use】字段,其后内容即为当前生效的驱动名(如nvidia、i915、amdgpu或jm7201);若该字段为空或显示none,说明驱动未加载,跳过后续步骤,先排查硬件识别问题。
3、补充验证:执行sudo lshw -C display 2>/dev/null | grep -E "product|driver",检查product(硬件型号)与configuration: driver=xxx是否一致。不一致则表明驱动绑定异常。
读取驱动模块版本号
内核驱动以模块形式运行,modinfo直接读取模块二进制头中的版本字符串,结果最权威,适用于所有驱动类型。
方法一:使用驱动名查版本
1、根据上一步确认的驱动名(例如nvidia),执行:modinfo nvidia | grep -i "version\|vermagic"
2、若输出含version:行(如version: 535.161.07),该值即为驱动模块版本;若仅出现vermagic而无version,说明该模块未嵌入版本字段,需换用其他方法。
方法二:NVIDIA专用接口(仅限闭源驱动)
执行:nvidia-smi --query-gpu=driver_version --format=csv,noheader,nounits,该命令绕过内核模块,直接调用NVIDIA用户态库,返回值更贴近实际生效版本。
验证OpenGL暴露版本(驱动实际生效状态)
glxinfo触发GPU初始化流程,其返回的OpenGL version string反映驱动与X Server协商后的最终能力,是判断3D加速是否启用的关键依据。
第一步:确保已安装mesa-utils
执行:sudo apt install -y mesa-utils,否则glxinfo命令不存在。
第二步:运行OpenGL能力检测
执行:glxinfo | grep "OpenGL version string",输出形如OpenGL version string: 4.6.0 NVIDIA 535.161.07,其中末尾数字即为驱动版本,与modinfo结果应一致;若版本号缺失或显示Mesa字样,说明NVIDIA驱动未接管OpenGL栈,仍由开源Mesa软件渲染。
第三步:快速判断硬件加速是否启用
执行:glxinfo | grep "direct rendering",若返回direct rendering: Yes,表示GPU硬件加速已启用;若为No,即使驱动版本正确,图形性能也严重受限。
国产GPU特殊路径:读取固件级驱动版本
景嘉微JM系列等国产GPU不走标准modinfo路径,其驱动版本常固化在/proc虚拟文件中,需单独访问。
1、检查驱动是否加载:lsmod | grep jm,若有jm7201或jm9201输出,说明驱动已就绪。
2、读取固件版本:cat /proc/gpuinfo_0 2>/dev/null | grep -i "firmware\|version",部分版本会直接显示Firmware Version: V1.2.3.4。
3、若/proc/gpuinfo_0不存在,尝试:dmesg | grep -i "jm\|gpu" | tail -5,内核启动日志中常含驱动加载时打印的版本信息。


















