[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.

1 Like

Here is what I’d do at this stage. We want to make sure we have a pure, unfettered install that is free of any customization to your network settings. If it is, continue.

See if the issue persists. If it does, it may be time to look at something else externally being a factor. But I suspect this firmware will help.

1 Like

Thanks so much! This resolved my wifi issue, where I could usually connect to my iPhone, but I couldn’t connect to my Orbi router. (AMD DIY Framework 13)

1 Like

I sort of don’t want to mess with it now that it’s working reliably! But, in the name of science, I’ll try to go through those steps and report back here. It’ll probably be a bit before I get to it, though.

1 Like

Fantastic!

There is a common saying I abide by - “If it’s not broken, don’t fix it.” As this is not a security concern, best to leave it alone. :slight_smile:

1 Like

I was thinking that I might just pickup a spare SSD and do a clean install of ubuntu there; I think you can get used 256gb ones for around $15 on ebay.

Definitely, big believer in having spare drives for testing and replication. :slight_smile:

1 Like