MediaTek MT7921e disconnects exactly every 60 seconds on 160MHz Wi-Fi 6 (Reason: 3=DEAUTH_LEAVING)

OS: Zorin OS 17 (Ubuntu 22.04 LTS Base)
Hardware: HP Victus Laptop, AMD Ryzen 5600H, MediaTek MT7922 (using mt7921e driver)
Router: Jio AirFiber Router using (Wi-Fi 6 / 802.11ax), 160MHz Channel Width for 5Ghz

I am experiencing mathematically precise Wi-Fi disconnects on the 5GHz band exactly every 60 to 70 seconds. It does not matter even if the connection is idle.

The kernel (6.8.0-117-generic) logs show that the Linux kernel is locally generating the deauthentication:

wlan0: deauthenticating from aa:a9:15:15:88:65 by local choice (Reason: 3=DEAUTH_LEAVING)

In wpa_supplicant logs, the drop happens exactly 60 seconds after a successful WPA key negotiation:

01:44:31 wpa_supplicant: wlan0: WPA: Key negotiation completed with aa:a9:15:15:88:65 [PTK=CCMP GTK=CCMP]
01:45:33 wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid=aa:a9:15:15:88:65 reason=3 locally_generated=1

I tried/noticed a few things while troubleshooting:

  1. I boot into Windows on this exact same laptop(dual booted) and lock it to the 5GHz wifi network, everything runs perfectly without a single drop. This isolates any router problems.
  2. The drops happen constantly. It does not matter if I am playing Xbox Cloud Gaming, browsing the web, or if the laptop is sitting completely idle.
  3. Interestingly, this issue only started today. Last night, I used the 5GHz network for cloud gaming flawlessly. Nothing in the environment or OS changed, yet today the connection locally generates a DEAUTH exactly every 60 seconds.

Some of the troubleshooting measures I took:

  1. Band 5Ghz: Locked the connection to the 5GHz BSSID and ran wpa_cli set bss_transition 0 to block 802.11v roaming. The 60-second drops continued.
  2. Power saver off: Set wifi.powersave=2 in NetworkManager and added pcie_aspm=off mt7921e.disable_aspm=y to grub to prevent PCIe sleep states. No effect.
  3. iwd: Completely bypassed wpa_supplicant by installing and running iwd. The exact same 60-second disconnects persisted.
  4. MTU Downsizing: Aggressively dropped the MTU down to 1400 and 1280 to test for aggregation buffer overflows. No effect.
  5. Kernel Upgrade: Force-upgraded from Kernel 6.8 to use the unofficial Liquorix 7.1.8 kernel, ensuring I had the newest linux-firmware patches for MediaTek. The drops still happened around the same 60-second mark.
  6. Hardware State: Performed a 60-second physical cold boot power drain (holding the power button while unplugged) to clear the Wi-Fi card's volatile memory.
  7. IPv6: Confirmed IPv6 is completely disabled for the connection to rule out Multicast Router Advertisement crashes.

Since the mt7921e module does not have a disable_he=y parameter to easily force Wi-Fi 5 (802.11ac) on Linux, and I couldn't try that. But the summary is that I can't use the 5Ghz network of my wifi on my zorin anyhow yet.

What's causing the mt7921e driver to locally drop the connection exactly every 60 seconds under heavy Wi-Fi 6 load, while Windows survives it? Is there any way I can bypass this hardware/driver limitation on Linux without physically swapping the card ?

1 Like

Hi, can you update the kernel at all to at least 6.15? From my brief search, this is what is coming back. If still no joy with a later kernel, the general advice is to swap out the mediatek for an Intel AX210 adapter.

Hello,
I have the same wifi chipset and it working fine with Zorin 18.1 and any recent kernel, maybe you could upgrade...

4 Likes

I will try upgrading the kernel once, but do you use a 5Ghz with 160Mhz bandwidth ? I noticed that I can use a 5Ghz network with 80Mhz and this issue doesn't happen. I figured maybe 160Mhz is the problem though I am not sure.

2 Likes

I can use it but I use 6 Ghz 160 Mhz also
rx bitrate: 2401.9 MBit/s 160MHz HE-MCS 11 HE-NSS 2 HE-GI 0 HE-DCM 0
tx bitrate: 2401.9 MBit/s 160MHz HE-MCS 11 HE-NSS 2 HE-GI 0 HE-DCM 0