mii-tool是极简嵌入式系统中判断网线物理连通最轻量可靠的方式,直接读取phy芯片mii寄存器;执行mii-tool eth0,若输出“link ok”表明网线插牢、对端通电、phy正常,“no link”则物理层断开。

在没有 ethtool 的极简嵌入式系统(如基于旧内核的 BusyBox 环境、瑞芯微 RV1106、Allwinner H3/H2+/R16 等平台)中,mii-tool 是判断网线是否真正插好、对端是否通电最轻量且可靠的方式——它不依赖 IP 配置或驱动上层状态,直接读取 PHY 芯片的 MII 寄存器。
确认网卡是否支持 mii-tool
不是所有网卡都可用。它只适用于使用标准 MII 接口的百兆及以下以太网控制器,常见于:
- Realtek RTL8139 / RTL8101 / RTL8138
- VIA VT6102 / VT6105M
- 某些 Marvell 88E6018/88E6060 交换芯片配套 PHY
- 瑞芯微 RV1106 + RTL8211E / LAN8720 组合(需驱动正确加载)
若执行 mii-tool eth0 报错 SIOCGMIIPHY on 'eth0' failed: Resource temporarily unavailable,说明该网卡不支持 MII 访问(可能是千兆芯片、MDIO-only 或驱动未暴露 MII 接口),此时应换用 cat /sys/class/net/eth0/carrier(若内核支持)或检查 PHY 上电与指示灯。
用最简命令判断物理链路通断
日常排查只需一条命令:
mii-tool eth0
输出关键看两处:
- link ok → 物理链路已建立:网线插牢、对端设备加电、PHY 正常工作
- no link → 物理层断开:可能网线未插、水晶头松动、对端断电、交换机端口关闭、PHY 损坏或供电异常
注意:ifconfig eth0 up 或 ip link set eth0 up 成功 ≠ 物理连通;mii-tool 显示 no link 就代表“线没通”,和 IP 层无关。
插拔测试时实时观察链路变化
现场排查网线接触不良或端口故障,用监听模式:
mii-tool -w eth0
终端会持续打印带时间戳的状态,例如:
[12:34:05] eth0: link ok<br>[12:34:08] eth0: no link<br>[12:34:11] eth0: link ok
配合手动插拔网线,能直观验证是线缆问题还是设备端问题。无需额外工具,也不依赖日志服务。
辅助诊断协商异常(当 link ok 但通信不稳定)
如果 link ok 但 ping 不通或丢包高,可能是双工不匹配:
mii-tool -v eth0
重点查看:
-
negotiated xxx:当前协商结果(如
100baseTx-FD表示百兆全双工) - link partner:对端通告的能力,若为空或与本端不一致,说明协商失败
- autonegotiation complete:显示 “yes” 才算协商完成;若为 “no”,则链路虽通但速率/双工未定,易导致性能问题
此时可尝试强制重协商:mii-tool -r eth0,或临时指定模式调试(如 mii-tool -F 100baseTx-FD eth0),但仅限定位问题,不可长期使用。











