Mediatek wifi card completely drops out

Which Linux distro are you using? Fedora KDE Spin

Which release version? 41
(if rolling release without a release version, skip this question)

(If rolling release, last date updated?)

Which kernel are you using? 6.12.7-200.fc41.x86_64 (64-bit)

Which BIOS version are you using? 3.05

Which Framework Laptop 16 model are you using? AMD Ryzen™ 7840 w/ 7700S GPU Module

Wifi module Mediatek MT7922 (stock)

Starting earlier this week, my wifi has been dropping out. A notification pops up announcing that my connection has been deactivated, and any attempts to reconnect to it fail. After a short amount of time, opening the Networks taskbar icon results in no SSID entries, including a Wireguard VPN connection I have saved, which is unusual because that usually sticks around even if no connections are available. I did notice, however, that I can still connect to my phone as a hotspot through bluetooth, and all other bluetooth devices behave normally while in this state.

Simply disabling and re-enabling wifi does not resolve the issue, nor does logging out and logging back in, I have to fully reboot the laptop to get wifi back.

The timing of when wifi drops is unpredictable, but seems to always happen if the laptop is left on long enough.

I’m attaching the relevant portion of journalctl for a session affected by this issue. The issue begins at 14:27:29.

Jan 04 14:27:02 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-51 noise=9999 txrate=960700
Jan 04 14:27:05 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-51 noise=9999 txrate=864800
Jan 04 14:27:08 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-52 noise=9999 txrate=720600
Jan 04 14:27:11 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-53 noise=9999 txrate=864800
Jan 04 14:27:14 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-53 noise=9999 txrate=720600
Jan 04 14:27:17 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-52 noise=9999 txrate=864800
Jan 04 14:27:20 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-47 noise=9999 txrate=864800
Jan 04 14:27:23 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-46 noise=9999 txrate=864800
Jan 04 14:27:26 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-47 noise=9999 txrate=864800
Jan 04 14:27:29 zenwork7840 wpa_supplicant[1475]: wlp4s0: SME: Trying to authenticate with 24:e5:0f:48:8d:6f (SSID='Enterprise' freq=6935 MHz)
Jan 04 14:27:29 zenwork7840 kernel: wlp4s0: disconnect from AP 24:e5:0f:48:8d:6b for new auth to 24:e5:0f:48:8d:6f
Jan 04 14:27:29 zenwork7840 kernel: wlp4s0: authenticate with 24:e5:0f:48:8d:6f (local address=be:84:c4:53:0e:2c)
Jan 04 14:27:29 zenwork7840 kernel: wlp4s0: send auth to 24:e5:0f:48:8d:6f (try 1/3)
Jan 04 14:27:29 zenwork7840 NetworkManager[1404]: <info>  [1736022449.6612] device (wlp4s0): supplicant interface state: completed -> authenticating
Jan 04 14:27:29 zenwork7840 NetworkManager[1404]: <info>  [1736022449.6614] device (p2p-dev-wlp4s0): supplicant management interface state: completed -> authenticating
Jan 04 14:27:29 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD
Jan 04 14:27:29 zenwork7840 wpa_supplicant[1475]: wlp4s0: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=US
Jan 04 14:27:32 zenwork7840 kernel: wlp4s0: send auth to 24:e5:0f:48:8d:6f (try 2/3)
Jan 04 14:27:34 zenwork7840 kernel: wlp4s0: aborting authentication with 24:e5:0f:48:8d:6f by local choice (Reason: 3=DEAUTH_LEAVING)
Jan 04 14:27:35 zenwork7840 wpa_supplicant[1475]: wlp4s0: BSSID 24:e5:0f:48:8d:6f ignore list count incremented to 3, ignoring for 60 seconds
Jan 04 14:27:35 zenwork7840 NetworkManager[1404]: <info>  [1736022455.8020] device (wlp4s0): supplicant interface state: authenticating -> disconnected
Jan 04 14:27:35 zenwork7840 NetworkManager[1404]: <info>  [1736022455.8020] device (p2p-dev-wlp4s0): supplicant management interface state: authenticating -> disconnected
Jan 04 14:27:35 zenwork7840 NetworkManager[1404]: <info>  [1736022455.9020] device (wlp4s0): supplicant interface state: disconnected -> scanning
Jan 04 14:27:35 zenwork7840 NetworkManager[1404]: <info>  [1736022455.9020] device (p2p-dev-wlp4s0): supplicant management interface state: disconnected -> scanning
Jan 04 14:27:50 zenwork7840 NetworkManager[1404]: <warn>  [1736022470.9700] device (wlp4s0): link timed out.
Jan 04 14:27:50 zenwork7840 NetworkManager[1404]: <info>  [1736022470.9702] device (wlp4s0): state change: activated -> failed (reason 'ssid-not-found', managed-type: 'full')
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Interface wlp4s0.IPv6 no longer relevant for mDNS.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Leaving mDNS multicast group on interface wlp4s0.IPv6 with address fdcf:109d:d6ce:f52e:3d86:c032:2484:d363.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Interface wlp4s0.IPv4 no longer relevant for mDNS.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Leaving mDNS multicast group on interface wlp4s0.IPv4 with address 192.168.86.30.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Withdrawing address record for fdcf:109d:d6ce:f52e:3d86:c032:2484:d363 on wlp4s0.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Withdrawing address record for 192.168.86.30 on wlp4s0.
Jan 04 14:27:51 zenwork7840 NetworkManager[1404]: <info>  [1736022471.0416] device (wlp4s0): set-hw-addr: set MAC address to E2:36:83:C8:0E:14 (scanning)
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Joining mDNS multicast group on interface wlp4s0.IPv4 with address 192.168.86.30.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: New relevant interface wlp4s0.IPv4 for mDNS.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Registering new address record for 192.168.86.30 on wlp4s0.IPv4.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Joining mDNS multicast group on interface wlp4s0.IPv6 with address fe80::239f:3093:89c5:bb15.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: New relevant interface wlp4s0.IPv6 for mDNS.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Registering new address record for fe80::239f:3093:89c5:bb15 on wlp4s0.*.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Leaving mDNS multicast group on interface wlp4s0.IPv6 with address fe80::239f:3093:89c5:bb15.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Joining mDNS multicast group on interface wlp4s0.IPv6 with address fdcf:109d:d6ce:f52e:3d86:c032:2484:d363.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Registering new address record for fdcf:109d:d6ce:f52e:3d86:c032:2484:d363 on wlp4s0.*.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Withdrawing address record for fe80::239f:3093:89c5:bb15 on wlp4s0.
Jan 04 14:27:51 zenwork7840 NetworkManager[1404]: <warn>  [1736022471.1048] device (wlp4s0): Activation: failed for connection 'Enterprise'
Jan 04 14:27:51 zenwork7840 NetworkManager[1404]: <info>  [1736022471.1053] device (wlp4s0): supplicant interface state: scanning -> disconnected
Jan 04 14:27:51 zenwork7840 NetworkManager[1404]: <info>  [1736022471.1053] device (p2p-dev-wlp4s0): supplicant management interface state: scanning -> disconnected
Jan 04 14:27:51 zenwork7840 NetworkManager[1404]: <info>  [1736022471.1194] device (wlp4s0): state change: failed -> disconnected (reason 'none', managed-type: 'full')
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Withdrawing address record for fdcf:109d:d6ce:f52e:3d86:c032:2484:d363 on wlp4s0.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Leaving mDNS multicast group on interface wlp4s0.IPv6 with address fdcf:109d:d6ce:f52e:3d86:c032:2484:d363.
Jan 04 14:27:51 zenwork7840 NetworkManager[1404]: <info>  [1736022471.1196] dhcp4 (wlp4s0): canceled DHCP transaction
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Joining mDNS multicast group on interface wlp4s0.IPv6 with address fe80::239f:3093:89c5:bb15.
Jan 04 14:27:51 zenwork7840 NetworkManager[1404]: <info>  [1736022471.1196] dhcp4 (wlp4s0): activation: beginning transaction (timeout in 45 seconds)
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Registering new address record for fe80::239f:3093:89c5:bb15 on wlp4s0.*.
Jan 04 14:27:51 zenwork7840 NetworkManager[1404]: <info>  [1736022471.1196] dhcp4 (wlp4s0): state changed no lease
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Withdrawing address record for fe80::239f:3093:89c5:bb15 on wlp4s0.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Leaving mDNS multicast group on interface wlp4s0.IPv6 with address fe80::239f:3093:89c5:bb15.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Interface wlp4s0.IPv6 no longer relevant for mDNS.
Jan 04 14:27:51 zenwork7840 wpa_supplicant[1475]: wlp4s0: Reject scan trigger since one is already pending
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Withdrawing address record for 192.168.86.30 on wlp4s0.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Leaving mDNS multicast group on interface wlp4s0.IPv4 with address 192.168.86.30.
Jan 04 14:27:51 zenwork7840 avahi-daemon[1174]: Interface wlp4s0.IPv4 no longer relevant for mDNS.
Jan 04 14:27:51 zenwork7840 systemd-resolved[1105]: wlp4s0: Bus client reset search domain list.
Jan 04 14:27:51 zenwork7840 systemd-resolved[1105]: wlp4s0: Bus client set default route setting: no
Jan 04 14:27:51 zenwork7840 systemd-resolved[1105]: wlp4s0: Bus client reset DNS server list.
Jan 04 14:27:51 zenwork7840 NetworkManager[1404]: <info>  [1736022471.1425] device (wlp4s0): supplicant interface state: disconnected -> scanning
Jan 04 14:27:51 zenwork7840 NetworkManager[1404]: <info>  [1736022471.1425] device (p2p-dev-wlp4s0): supplicant management interface state: disconnected -> scanning
Jan 04 14:28:17 zenwork7840 NetworkManager[1404]: <info>  [1736022497.3729] device (wlp4s0): supplicant interface state: scanning -> disconnected
Jan 04 14:28:17 zenwork7840 NetworkManager[1404]: <info>  [1736022497.3731] device (p2p-dev-wlp4s0): supplicant management interface state: scanning -> disconnected
Jan 04 14:28:43 zenwork7840 NetworkManager[1404]: <info>  [1736022523.6317] device (wlp4s0): supplicant interface state: disconnected -> inactive
Jan 04 14:28:43 zenwork7840 NetworkManager[1404]: <info>  [1736022523.6317] device (p2p-dev-wlp4s0): supplicant management interface state: disconnected -> inactive
Jan 04 14:29:56 zenwork7840 wpa_supplicant[1475]: wlp4s0: Reject scan trigger since one is already pending
Jan 04 14:30:28 zenwork7840 wpa_supplicant[1475]: wlp4s0: Reject scan trigger since one is already pending
Jan 04 14:30:39 zenwork7840 wpa_supplicant[1475]: wlp4s0: Reject scan trigger since one is already pending
Jan 04 14:30:49 zenwork7840 wpa_supplicant[1475]: wlp4s0: Reject scan trigger since one is already pending
Jan 04 14:31:06 zenwork7840 wpa_supplicant[1475]: wlp4s0: Reject scan trigger since one is already pending
Jan 04 14:33:12 zenwork7840 NetworkManager[1404]: <info>  [1736022792.0404] device (wlp4s0): set-hw-addr: set MAC address to CA:A9:7D:43:CF:05 (scanning)
Jan 04 14:33:12 zenwork7840 NetworkManager[1404]: <info>  [1736022792.0922] device (wlp4s0): supplicant interface state: inactive -> interface_disabled
Jan 04 14:33:12 zenwork7840 NetworkManager[1404]: <info>  [1736022792.0923] device (p2p-dev-wlp4s0): supplicant management interface state: inactive -> interface_disabled
Jan 04 14:33:12 zenwork7840 NetworkManager[1404]: <info>  [1736022792.1040] device (wlp4s0): supplicant interface state: interface_disabled -> inactive
Jan 04 14:33:12 zenwork7840 NetworkManager[1404]: <info>  [1736022792.1040] device (p2p-dev-wlp4s0): supplicant management interface state: interface_disabled -> inactive
Jan 04 14:33:35 zenwork7840 NetworkManager[1404]: <info>  [1736022815.1050] audit: op="statistics" interface="wlp4s0" ifindex=3 args="500" pid=8230 uid=1000 result="success"
Jan 04 14:33:35 zenwork7840 NetworkManager[1404]: <info>  [1736022815.1166] audit: op="statistics" interface="wlp4s0" ifindex=3 args="500" pid=8230 uid=1000 result="success"
Jan 04 14:34:41 zenwork7840 wpa_supplicant[1475]: wlp4s0: Reject scan trigger since one is already pending

Well, this feels a little silly. Shortly after posting this, I rebooted both of the nodes on my Google Nest Wifi system. When the network came back up, the Framework connected just fine and has been stable for almost two hours now. I didn’t suspect the access points as I had other devices that were connected just fine, but… that may have actually be the solve?

I’ll respond back if wifi on the Framework starts acting up again in the near future.

or you can swap it out for intel ax210 like many people do

I considered that. The laptop has behaved perfectly fine for 8 months now, though, and I tend to prefer getting back to a previously working state and understand the issue rather than throwing money at the problem when possible.

It is odd how often one device on a network can have issues where the other devices are fine!

ive had this happen as well.

i didnt ever fully resolve it (although it hasnt happened in a while) but i did find a way to fix it without rebooting the laptop. basically it has the effect of removing and reattaching the wifi card, which causes the driver to reinitialise. you need to run it as root. also do so at your own risk, its possible that the exact device path is different on your system (although the non-dynamically-determined parts seemed to be consistent for me). consider checking the pci devices folder manually with ls.

#!/bin/bash

set -euo pipefail

BUS_DEV_FUNCTION=$(lspci | grep "^..:..\.. Network controller: MEDIATEK Corp\. MT7922 802.11ax PCI Express Wireless Network Adapter$" | cut -c -7)

echo "1" > "/sys/bus/pci/devices/0000:$BUS_DEV_FUNCTION/remove"

sleep 1

echo "1" > /sys/bus/pci/rescan