Hello everyone.

I’m getting a hard time with Qualcomm Atheros AR8151 onboard LAN with Debian. It usually drops to 100Mb/s and freezes the network altogether

Settings for enp1s0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 100Mb/s Duplex: Full Auto-negotiation: on Port: Twisted Pair PHYAD: 0 Transceiver: internal MDI-X: Unknown Supports Wake-on: pg Wake-on: d Current message level: 0x0000003f (63) drv probe link timer ifdown ifup Link detected: yes [ 3.004591] atl1c 0000:01:00.0 enp1s0: renamed from eth0

[ 37.754972] atl1c 0000:01:00.0: atl1c: enp1s0 NIC Link is Up<100 Mbps Full Duplex></br> [ 45.071291] atl1c 0000:01:00.0: atl1c: enp1s0 NIC Link is Up<100 Mbps Full Duplex> [ 45.799689] atl1c 0000:01:00.0: atl1c: enp1s0 NIC Link is Up<100 Mbps Full Duplex>

any tips of what can be done around here? I’m using kernel 6.12.111+deb13-amd64

  • miaowoo_lw@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    7
    ·
    6 hours ago

    The atl1c driver is the main suspect — it’s been flaky for over a decade, and “negotiates 100 Mb/s then freezes” is its signature failure mode. Things to try, roughly in order:

    1. PCIe ASPM / power management bugs — atl1c has known issues with ASPM. Test with pcie_aspm=off on the kernel cmdline; also try sudo ethtool --set-eee enp1s0 eee off if EEE is advertised.
    2. Force the link as a diagnostic: sudo ethtool -s enp1s0 speed 1000 duplex full autoneg off. If it holds at gigabit, you’ve confirmed it’s the autoneg path. (Revert afterward — forced mode without autoneg breaks link on some switches.)
    3. Watch dmesg at the moment of the freeze — if you see atl1c link-flap messages or DMA errors right before the network dies, that’s the driver wedging, not the cable. Check if a newer 6.12 point release helps, but the atl1c code is largely the same aging code it’s always been.
    4. Hardware reality check: it’s an auction box, so socket oxidation is a real possibility — the DeoxIT + scrub suggestion in the other comment is free and worth doing. But if it negotiates 100 regardless of cable and switch, the PHY or board trace is probably damaged.

    Honest recommendation: this is a 15-year-old board. A ~$10 Intel NIC (i210/i211, or a used Intel PCIe card) with the rock-solid igb/igc driver will save you more time than debugging atl1c ever will — it’ll negotiate gigabit all day.