Skip to content

Pi 5: continuous Ethernet link flapping since EEE enabled by default in rpi-6.18.y (#7270), mostly with AVM Fritz!Box link partners #7511

Open

Description

@agners

Note: The report below was largely generated with AI assistance. I have read through it to verify that the claims are accurate and reflect what our users report in the Home Assistant OS issue tracker.

Describe the bug

Since Home Assistant OS moved from a rpi-6.12.y based kernel to rpi-6.18.y, we have received multiple reports of Raspberry Pi 5 devices whose onboard Ethernet link flaps continuously:

macb 1f00100000.ethernet end0: Link is Down
macb 1f00100000.ethernet end0: Link is Up - 1Gbps/Full - flow control off

This repeats every few seconds (in some cases starting within seconds after boot), with packet loss towards the default gateway and effectively unusable networking. Rolling back to the 6.12-based OS release restores a stable link on identical hardware, cabling and switch port.

Setting dtparam=eee=off resolves the problem on 6.18. This has been confirmed by three affected users, one of them with a full on/off/on cycle: flapping with EEE enabled, stable for two days with it disabled, flapping returned after re-enabling.

Disabling EEE on the link partner side also resolves the flapping: confirmed on Fritz!Box 7490 and 7590 (LAN port energy setting changed from "automatic" to "none") and on managed switches that offer an EEE toggle. Partners without such an option keep flapping unless EEE is disabled on the Pi.

Our 6.12-based releases used rpi-6.12.y at 89050b1, which still contained the eee-broken-1000t/eee-broken-100tx properties from #6900 — EEE was never negotiated there. rpi-6.18.y enables EEE by default on the RP1 GEM since #7270 (macb EEE/TX LPI support, BCM54213PE switched from AutogrEEEn to native EEE mode, eee_enabled_default = true with a 250 ms TX LPI timer; earlier testing round in #7251). This matches the observed behavior change exactly.

Affected setups (from our issue tracker)

Four users have reported the link flapping so far, one more with the same hardware combination is holding back the update in anticipation. Where the direct link partner is known:

  • AVM Fritz!Box 7590 — three users (at least two directly connected, no switch in between)
  • One of the four reproduced the flapping against a whole range of devices: TP-Link TL-SG608E, TP-Link TL-SG1016DE, TP-Link ER605, Netgear GS105NA, Fritz!Box 7490 and Fritz!Box 7590. This user verified the link behavior (LAN LED fully down and back up in ~5 s intervals, matching the dmesg pattern above) and confirmed that disabling EEE on either side — the Pi or a partner that offers an EEE setting — stops the flapping, while unmanaged partners without an EEE option keep flapping until EEE is disabled on the Pi.

AVM Fritz!Box devices are clearly overrepresented as link partner, but the last report suggests the problem is not limited to a single vendor's LPI handling: on that Pi, every EEE-capable partner tested triggered the flapping.

For scale: we have roughly 100 000 Raspberry Pi 5 installations on 6.18-based OS releases, so the overall incidence is low — most link partners appear to handle the newly negotiated EEE fine.

Environment

  • Raspberry Pi 5 Model B (one confirmed Rev 1.1, revision d04171)
  • Kernels: rpi-6.18.y 6.18.33 (stable_20260527) and 6.18.34 (stable_20260609)
  • Not reproducible on rpi-6.12.y (6.12.75, which contains the dts: cm5/pi5: Disable EEE on rp1 #6900 DT workaround)

Steps to reproduce

  1. Raspberry Pi 5 with an affected link partner (e.g. Fritz!Box 7590), rpi-6.18.y kernel with default EEE configuration
  2. Boot and run dmesg | grep "Link is" — the link flaps every few seconds
  3. Add dtparam=eee=off to config.txt and reboot — the link is stable

Additional context

Device(s)

Raspberry Pi 5

System

Home Assistant OS 18.0/18.1 (rpi-6.18.y 6.18.33 / 6.18.34, stable_20260527 / stable_20260609)

Activity

  1. nbuchwitz commented on Jul 21, 2026

    @nbuchwitz
    Contributor

    Does the behavior change with a lower / higher lpi timer value?

  2. XMaarten commented on Sep 2, 2026

    @XMaarten

    I can reproduce what appears to be another manifestation of this EEE issue on a Raspberry Pi 5, although in my case I do not see the continuous link flapping described in the original report.

    Environment

    • Raspberry Pi 5
    • Debian GNU/Linux 13 (trixie), Debian 13.6
    • Kernel: 6.18.39+rpt-rpi-2712 SMP PREEMPT Debian 1:6.18.39-1+rpt1 (2026-07-29) aarch64
    • Ethernet driver:
      driver: macb
      version: 6.18.39+rpt-rpi-2712
      bus-info: 1f00100000.ethernet
      
    • Link partner: Ubiquiti UniFi USW Flex Mini
    • Link: 1000 Mbps, Full Duplex, auto-negotiation enabled

    Symptoms

    With EEE enabled I consistently see substantial ICMP packet loss, typically around 5–20%, even when pinging the directly connected USW Flex Mini. The Ethernet link itself remains up at 1000 Mbps/full duplex; I have not observed the continuous link-down/link-up cycle described in the original report.

    The physical Ethernet statistics are clean:

    rx_frame_check_sequence_errors: 0
    rx_length_field_frame_errors: 0
    rx_symbol_errors: 0
    rx_alignment_errors: 0
    rx_resource_errors: 0
    rx_overruns: 0
    tx_carrier_sense_errors: 0
    q0_rx_dropped: 0
    q0_tx_dropped: 0
    

    Linux networking queues also do not show an obvious cause:

    IpInDiscards: 0
    UdpRcvbufErrors: 0
    TcpExtTCPBacklogDrop: 0
    TcpExtTCPRcvQDrop: 0
    

    fq_codel also reports 0 dropped packets.

    EEE/LPI was actively being used. Before disabling EEE, the NIC statistics included:

    rx_lpi_transitions: 4335627
    tx_lpi_transitions: 914108
    

    While continuously monitoring packet loss with fping, I disabled EEE at runtime and the packet loss then immediately disappeared and has remained at 0% so far.

    I had also already replaced the USW Flex Mini with another USW Flex Mini (including all the involved cables) before testing EEE, with no improvement.

    This suggests that the Pi 5 / RP1 macb EEE issue may also manifest as significant packet loss without actual link flapping, at least with a USW Flex Mini as the link partner.

  3. danackerson commented on Nov 7, 2026

    @danackerson

    Adding a data point that may narrow this down: on 6.18.60 the link flapping continues on my Pi 5 with EEE disabled on both ends, while the same setup was stable on 6.18.50.

    Setup

    • Raspberry Pi 5 Model B Rev 1.0 (d04170, raspberrypi,5-model-b), EEPROM 2026-10-30, Raspberry Pi OS trixie
    • Kernel 6.18.60+rpt-rpi-2712 (1:6.18.60-1+rpt1, Linux commit 0b41724521c9), previously 6.18.50+rpt-rpi-2712
    • macb + Broadcom BCM54213PE, 1000/Full
    • Link partner: AVM FRITZ!Box 7590 AX, direct cable, no switch in between

    Observations

    • 6.18.50: 0 carrier changes over the 7 days before the upgrade, according to node_exporter's node_network_carrier_changes_total. Kernel logs from that boot weren't kept, so this comes from metrics only.
    • 6.18.60: the first Link is Down came 21 s after boot (06:54:11 → 06:54:32 UTC). There were 209 carrier changes in the first ~28 h, in bursts lasting minutes, each drop ~3–4 s, separated by quiet periods of up to a few hours.
    • During one burst the TX queue also stalled for ~3 minutes, and the node lost networking for ~7 min:
      macb 1f00100000.ethernet eth0: NETDEV WATCHDOG: CPU: 1: transmit queue 0 timed out 5284 ms
      ... (33 messages, 08:35:10–08:37:57 UTC, up to 20480 ms+)
      
      That's the only TX-stall episode I've seen so far.
    • EEE off from boot (dtparam=eee=off; ethtool --show-eee now reports not supported), with EEE also off on the FRITZ!Box: ~53 link drops in the first 5 h after boot, in the same bursty pattern, then quiet for 11+ h so far. One short NETDEV WATCHDOG (5 s) during that window.
    • Other wired hosts on the same FRITZ!Box (including non-Pi ones on other kernels) had no link drops in the same period, apart from one event where the router reset every LAN port in turn.
    • Physical-layer counters are basically clean: rx_frame_check_sequence_errors: 2, rx_symbol_errors: 2, rx_jabbers: 1 over ~70M frames. Load is low (peak ~7 MB/s TX).

    The bcm2712 DTBs also changed between the 6.18.50 and 6.18.60 packages (bcm2712-rpi-5-b.dtb hash differs). I haven't checked whether the Ethernet/PHY nodes are affected.

    Possibly related: a Pi 4 (bcmgenet) on the same FRITZ!Box went from 0 to 19 carrier changes after the same 6.18.50 → 6.18.60 upgrade, and once renegotiated down to 100 Mb/s.

    So on 6.18.60 there seems to be a second cause of flapping besides EEE, or one that EEE was only making worse, and it came in between 6.18.50 and 6.18.60. I can't stay on 6.18.50 because of CVE-2026-98432, but I'm happy to test patches or a candidate kernel and collect more data (e.g. PHY register dumps or ethtool -S at flap time) if that helps.

  4. popcornmix commented on Nov 10, 2026

    @popcornmix
    Collaborator

    Claude:
    danackerson's report: flapping on 6.18.60 with EEE off
    Between 6.18.50 and 6.18.60, nothing that matters for the Pi 5 link changed:

    • No changes to the Broadcom PHY driver or the PHY core.
    • The macb changes are tidy-ups to its queue handling, timestamping and error paths.
    • One phylink change reorders how the PHY is attached when the interface comes up.
    • The only Pi 5 device tree change adds led-modes = <0 8>, which equals the driver's defaults, so it does nothing.
    • A Pi 4 on the same Fritz!Box also started flapping, and once dropped to 100 Mb/s. The Pi 4 driver shares none of the Pi 5 changes above.

    That points at something they share: the Fritz!Box (a FRITZ!OS update?), the cable or the router port. Worth asking them for their FRITZ!OS version history and to boot 6.18.50 again on the same setup to check.

    Also:

    • Nobody has answered nbuchwitz's question yet. Two tests would narrow it down:
      • ethtool --set-eee eth0 tx-lpi off: EEE is still agreed, but the Pi itself never goes idle. If the flapping stops, the Pi's sending side is at fault; if not, it's the router's idle mode or the PHY.
      • ethtool --set-eee eth0 tx-timer 1000000 (a longer idle timer, here 1 s), and a shorter one, to see if the flap rate changes.
  5. nbuchwitz commented on Nov 10, 2026

    @nbuchwitz
    Contributor

    Also worth testing if #7667 helps

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions