ethtool -i是排查驱动不兼容致死机的首选命令,可直接获取driver、version、firmware-version三项关键信息,无需依赖dmesg或lspci;必须加-i参数,--driver无效;结合dmesg | grep -i "网卡名\|驱动名\|firmware"验证报错。

直接用 ethtool -i 就能快速定位驱动和固件是否过旧,这是排查因驱动不兼容导致系统死机的第一步。它不依赖内核日志或硬件扫描,输出明确、可比性强,特别适合在服务器卡死后重启进单用户模式快速诊断。
确认网卡设备名并运行标准命令
先查清你要检查的网卡名:
- 用 ip -br a 或 ls /sys/class/net/ 列出所有接口,排除 lo、veth、docker0 等非物理网卡
- 常见物理名有 enp0s3、ens33、eno1、em1、eth0(较老系统)等
- 执行 ethtool -i 网卡名,例如:ethtool -i ens33
注意:只输 ethtool ens33 不会显示驱动信息,必须加 -i 参数;--driver 无效,会被忽略。
重点看 driver、version 和 firmware-version 字段
输出中这三项最关键:
- driver:驱动模块名(如 igb、e1000e、r8169),不是芯片型号。Realtek RTL8111 用 r8169 驱动就容易出问题
- version:驱动编译版本,和内核强绑定。比如 5.4.0-k 表示为 5.4 内核编译,若你用的是 6.6 内核却显示老版本号,说明驱动未随内核更新
- firmware-version:PHY 或 MAC 固件版本,格式常为 1.56, 0x80000acf, 14.5.8。第一个数字是主版本,低于厂商推荐值(如 Intel 推荐 ≥6.80)即属过旧
结合 dmesg 判断是否真因驱动引发死机
ethtool -i 告诉你“现在加载了什么”,dmesg 才解释“为什么加载这个”以及有没有报错:
- 运行 dmesg | grep -i "ens33\|igb\|r8169\|firmware"
- 重点关注:firmware missing、PHY reset failed、ignoring PHY interrupt、PCIe Bus Error
- 若出现 link down 反复刷屏,或 rx_missed_errors 持续飙升(尤其 Realtek + r8169 组合),基本可锁定驱动不匹配
驱动过旧的典型表现与应对方向
以下现象出现时,升级驱动或换驱动往往是最快解法:
- Link detected: no 或 Speed: Unknown! —— 物理连接正常但无法协商,r8169 常见,换 r8168 驱动即可恢复
- ethtool -t 自检失败,尤其是 Eeprom test (offline) 1 —— 驱动未初始化 EEPROM 接口,多见于老旧 igb/e1000e
- supports-eeprom-access: no 但芯片本应支持 —— 驱动功能被阉割,需升级到新版内核或打补丁驱动
- 服务器频繁硬重启、kernel panic 中含 netdev 或 igb_timeout 字样 —— 直接指向驱动层异常
确认问题后,优先从发行版源升级内核和 firmware 包;若无效,再考虑手动安装厂商提供的最新驱动(如 Intel 的 i40e、igb 更新包,或 Realtek 官方 r8168 DKMS 包)。



















