Recovery command for the wedged AQC113 ethernet on the Beelink SER10 MAX — PCI remove+rescan is the ONLY thing that works.
One-liner:
sudo modprobe -r atlantic && echo 1 | sudo tee /sys/bus/pci/devices/0000:c3:00.0/remove >/dev/null && sleep 3 && echo 1 | sudo tee /sys/bus/pci/rescan >/dev/null && sleep 3 && sudo modprobe atlantic
Same thing stepwise, if that’s easier to share:
sudo modprobe -r atlantic
echo 1 | sudo tee /sys/bus/pci/devices/0000:c3:00.0/remove
sleep 3
echo 1 | sudo tee /sys/bus/pci/rescan
sleep 3
sudo modprobe atlantic
VERIFY IT ACTUALLY WORKED — this part matters:
cat /sys/class/net/eno1/statistics/rx_packets # must be climbing, not 0
Do NOT trust carrier, operstate, ip link, or the physical link LED. In this
failure state all of them report a healthy 1000 Mb/s link while the datapath is
completely dead. A correct recovery shows rx_packets climbing within a few seconds
on a live LAN. A wedged NIC reads rx_packets as 18446744073709551615 (0xFFFF…,
i.e. the device isn’t answering MMIO at all).
WHAT DOES NOT WORK (all verified on this machine today):
- modprobe -r atlantic && modprobe atlantic alone — brings carrier up but
rx_packets stays 0 and tx_errors exceeds tx_packets; DHCP then fails with
ip-config-unavailable. This is the trap: it looks fixed and isn’t.
- PCIe function-level reset (echo flr > …/reset_method; echo 1 > …/reset)
- PCIe bus reset (echo bus > …/reset_method; echo 1 > …/reset)
- Unplugging/replugging the ethernet cable
- A normal reboot does work, but is unnecessary — remove+rescan is faster.
The PCI address 0000:c3:00.0 is stable across boots on this model, and the
interface is eno1. Adjust both if used on different hardware.