一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

麒麟操作系统如何查看网卡的驱动程序版本

时间:2026-08-06 08:02:49 编辑:袖梨 来源:一聚教程网

准确获取网卡驱动版本应优先使用ethtool -i命令:先ip a查网卡名(如ens33),再执行ethtool -i ens33,直接读取driver、version和firmware-version三字段;若version为空则用modinfo驱动名查version/vermagic;再以lspci -k交叉验证驱动绑定状态,并用dmesg排查初始化失败日志。

在麒麟操作系统中准确获取网卡驱动程序版本,是排查网络异常、验证硬件兼容性或升级驱动前的必要动作。仅靠lsmod或lspci只能看到模块名或设备绑定状态,无法确认实际加载的驱动版本号和固件版本,容易误判驱动是否真正生效。

用 ethtool -i 直接读取驱动与固件版本

这是唯一能同时拿到 driver 名称、version 字符串和 firmware-version 的可靠方法,其他命令都要拼凑且易漏关键字段。

第一步:打开终端,执行 ip a 查出目标网卡名称,例如 【ens33】【eth0】 ——注意别选 lo 或 docker0 这类虚拟接口。

第二步:运行 ethtool -i 网卡名,例如:ethtool -i ens33

第三步:在输出中紧盯三行:driver(如 r8169)、version(如 5.15.0-78-generic)、firmware-version(如 0.1.12)——【version 字段必须与当前内核 uname -r 输出一致,否则说明驱动未随内核更新】

如果输出里 driver 是 r8169,但网卡实为 RTL8111 且 Link detected: no,那大概率是驱动失配,不是网线问题。

用 modinfo 验证驱动模块元数据

当 ethtool -i 的 version 字段为空或显示 unknown 时,说明该驱动模块未嵌入版本字符串,需回退到内核模块层面查证。

先从 ethtool -i 输出中抄下 driver 名,比如 iwlwifi8852be

执行 modinfo 驱动名 | grep -i "version|vermagic",例如:modinfo iwlwifi | grep version

若输出含 version: 535.161.07,这就是模块编译时写死的版本;若只有 vermagic: 6.6.41-19.ky10.aarch64 SMP mod_unload,说明版本号未声明,需结合 dmesg 日志判断实际加载行为。

通过 lspci -k 确认物理设备与驱动绑定关系

这一步用于交叉验证:ethtool 告诉你“现在用的是什么”,lspci -k 告诉你“这个硬件到底绑定了哪个驱动”。两者不一致,说明存在驱动抢占或绑定失败。

方法一:执行 lspci -knn | grep -A 3 -B 1 "Network|Ethernet",快速定位网卡 PCI 地址与 Kernel driver in use 字段。

方法二:若已知 PCI 地址(如 0000:02:01.0),直接执行 lspci -k -s 0000:02:01.0,检查 【Kernel driver in use】 是否非空且与 ethtool -i 的 driver 字段完全一致。

若此处显示 Kernel modules: r8169 但无 in use 行,说明驱动模块存在却未激活,此时 ethtool -i 会报错“No such device”。

查 dmesg 日志确认驱动初始化成败

ethtool -i 只反映当前快照,dmesg 才记录驱动加载全过程。很多“看似正常”的驱动其实启动时就失败了,只是没立刻暴露。

执行 dmesg | grep -i "ens33|r8169|8852be|firmware",重点找含 failederrorno firmwareignoring PHY interrupt 的行。

如果看到 r8169 0000:02:01.0: Direct firmware load for rtl_nic/rtl8168g-3.fw failed,说明缺固件文件,得手动补上 /lib/firmware/rtl_nic/ 目录。

若 ethtool -i 显示 driver: forcedeth,但 dmesg 反复刷 ignoring PHY interrupt,说明驱动已放弃管理物理层,此时强行调参无效。

热门栏目