Wi‑Fi Adapter Keeps Dropping

← Back

Wi‑Fi Adapter Keeps Dropping

Recently my Wi‑Fi adapter has started to upset me. It works initially, but after some time the connection drops, so I can't access my self-hosted services anymore. I had to SSH in and reboot the system to bring it back online. That is inconvenient, especially since I'm aiming for 99% uptime.

When dealing with hardware issues, read the kernel logs

sudo dmesg -w
[ 8659.831083] rtw_8822bu 8-1:1.0: failed to get tx report from firmware
[ 8660.007423] rtw_8822bu 8-1:1.0: error beacon valid
[ 8660.007652] rtw_8822bu 8-1:1.0: failed to download rsvd page
[ 8660.007904] rtw_8822bu 8-1:1.0: failed to download firmware
[ 8660.010121] rtw_8822bu 8-1:1.0: leave idle state failed
[ 8660.013607] rtw_8822bu 8-1:1.0: failed to leave ips state
[ 8660.013628] rtw_8822bu 8-1:1.0: failed to leave idle state

Here, it seems like the Wi‑Fi dongle driver is failing to load firmware or leave low-power state.

Driver reload

Tried reloading the driver and bringing the interface up:

sudo modprobe -r rtw_8822bu
sudo modprobe rtw_8822bu
sudo ip link set wlp45s0f3u1 up

Checked the logs once again:

sudo dmesg -T | tail -n 50
usbcore: deregistering interface driver rtw_8822bu
[Thu May  7 15:19:42 2026] usb 8-1: reset SuperSpeed USB device number 2 using xhci_hcd
[Thu May  7 15:19:46 2026] rtw_8822bu 8-1:1.0: Firmware version 30.20.0, H2C version 14
[Thu May  7 15:19:46 2026] usbcore: registered new interface driver rtw_8822bu
[Thu May  7 15:19:46 2026] rtw_8822bu 8-1:1.0 wlp45s0f3u1: renamed from wlan0
[Thu May  7 15:19:53 2026] wlp45s0f3u1: authenticate with 0c:9d:92:54:a3:d4 (local address=d0:37:45:9f:fd:64)
[Thu May  7 15:19:53 2026] wlp45s0f3u1: send auth to 0c:9d:92:54:a3:d4 (try 1/3)
[Thu May  7 15:19:53 2026] wlp45s0f3u1: authenticated
[Thu May  7 15:19:53 2026] wlp45s0f3u1: associate with 0c:9d:92:54:a3:d4 (try 1/3)
[Thu May  7 15:19:53 2026] wlp45s0f3u1: RX AssocResp from 0c:9d:92:54:a3:d4 (capab=0x1011 status=0 aid=4)
[Thu May  7 15:19:53 2026] wlp45s0f3u1: associated
[Thu May  7 15:19:53 2026] wlp45s0f3u1: Limiting TX power to 30 (30 - 0) dBm as advertised by 0c:9d:92:54:a3:d4

It is back online.

What was tried

  • Reinstalled the driver
  • Blacklisted the kernel-supplied driver
  • Considered disabling USB auto-suspension

Update (8/28/26)

Disable USB suspension by adding this to the boot config:

usbcore.autosuspend=-1

Also:

echo ”options rtw89_core disable_ps_mode=y” | sudo tee -a /etc/modprobe.d/70-rtw89.conf
echo 'options usbcore autosuspend=-1' | sudo tee /etc/modprobe.d/usb-autosuspend.conf

https://bbs.archlinux.org/viewtopic.php?id=286109

Follow-up

None of this has worked:

sudo tee /etc/systemd/system/ping-google.service >/dev/null <<'EOF'
[Unit]
Description=Ping google.com once

[Service]
Type=oneshot
ExecStart=/bin/ping -c 1 google.com
EOF
sudo tee /etc/systemd/system/ping-google.timer >/dev/null <<'EOF'
[Unit]
Description=Run ping-google every minute

[Timer]
OnBootSec=1min
OnUnitActiveSec=1min
Unit=ping-google.service

[Install]
WantedBy=timers.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now ping-google.timer