Frequent wifi disconnects

Hi,

I’m experiencing frequent wifi disconnects. The issue is significantly worse when I’m trying to connect to my 5GHz network, which is basically not usable as it disconnects every few seconds. However it also happens with the 2.4 GHz network.

I’m using the following hardware and driver:

02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8852AE 802.11ax PCIe Wireless Network Adapter
        Subsystem: Lenovo Device 4852
        Kernel driver in use: rtw89_8852ae
        Kernel modules: rtw89_8852ae

I’m on Tumbleweed 20250501.

Any hints on how I can diagnose the root cause of the issue?

Thanks!

Could be hardware, driver or the medium.

As the problem is more pronounced connecting to 5 GHz it looks to me that a medium problem is likely.
Can you share the output of nmcli dev wifi list? Use the command I use below to filter out BSSID/SSID:

> nmcli dev wifi list | perl -pe "s/(.{8}).{38}/\$1/"
IN-USE  MODE   CHAN  RATE        SIGNAL  BARS  SECURITY    
        Infra  4     130 Mbit/s  100     ▂▄▆█  WPA2        
        Infra  11    270 Mbit/s  65      ▂▄▆_  WPA2        
*       Infra  1     130 Mbit/s  59      ▂▄▆_  WPA2        
        Infra  4     270 Mbit/s  59      ▂▄▆_  WPA2        
        Infra  1     130 Mbit/s  45      ▂▄__  WPA2        
        Infra  1     130 Mbit/s  45      ▂▄__  WPA2 802.1X 
        Infra  1     130 Mbit/s  42      ▂▄__  WPA2        
        Infra  1     405 Mbit/s  39      ▂▄__  WPA2        
        Infra  1     270 Mbit/s  39      ▂▄__  WPA2        
        Infra  3     270 Mbit/s  39      ▂▄__  WPA1 WPA2   
        Infra  1     270 Mbit/s  35      ▂▄__  WPA2        
        Infra  1     130 Mbit/s  35      ▂▄__  WPA2 802.1X 
        Infra  1     130 Mbit/s  35      ▂▄__  WPA2        
        Infra  1     130 Mbit/s  35      ▂▄__  WPA2        
        Infra  6     540 Mbit/s  32      ▂▄__  WPA2 WPA3   
        Infra  8     270 Mbit/s  32      ▂▄__  WPA2        
        Infra  5     270 Mbit/s  29      ▂___  WPA2        
        Infra  6     405 Mbit/s  29      ▂___  WPA2        
        Infra  8     405 Mbit/s  29      ▂___  WPA1 WPA2   
        Infra  11    130 Mbit/s  29      ▂___  WPA2        
        Infra  1     540 Mbit/s  25      ▂___  WPA2 WPA3   
        Infra  1     270 Mbit/s  25      ▂___  WPA2        
        Infra  1     270 Mbit/s  25      ▂___  WPA2        
        Infra  6     405 Mbit/s  25      ▂___  WPA2

Here it is:

IN-USE  MODE   CHAN  RATE        SIGNAL  BARS  SECURITY 
        Infra  48    540 Mbit/s  95      ****  WPA2     
*       Infra  9     540 Mbit/s  74      ***   WPA2     
        Infra  3     270 Mbit/s  29      *     WPA2  

Wild guess: are you somewhere in the neighbourhood (les than 10 km) of an airfield with radar. You may find references to such events in the log of your modem/router.

Funnily enough I am close to a small airport, maybe 8km away :slight_smile: having said that, I used Pop OS until recently and it worked fine then (same laptop too). I haven’t used OpenSuse much but I had this issue since I installed it.

I am in about the same case. What is disconcerting, is that the problems do not happen for a long time, and then sudden I have connection problems for a week of two. And the logs of my Fritzbox router show radar problems.
My guess is that weather conditions might play a role …

For the 5 GHz band, the channels 52-144 are DFS channels what means that the access point must scan for radars and if it detects one move away from that channel.

If powerful radars are closely I guess it can cause interference but with 8km away I think that is highly unlikely.

IN-USE  MODE   CHAN  RATE        SIGNAL  BARS  SECURITY   
*       Infra  9     540 Mbit/s  74      ***   WPA2

Channel 9 is in the 2.4 GHz band and no DFS channel but the 2.4 GHz band is shared with Bluetooth and other wireless protocols. Do you have Bluetooth active?

Instead of channel 9 I would try 5G channel 36 or 48.

1 Like

I wouldn’t necessarily blame it on the radar. I live less than 2km away from the radar of a major German passenger airport. In the logs of my Fritz!Box I can see the radar literally chasing away my box. It seems like playing cops and robbers, but I never experience the slightest W-LAN issue. However, other hardware might be more sensitive to radar than AVM.

Thanks for the help, everyone!

So I changed the channel but it didn’t seem to have any effect. I found the following output from dmesg shortly after a disconnect. Could this be related to my problem?

[22746.096043] [  T68328] rtw89_8852ae 0000:02:00.0: timed out to flush queues
[22746.310341] [  T68328] rtw89_8852ae 0000:02:00.0: timed out to flush queues

I would watch the NetworkManager logging in a terminal and try to capture a disconnection/reconnection event…

sudo journalctl -fu NetworkManager

A quick search online shows similar discussions around the driver stability. One suggestion I’ve seen is load the driver with specific options - create “/etc/modprobe.d/70-rtw89.conf” with the following entry
options rtw89_pci disable_clkreq=y disable_aspm_l1=y disable_aspm_l1ss=y
It will take effect when the driver is unloaded and reloaded, or at next reboot. (BTW, don’t use /usr/lib/modprobe.d/… as described below, that’s not intended for system admin use, but for installed distro packages so could be changed during an update).

See how that goes.

References:

https://askubuntu.com/questions/1470612/hp-probook-455-g9-wireless-rtw98-driver-not-working
https://bbs.archlinux.org/viewtopic.php?pid=2102350#p2102350

This is the output of sudo journalctl -fu NetworkManager for what I think is a full connect-disconnect cycle. I changed the SSID, but please let me know if there is other info I should omit. This is for my 5GHz connection that, as shown disconnects pretty quickly.

May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.0875] device (wlp2s0): supplicant interface state: scanning -> inactive
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.0875] device (p2p-dev-wlp2s0): supplicant management interface state: scanning -> inactive
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.0879] policy: auto-activating connection 'my-5ghz-wifi' (81093f1f-f916-4287-ac06-c8f0bb5baaef)
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.0885] device (wlp2s0): Activation: starting connection 'my-5ghz-wifi' (81093f1f-f916-4287-ac06-c8f0bb5baaef)
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.0886] device (wlp2s0): state change: disconnected -> prepare (reason 'none', managed-type: 'full')
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.0888] manager: NetworkManager state is now CONNECTING
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1045] device (wlp2s0): set-hw-addr: reset MAC address to E0:0A:F6:5E:C5:9F (preserve)
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1481] device (wlp2s0): state change: prepare -> config (reason 'none', managed-type: 'full')
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1484] device (wlp2s0): Activation: (wifi) access point 'my-5ghz-wifi' has security, but secrets are required.
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1484] device (wlp2s0): state change: config -> need-auth (reason 'none', managed-type: 'full')
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1492] device (wlp2s0): supplicant interface state: inactive -> interface_disabled
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1493] device (p2p-dev-wlp2s0): supplicant management interface state: inactive -> interface_disabled
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1500] device (wlp2s0): state change: need-auth -> prepare (reason 'none', managed-type: 'full')
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1504] device (wlp2s0): state change: prepare -> config (reason 'none', managed-type: 'full')
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1507] device (wlp2s0): Activation: (wifi) connection 'my-5ghz-wifi' has security, and secrets exist.  No new secrets needed.
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1507] Config: added 'ssid' value 'my-5ghz-wifi'
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1507] Config: added 'scan_ssid' value '1'
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1507] Config: added 'bgscan' value 'simple:30:-70:86400'
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1507] Config: added 'key_mgmt' value 'WPA-PSK WPA-PSK-SHA256 FT-PSK SAE FT-SAE'
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1508] Config: added 'psk' value '<hidden>'
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1613] device (wlp2s0): supplicant interface state: interface_disabled -> inactive
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.1613] device (p2p-dev-wlp2s0): supplicant management interface state: interface_disabled -> inactive
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.2733] device (wlp2s0): supplicant interface state: inactive -> authenticating
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.2733] device (p2p-dev-wlp2s0): supplicant management interface state: inactive -> authenticating
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.2814] device (wlp2s0): supplicant interface state: authenticating -> associating
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.2814] device (p2p-dev-wlp2s0): supplicant management interface state: authenticating -> associating
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.4463] device (wlp2s0): supplicant interface state: associating -> 4way_handshake
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.4464] device (p2p-dev-wlp2s0): supplicant management interface state: associating -> 4way_handshake
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.4896] device (wlp2s0): supplicant interface state: 4way_handshake -> completed
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.4897] device (wlp2s0): Activation: (wifi) Stage 2 of 5 (Device Configure) successful. Connected to wireless network "emi"
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.4897] device (p2p-dev-wlp2s0): supplicant management interface state: 4way_handshake -> completed
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.5101] device (wlp2s0): state change: config -> ip-config (reason 'none', managed-type: 'full')
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.5108] dhcp4 (wlp2s0): activation: beginning transaction (timeout in 45 seconds)
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.5444] dhcp4 (wlp2s0): state changed new lease, address=192.168.8.134, acd pending
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.6872] dhcp4 (wlp2s0): state changed new lease, address=192.168.8.134
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.6883] policy: set 'my-5ghz-wifi' (wlp2s0) as default for IPv4 routing and DNS
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.7036] device (wlp2s0): state change: ip-config -> ip-check (reason 'none', managed-type: 'full')
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.7668] device (wlp2s0): state change: ip-check -> secondaries (reason 'none', managed-type: 'full')
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.7670] device (wlp2s0): state change: secondaries -> activated (reason 'none', managed-type: 'full')
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.7675] manager: NetworkManager state is now CONNECTED_SITE
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.7681] device (wlp2s0): Activation: successful, device activated.
May 25 09:54:55 localhost.localdomain NetworkManager[1579]: <info>  [1748130895.7688] manager: NetworkManager state is now CONNECTED_GLOBAL
May 25 09:55:23 localhost.localdomain NetworkManager[1579]: <info>  [1748130923.3784] device (wlp2s0): supplicant interface state: completed -> disconnected
May 25 09:55:23 localhost.localdomain NetworkManager[1579]: <info>  [1748130923.3787] device (p2p-dev-wlp2s0): supplicant management interface state: completed -> disconnected
May 25 09:55:23 localhost.localdomain NetworkManager[1579]: <info>  [1748130923.5146] device (wlp2s0): supplicant interface state: disconnected -> scanning
May 25 09:55:23 localhost.localdomain NetworkManager[1579]: <info>  [1748130923.5146] device (p2p-dev-wlp2s0): supplicant management interface state: disconnected -> scanning
May 25 09:55:27 localhost.localdomain NetworkManager[1579]: <info>  [1748130927.1828] device (wlp2s0): supplicant interface state: scanning -> authenticating
May 25 09:55:27 localhost.localdomain NetworkManager[1579]: <info>  [1748130927.1829] device (p2p-dev-wlp2s0): supplicant management interface state: scanning -> authenticating
May 25 09:55:27 localhost.localdomain NetworkManager[1579]: <info>  [1748130927.2867] device (wlp2s0): supplicant interface state: authenticating -> disconnected
May 25 09:55:27 localhost.localdomain NetworkManager[1579]: <info>  [1748130927.2867] device (p2p-dev-wlp2s0): supplicant management interface state: authenticating -> disconnected
May 25 09:55:27 localhost.localdomain NetworkManager[1579]: <info>  [1748130927.8325] device (wlp2s0): supplicant interface state: disconnected -> scanning
May 25 09:55:27 localhost.localdomain NetworkManager[1579]: <info>  [1748130927.8326] device (p2p-dev-wlp2s0): supplicant management interface state: disconnected -> scanning
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <warn>  [1748130938.4723] device (wlp2s0): link timed out.
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.4727] device (wlp2s0): state change: activated -> failed (reason 'ssid-not-found', managed-type: 'full')
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.4732] manager: NetworkManager state is now DISCONNECTED
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.5034] device (wlp2s0): set-hw-addr: set MAC address to C2:E2:D1:8D:C5:1F (scanning)
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <warn>  [1748130938.5472] device (wlp2s0): Activation: failed for connection 'my-5ghz-wifi'
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.5480] device (wlp2s0): supplicant interface state: scanning -> disconnected
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.5481] device (p2p-dev-wlp2s0): supplicant management interface state: scanning -> disconnected
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.5633] device (wlp2s0): state change: failed -> disconnected (reason 'none', managed-type: 'full')
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.5638] dhcp4 (wlp2s0): canceled DHCP transaction
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.5638] dhcp4 (wlp2s0): activation: beginning transaction (timeout in 45 seconds)
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.5638] dhcp4 (wlp2s0): state changed no lease
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.6256] device (wlp2s0): supplicant interface state: disconnected -> scanning
May 25 09:55:38 localhost.localdomain NetworkManager[1579]: <info>  [1748130938.6257] device (p2p-dev-wlp2s0): supplicant management interface state: disconnected -> scanning
May 25 09:55:42 localhost.localdomain NetworkManager[1579]: <info>  [1748130942.1293] device (wlp2s0): supplicant interface state: scanning -> disconnected
May 25 09:55:42 localhost.localdomain NetworkManager[1579]: <info>  [1748130942.1294] device (p2p-dev-wlp2s0): supplicant management interface state: scanning -> disconnected
May 25 09:55:45 localhost.localdomain NetworkManager[1579]: <info>  [1748130945.6197] device (wlp2s0): supplicant interface state: disconnected -> inactive
May 25 09:55:45 localhost.localdomain NetworkManager[1579]: <info>  [1748130945.6198] device (p2p-dev-wlp2s0): supplicant management interface state: disconnected -> inactive
May 25 09:55:45 localhost.localdomain NetworkManager[1579]: <info>  [1748130945.6210] policy: auto-activating connection 'my-5ghz-wifi' (81093f1f-f916-4287-ac06-c8f0bb5baaef)
May 25 09:55:45 localhost.localdomain NetworkManager[1579]: <info>  [1748130945.6215] device (wlp2s0): Activation: starting connection 'my-5ghz-wifi' (81093f1f-f916-4287-ac06-c8f0bb5baaef)
May 25 09:55:45 localhost.localdomain NetworkManager[1579]: <info>  [1748130945.6216] device (wlp2s0): state change: disconnected -> prepare (reason 'none', managed-type: 'full')
May 25 09:55:45 localhost.localdomain NetworkManager[1579]: <info>  [1748130945.6219] manager: NetworkManager state is now CONNECTING

Thanks, I will try this later on as well

Thanks for sharing that output - it certainly shows a disconnection event, and it may well be that the DFS channel temporarily blocked by radar detection (as others have already suggested), but it could also be due to the Wi-Fi driver itself. With respect to DFS channels / possible radar detection, examine the router log. Can you configure your router to use non-DFS channel perhaps?

Let us know how you get on with the driver options as well, in case that is causing the disconnections.

A couple of things to try that helped me in the past.

1 - if you’re using a WiFi 7 enabled router; try disabling WiFi 7 in your router’s settings

2 - there is neat little terminal app called wavemon it shows signal, noise level, SNR of your connection. With it running, try moving around your house to see if it improves / stabilizes

3 - if you’re using a WiFi network with a single SSID that covers all frequencies, you can ask your computer to only connect to the 2.4Ghz for example (longer range than 5Ghz).

Thanks for the log, two consecutive lines from the log:

<info>  [895.7688] manager: NetworkManager state is now CONNECTED_GLOBAL
<info>  [923.3784] device (wlp2s0): supplicant interface state: completed -> disconnected

Connected and 28 seconds later disconnected, 5 seconds after that:

<warn>  [938.4723] device (wlp2s0): link timed out.
<info>  [938.4727] device (wlp2s0): state change: activated -> failed (reason 'ssid-not-found', managed-type: 'full')

So it looks to me that the AP disappeared.

This could well be radar although that should only happen if you are 5G channels 52-144. If it happens, the AP is supposed to move to another channel and that can be done by sending a Channel Switch Announce message so AP and associated clients move to another channel. It does not seem to happen but to be sure you need to have the log of the AP, it could be the AP is doing the channel switch but the client does not understand it.

Better capture the log of the AP.

Would be also good to know what you do after a disconnect, how do you get connected again?

You probably have a smart phone with a data contract. Try to set up a hot spot and connect the computer to that. Place the phone close to the place the AP is, do you see disconnects with this hotspot connection?

On mobile hotspot

Your mobile’s data connection is very likely metered but as long as you only do browsing and audio podcasting data use will be very limited. Be careful with large “zypper dup”-s and video.

I fixed my problem by using a different router. It was weird though since the drop outs did not happen on other devices, only on the Opensuse laptop.

I changed the channels to a non-DFS channel. They were actually labelled in the router.

I also tried the config file. This actually made the situation for the 2.4G network worse, i.e. drop outs increased after rebooting with the config file.

I changed the router from an OpenWRT one to a stock asus and the drop outs stopped since then…

I guess I put to many systems I didn’t know enough about on top of each other (Opensuse and openwrt)… anyway it is working fine now :slight_smile:

Thanks everyone for the input and advice!

2 Likes