If it's on a card, ditch it and replace it with a better one. If not, and you've got a spare slot, buy a new card.
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil.
-
No spam.
-
Posts are to be related to self-hosting.
-
Don't duplicate the full text of your blog or readme if you're providing a link.
-
Submission headline should match the article title.
-
No trolling.
-
Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.
-
AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Dumb question, but have you ruled out the cable being bad or corrosion in the socket? Dropping to 100 is usually something bad with the cable.
no tdumb at all. I tried other cables, but I never got a fully cleanup on the socket itself. As it was an auction purchase, I guess some drops of deoxit and a good scrub won't make things any worse. Thanks!
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:
- Force the speed on the driver side before suspecting hardware. atl1c has had years of bugs around gigabit autoneg; you can pin the link with ethtool in a systemd unit:
[Service]
ExecStart=/usr/sbin/ethtool -s enp1s0 speed 100 duplex full autoneg off
If 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.
Does it persist if you change the cable, the device on the far side, the OS? What's in the log when it drops?
What are you plugged into?
I admit that at this very moment its running on a generic switch. I tried other cables, but no change.
That may be your problem. Do you have multiple 10G cards? Try doing a direct link between two machines. Auto MDIX will take care of the electrical connection but you will need to set static IPs in order to run a iperf3 test
Additionally, make sure you are using cat6/6a cables
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:
- PCIe ASPM / power management bugs — atl1c has known issues with ASPM. Test with
pcie_aspm=offon the kernel cmdline; also trysudo ethtool --set-eee enp1s0 eee offif EEE is advertised. - 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.) - 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.
- 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.
Did you really have to copy two slightly different AI answers into this thread?
Three 🙄
The atl1c driver is the culprit — it's been flaky for years, and 100 Mb/s lockups are its signature failure mode. Things to try, roughly in order:
- Force 1000/full with autoneg off as a test:
sudo ethtool -s enp1s0 speed 1000 duplex full autoneg off. If it holds, at least you've confirmed it's negotiation-related. (Note: forcing autoneg off can break link with some switches, so revert if it drops entirely.) - Disable PCIe ASPM — atl1c has known bugs with power management. Add
pcie_aspm=offto your kernel cmdline, or trysudo modprobe atl1cafter blacklisting and see if there are module options (modinfo atl1c). Also disable EEE if ethtool shows it:ethtool --set-eee enp1s0 eee off. - Check dmesg at the moment of the freeze — if you see
atl1c: ... link is up 100resets or DMA errors, that's the driver. Kernel 6.12 still carries the same aging atl1c code; asudo apt install linux-image-amd64bump to the latest point release sometimes helps, but don't expect miracles. - Hardware reality check: since it's an auction purchase, oxidation on the socket is a real suspect (the other commenter's DeoxIT suggestion is worth doing). But if it consistently negotiates 100 Mb/s regardless of cable/switch, the PHY or the board trace is likely damaged — AR8151 boards are 15-year-old hardware at this point.
Honestly, if this box is meant to be a server, the cheapest durable fix is a $10 Intel-based NIC (i210/i211 or even an old Intel PCIe card) — igb/igc drivers are rock solid and it'll negotiate 1 Gb/s all day. That's less time than you'll spend debugging atl1c.