networking
system_error
ai_generated
partial
ethtool: Link detected: no (autonegotiation failed) on eth0
ID: networking/ethtool-autoneg-failure
75%Fix Rate
85%Confidence
1Evidence
2024-05-12First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| ethtool 5.10-6.10 | active | — | — | — |
| Linux kernel 5.10-6.8 | active | — | — | — |
| Intel I350/i40e drivers 5.x-6.x | active | — | — | — |
| Broadcom bnxt_en driver | active | — | — | — |
| Mellanox mlx5 driver | active | — | — | — |
Root Cause
The Ethernet interface failed to establish a link due to autonegotiation failure, typically caused by mismatched speed/duplex settings between the NIC and the switch port, or a faulty cable/connector.
generic中文
以太网接口因自动协商失败而无法建立链路,通常由NIC和交换机端口之间的速度/双工设置不匹配,或电缆/连接器故障引起。
Official Documentation
https://www.kernel.org/doc/html/latest/networking/ethtool.htmlWorkarounds
-
80% success Check cable and connection: use `ethtool eth0` to see current settings, then test with a known-good cable. Replace if faulty.
Check cable and connection: use `ethtool eth0` to see current settings, then test with a known-good cable. Replace if faulty.
-
75% success Force both sides to the same speed/duplex: on Linux, `ethtool -s eth0 speed 1000 duplex full autoneg off` and configure the switch port to 1000/full. Verify with `ethtool eth0`.
Force both sides to the same speed/duplex: on Linux, `ethtool -s eth0 speed 1000 duplex full autoneg off` and configure the switch port to 1000/full. Verify with `ethtool eth0`.
-
70% success If autoneg is required, ensure both sides support the same capabilities: update NIC firmware or driver, and verify switch port configuration (e.g., `show interfaces status` on Cisco).
If autoneg is required, ensure both sides support the same capabilities: update NIC firmware or driver, and verify switch port configuration (e.g., `show interfaces status` on Cisco).
中文步骤
Check cable and connection: use `ethtool eth0` to see current settings, then test with a known-good cable. Replace if faulty.
Force both sides to the same speed/duplex: on Linux, `ethtool -s eth0 speed 1000 duplex full autoneg off` and configure the switch port to 1000/full. Verify with `ethtool eth0`.
If autoneg is required, ensure both sides support the same capabilities: update NIC firmware or driver, and verify switch port configuration (e.g., `show interfaces status` on Cisco).
Dead Ends
Common approaches that don't work:
-
Forcing speed/duplex on only one side (e.g., NIC set to 1000/full, switch set to auto)
85% fail
Autonegotiation requires both sides to have matching settings; forcing one side while leaving the other on auto causes a duplex mismatch, leading to packet loss or no link.
-
Replacing the NIC without testing the cable or switch port
60% fail
The issue may be a bad cable or switch port; replacing the NIC wastes time and resources.
-
Setting the interface to a lower speed (e.g., 100 Mbps) without verifying switch support
70% fail
The switch port may not support 100 Mbps or may have a different configuration, causing the same failure.