ethtool -i eth0可直接查看驱动名、版本、固件版本、总线地址等关键信息,不依赖内核日志或lspci;仅运行ethtool eth0仅显示链路状态,不显示驱动详情。

直接用 ethtool -i 就能查到驱动名、版本、固件、总线地址等关键信息,不需要翻内核日志或 lspci 猜型号。
查驱动信息必须加 -i 参数
只运行 ethtool eth0 不会显示驱动,它只输出链路协商状态。要看到 driver、version、firmware-version 这些字段,必须显式加 -i 选项:
-
ethtool -i eth0是标准写法;ethtool --driver eth0无效,会被忽略 - 输出中
driver字段是驱动模块名(如e1000e、igb、r8169),不是网卡芯片名 -
version是驱动模块编译版本,和内核版本强相关;firmware-version才反映 PHY 或 MAC 固件是否过旧 - 若
supports-eeprom-access: no,说明该驱动不支持读取 EEPROM,ethtool -e会报错
驱动不匹配时常见现象
当 ethtool -i 显示的驱动与硬件不兼容,最典型的信号是:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
Speed: Unknown!或Link detected: no即使物理连接正常 - 某些 Realtek 网卡用
r8169驱动时,ethtool -S中rx_missed_errors持续上涨,换r8168后归零 -
ethtool -t自检失败,尤其是Eeprom test (offline) 1—— 很可能是驱动未正确初始化 EEPROM 接口 - 输出中
supports-register-dump: no,但你知道这颗芯片本应支持,大概率是驱动阉割了寄存器访问功能
对比不同网卡的驱动输出差异
服务器网卡和桌面网卡在 ethtool -i 输出上区别明显,直接影响后续排障路径:
- Intel X710:
driver: i40e,supports-test: yes,supports-eeprom-access: yes,可放心跑ethtool -t和-e - Realtek RTL8111:
driver: r8169,supports-eeprom-access: no,supports-register-dump: yes,但ethtool -d常显示乱码 - VMware
vmxnet3:driver: vmxnet3,supports-statistics: yes,但ethtool -s设置速率会直接报错 —— 虚拟网卡不走 PHY 协商流程 - 如果
bus-info显示的是0000:00:1f.6这类 PCI 地址,说明是板载网卡;若是0000:02:00.0且driver是ixgbe,基本可断定是万兆独立网卡
驱动信息要结合 dmesg 一起看
ethtool -i 只告诉你“当前加载了什么”,但不解释“为什么加载这个”。真正定位驱动问题,得补一句:
-
dmesg | grep -i "eth0\|r8169\|igb"—— 查看内核加载驱动时有没有警告,比如PHY reset failed或firmware missing - 若
ethtool -i显示driver: forcedeth但dmesg里有ignoring PHY interrupt,说明驱动已放弃管理 PHY,ethtool -s强设参数大概率无效 - 某些老主板 BIOS 关闭了 PCIe ASPM,
dmesg会出现PCIe Bus Error,此时即使ethtool -i看起来正常,Speed也可能卡在 100Mbps
驱动版本和固件版本不一致时,ethtool -i 给出的信息就是唯一可信来源;别信 lspci -vv 里模糊的 “Ethernet controller” 描述,也别靠 modinfo 猜加载逻辑 —— 它只告诉你模块文件在哪,不告诉你实际用了哪个。


















