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


The AR8151 (atl1c driver) is a known-troublesome NIC, and what you’re seeing is a classic negotiation failure — it’s latching at 100Mb/s and then wedging under load. A few things worth trying, in order of effort:
[Service] ExecStart=/usr/sbin/ethtool -s enp1s0 speed 100 duplex full autoneg offIf it stops freezing at a pinned 100Mb/s, you’ve confirmed it’s the gigabit negotiation path in the PHY, not a cabling/switch issue (though do swap the cable first — a marginal Cat5e can cause exactly this downshift-then-die pattern).
Disable ASPM and check MSI interrupts. These onboard Atheros parts share bugs with power management: boot with
pcie_aspm=offand tryethtool -K enp1s0 gro off/ checkcat /proc/interrupts | grep atl1cfor interrupt storms. Frozen link with “Link detected: yes” often means the MAC thinks the link is up while the ring buffers have stopped being serviced.Try the newer atl1c from a backports kernel — Debian stable’s in-tree atl1c is old, and several link-stability fixes landed in later kernels. A live-USB of a recent distro is the fastest A/B test: if recent-kernel live media holds a gigabit link fine on the same hardware, it’s purely a driver version issue and a kernel upgrade fixes it.
The pragmatic fix: these chips cost pennies to replace. A used Intel i210/i340 PCIe NIC (~¥30-50 / $5-10 on the second-hand market) is the standard selfhosted escape hatch — Intel NICs are bulletproof under Linux and you stop burning evenings on a consumer PHY. Most of us in this community eventually did exactly that.
If it freezes even at 100Mb/s after the ethtool pin, that leans toward ASPM/power-management rather than negotiation, so do step 2 before buying hardware.