[RESOLVED] AMD FW 13 wifi takes 2+ minutes to reconnect when waking from sleep with Ubuntu

Update - fix here: [RESOLVED] AMD FW 13 wifi takes 2+ minutes to reconnect when waking from sleep with Ubuntu - #7 by Nathan_Friedly


I just started trying out Ubuntu 22.04.3 LTS on my AMD 7640U Framework 13, and when it wakes from sleep, it takes a long time to reconnect wifi. I timed it just now and it was a touch over 2 minutes. Windows, by contrast, is basically ready to go by the time I have the lid opened.

Does anyone know why this is or have a good fix?

I was under the impression that it uses the higher-powered version of sleep specifically so that it can do things like resume the wifi connection nearly instantly (?)

(Also, windows will hibernate after a while, keeping the battery drain from getting too serious, whereas Ubuntu doesn’t seem to have a hibernate option built-in, and I haven’t yet tried any of the myriad of non-official ways I’ve found to enable it.)

Addendum: The other side is a Netgear R7800 running OpenWrt 22.03.5, configured with separate 2.4 & 5 GHz networks.
I have only configured the FW13 to connect to the 5 Ghz network, and I’ve noticed a couple of times during the 2-minute wait that it can see the 2.4 Ghz network, but not the 5Ghz one.

1 Like

Can you post the output of:

dmesg | grep wlp1s0

EDIT: please also check this thread, seems to be about the same problem:

EDIT2: and especially this one, near the end:

There’s mention of an updated mediatek firmware that should seemingly fix the problem, but its availability depends on your distro.

In the distro I use, opensuse tumbleweed, mediatek firmware files are under /lib/firmware/mediatek, and I saw that I have the fixed version installed: WIFI_MT7961_patch_mcu_1_2_hdr.bin.xz

1 Like

I’ve noticed the same thing in Windows when coming out of hibernation.

Please try updating the WLAN firmware. It helps other issues, might help this one too.

3 Likes

Here you go:

[    4.522044] mt7921e 0000:01:00.0 wlp1s0: renamed from wlan0
[   23.306873] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[   23.809304] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[   23.813369] wlp1s0: authenticated
[   23.816435] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[   23.826964] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=5)
[   23.852420] wlp1s0: associated
[   23.852488] wlp1s0: Limiting TX power to 20 (23 - 3) dBm as advertised by 08:02:8e:9e:ab:6b
[ 1064.106679] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[ 1579.233567] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[ 1579.272240] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[ 1579.276194] wlp1s0: authenticated
[ 1579.278915] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[ 1579.289322] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=5)
[ 1579.313677] wlp1s0: associated
[ 1587.424551] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[37544.677728] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[37544.716402] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[37544.720585] wlp1s0: authenticated
[37544.728638] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[37544.736341] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=5)
[37544.766378] wlp1s0: associated
[37566.384826] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[42317.970048] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[42318.009155] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[42318.013144] wlp1s0: authenticated
[42318.017370] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[42318.027169] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=9)
[42318.056183] wlp1s0: associated
[44493.916657] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[44503.791544] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[44503.825215] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[44503.829438] wlp1s0: authenticated
[44503.831663] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[44503.843058] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=9)
[44503.870941] wlp1s0: associated
[44526.544147] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[50582.059492] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[50582.095139] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[50582.099342] wlp1s0: authenticated
[50582.101712] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[50582.113148] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=8)
[50582.139473] wlp1s0: associated
[50606.804429] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[69969.320020] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[69969.356118] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[69969.360784] wlp1s0: authenticated
[69969.364893] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[69969.374898] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=9)
[69969.402697] wlp1s0: associated
[71337.752972] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[120996.423288] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[120996.458989] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[120996.462935] wlp1s0: authenticated
[120996.465735] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[120996.476153] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=4)
[120996.501750] wlp1s0: associated
[123130.263683] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[123447.718410] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[123447.754804] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[123447.759135] wlp1s0: authenticated
[123447.760122] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[123447.773511] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=4)
[123447.800865] wlp1s0: associated
[123455.082331] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[133640.676705] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[133640.712891] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[133640.717408] wlp1s0: authenticated
[133640.719544] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[133640.731590] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=5)
[133640.761755] wlp1s0: associated
[133663.654869] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[133985.458986] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[133985.495004] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[133985.499576] wlp1s0: authenticated
[133985.507180] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[133985.514236] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=5)
[133985.541621] wlp1s0: associated
[133985.847295] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[133993.692046] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[133993.727989] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[133993.732095] wlp1s0: authenticated
[133993.735094] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[133993.745550] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=5)
[133993.771194] wlp1s0: associated
[135084.042076] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[206422.457279] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[206422.494089] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[206422.498356] wlp1s0: authenticated
[206422.506755] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[206422.514440] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=5)
[206422.543022] wlp1s0: associated
[206776.642970] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[207057.034076] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[207057.070241] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[207057.074373] wlp1s0: authenticated
[207057.076576] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[207057.088245] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=5)
[207057.116159] wlp1s0: associated
[207889.777739] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[209932.680080] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[209932.716225] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[209932.720615] wlp1s0: authenticated
[209932.722832] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[209932.734225] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=4)
[209932.763188] wlp1s0: associated
[211359.043352] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[211669.410013] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[211669.446565] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[211669.450864] wlp1s0: authenticated
[211669.452641] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[211669.465148] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=4)
[211669.494404] wlp1s0: associated
[213097.800772] wlp1s0: deauthenticating from 08:02:8e:9e:ab:6b by local choice (Reason: 3=DEAUTH_LEAVING)
[263048.557686] wlp1s0: authenticate with 08:02:8e:9e:ab:6b
[263048.593719] wlp1s0: send auth to 08:02:8e:9e:ab:6b (try 1/3)
[263048.598357] wlp1s0: authenticated
[263048.602842] wlp1s0: associate with 08:02:8e:9e:ab:6b (try 1/3)
[263048.612665] wlp1s0: RX AssocResp from 08:02:8e:9e:ab:6b (capab=0x111 status=0 aid=5)
[263048.642889] wlp1s0: associated

Nothing jumps out at me, but maybe you’ll see something I didn’t.


I’ll see if I can figure out updating the firmware tomorrow, although it sounds like it’s going to end up in an automatic update to ubuntu at some point in the near future.

I wouldn’t say near. Ubuntu is notoriously slow at updating Linux firmware package.

1 Like

Ok, switching to iwd as described here seemed to make a big difference. For my first test, after waking from sleep, my wifi reconnected in only a few seconds!

That post is for arch, but ubuntu is pretty similar:

sudo apt update
sudo apt install iwd
sudo rm /etc/NetworkManager/system-connections/*.nmconnection
sudo nano /etc/NetworkManager/conf.d/wifi_backend.conf

Then paste in this config and save:

[device]
wifi.backend=iwd
wifi.iwd.autoconnect=yes

[main]
iwd-config-path=auto

And then reboot and manually connect to wifi once.

(Note: the rm command deletes all saved wifi networks, so you might want to make a backup first.)

I’ll try to remember to post another update in a week or two.

Exactly this. It’s slowly happening, but no ETA yet.

It’s been a couple of weeks, and this setup is still working great. The wifi consistently reconnects within a few seconds of the ubuntu booting or waking from sleep. I haven’t booted into windows at all in the last two weeks.