WiFi Fix: MediaTek MT7921e Low Power & Disconnects

Fix low transmit power, authentication timeouts, and random disconnects on MediaTek MT7921e WiFi cards — tested on Ubuntu 24.04-based distros with a ThinkPad L14 Gen 2.

Intermediate Verified Working Updated 6 min read Tested on Linux Mint 22.3 Cinnamon (Ubuntu 24.04 Noble base); also tested on Zorin OS 18.1 Pro Hardware Lenovo ThinkPad L14 Gen 2 (Intel i5-1135G7, 16GB RAM, Intel Iris Xe, 1366x768) — MediaTek MT7921e WiFi card

What This Guide Fixes

The MediaTek MT7921e (MT7921 802.11ax) WiFi card has known Linux driver issues that cause three distinct problems:

SymptomRoot CauseFix Level
WiFi connects but keeps droppingDriver power management suspends the cardStandard
“Authentication timed out” in logs — requires reboot to reconnectASPM (Active State Power Management) causes PCIe link errorsDriver fix
Transmit power stuck at 3 dBm (should be 15–20 dBm)Firmware power table or regulatory domain issueDriver + kernel fix
Random disconnects after suspend/resumeDriver fails to recover after firmware crashDriver fix

Affected hardware: Laptops with MediaTek MT7921 / MT7921e / MT7922 WiFi chips — common in Lenovo ThinkPad, HP, ASUS, and Acer mid-range laptops.

Will this work for me? This guide was tested on a ThinkPad L14 Gen 2 (i5-1135G7) running Linux Mint 22.3 and Zorin OS 18.1 Pro. The fixes apply to any Ubuntu 24.04-based distro with the same WiFi chip.


Before You Start

Identify Your WiFi Card

Run this to confirm you have the MT7921e:

lspci -nnk | grep -A3 -i network

If you see MEDIATEK Corp. MT7921 and Kernel driver in use: mt7921e, continue with the rest of this guide.

Check Your Current Tx-Power

iw dev wlp9s0 get txpower

If the output shows 3.00 dBm (or anything below 10 dBm), your card is operating at severely reduced power — likely causing poor range and frequent disconnections.

Replace wlp9s0 with your actual interface name if different. Find it with ip link show — look for an interface starting with wl.

Check Current Kernel Version

uname -r

Make a note of it. You may need to switch kernels (covered in Phase 3).


Phase 1: Essential Driver Tweaks (Do First)

These three changes fix the most common MT7921e problems and persist across reboots.

Step 1.1: Disable ASPM and Enable Driver Recovery

ASPM (Active State Power Management) causes PCIe communication errors that manifest as “authentication timed out” in kernel logs. The disable_hw_restart=0 option allows the driver to auto-recover after a firmware crash instead of staying broken until reboot.

Create the config file:

sudo tee /etc/modprobe.d/mt7921e.conf > /dev/null <<'EOF'
options mt7921e disable_aspm=1 disable_hw_restart=0
EOF

Important: Both options must be on a single line. Do not split them across multiple lines.

Apply immediately without reboot:

sudo modprobe -r mt7921e && sudo modprobe mt7921e

If you get No such device error after this command, reboot — the module will load correctly on next boot with the config applied.

Step 1.2: Disable WiFi Power Management

NetworkManager’s built-in WiFi power saving can cause the driver to aggressively suspend the card, leading to drops.

sudo tee /etc/NetworkManager/conf.d/wifi-powersave-off.conf > /dev/null <<'EOF'
[connection]
wifi.powersave = 2
EOF
sudo systemctl restart NetworkManager

Note: wifi.powersave = 2 means “disable power saving.” Value 0 uses the default, 1 enables it, 2 disables it.

Step 1.3: Update WiFi Firmware

The firmware file (mt7921e.bin) is the low-level code that runs on the WiFi chip itself. An outdated firmware is the single most common cause of MT7921e issues — including the 3 dBm power bug.

sudo apt update
sudo apt install --reinstall linux-firmware firmware-misc-nonfree
sudo update-initramfs -u

Step 1.4: Set the Regulatory Domain

Without a country code set, Linux defaults to the “world” regulatory domain (code 00) which caps transmit power to the most restrictive limits. Setting the correct country unlocks the full allowed power.

# Check current regulatory domain
iw reg get
# Look for "country 00:" — this means unset

# Set your country (change BD to your actual country code)
sudo iw reg set BD

# Verify it took effect
iw reg get

This change resets on reboot. To make it permanent:

sudo tee /etc/udev/rules.d/99-regulatory.rules > /dev/null <<'EOF'
ACTION=="add", SUBSYSTEM=="net", KERNEL=="wlp*", RUN+="/usr/sbin/iw reg set BD"
EOF
sudo udevadm control --reload-rules
sudo udevadm trigger

Find your ISO country code: en.wikipedia.org/wiki/ISO_3166-1_alpha-2. Examples: US (United States), DE (Germany), GB (United Kingdom), IN (India), BD (Bangladesh).

Step 1.5: Reboot

sudo reboot

Phase 2: Verify the Fixes (After Reboot)

Verify ASPM Is Disabled

cat /sys/module/mt7921e/parameters/disable_aspm

Expected output: Y or 1

Verify Regulatory Domain

iw reg get | head -1

Expected: country BD: (or your country code) — not country 00:

Check and Force Tx-Power

sudo iw dev wlp9s0 set txpower fixed 2000
sudo iw dev wlp9s0 info | grep txpower

Expected: txpower 20.00 dBm or similar (15–20 dBm range). If it still shows 3.00 dBm, proceed to Phase 3.

Verify Power Management Is Off

iw dev wlp9s0 get power_save

Expected: Power save: off

Reconnect to Your Network and Test

nmcli device wifi rescan ifname wlp9s0
sleep 5
nmcli device wifi connect "YourSSID" password 'YourPassword' ifname wlp9s0

Always use single quotes ' ' around passwords. Double quotes " " will break if the password contains characters like !, @, #, or $.


Phase 3: Kernel Fallback (If Tx-Power Still Stuck at 3 dBm)

If Phase 1–2 did not resolve the tx-power issue, the problem is in the kernel version itself. Kernel 6.8.x (LTS) is more stable for MT7921e than newer kernels. If you have a kernel like 6.14, 6.17, or newer, switch to 6.8.

Step 3.1: Check Which Kernels You Have Installed

dpkg --list | grep linux-image

Step 3.2: Boot into Kernel 6.8 at GRUB

  1. Restart your computer.
  2. During boot, hold Shift (BIOS mode) or press Escape (UEFI mode) to enter the GRUB menu.
  3. Select “Advanced options for Linux Mint” (or Ubuntu/Zorin equivalent).
  4. Choose the entry containing 6.8.0-124-generic or any 6.8.x kernel.
  5. Press Enter to boot.

Step 3.3: Verify Kernel and Test

uname -r
# Should show: 6.8.0-124-generic

# Repeat Phase 2 checks
sudo iw dev wlp9s0 set txpower fixed 2000
sudo iw dev wlp9s0 info | grep txpower

Step 3.4: Make Kernel 6.8 the Default (Only if It Fixes the Issue)

sudo sed -i 's/^GRUB_DEFAULT=.*/GRUB_DEFAULT="Advanced options for Linux Mint>Linux Mint, with Linux 6.8.0-124-generic"/' /etc/default/grub
sudo update-grub

Note: The exact string inside the quotes depends on your distro. To see the exact syntax, check what GRUB shows in the menu. For Ubuntu, it would be "Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-124-generic". For Zorin, adjust accordingly.

Step 3.5: Remove the Unstable Kernel (Optional)

After confirming 6.8 is stable:

sudo apt remove linux-image-6.17.0-35-generic
sudo update-grub

Keep at least two kernels installed as a safety fallback.


Phase 4: MAC Address Blocking Fix (For Office/Building WiFi)

If WiFi connects to your phone hotspot but fails on a specific office or building network — even after the fixes above — your device’s MAC address may be blocked.

Step 4.1: Diagnose by Spoofing MAC

sudo ip link set wlp9s0 down
sudo ip link set wlp9s0 address 00:11:22:33:44:55
sudo ip link set wlp9s0 up
sudo systemctl restart NetworkManager
nmcli device wifi rescan ifname wlp9s0
sleep 5
nmcli device wifi connect "OfficeNetwork" password 'YourPass' ifname wlp9s0

If this connects successfully, your real MAC is blocked on that network.

Step 4.2: Enable Random MAC (Permanent)

sudo tee /etc/NetworkManager/conf.d/mac-random.conf > /dev/null <<'EOF'
[device]
wifi.cloned-mac-address=random
EOF
sudo systemctl restart NetworkManager

Using random is better than a fixed fake MAC like 00:11:22:33:44:55, which is obviously fake and may also get blocked.

Step 4.3: Long-Term Fix

Contact the network administrator to whitelist your real MAC address:

c8:94:02:ba:26:35

Find your real MAC with: ip link show wlp9s0 | grep link/ether


Phase 5: Prefer 5 GHz (Better Stability)

The 2.4 GHz band is congested and more prone to interference. If your router has both bands, prefer 5 GHz for a more stable connection.

# List available connections
nmcli connection show

# Set 5 GHz band on a connection (replace "Mohsin_5G" with your 5 GHz SSID)
nmcli connection modify "Mohsin_5G" 802-11-wireless.band a
nmcli connection modify "Mohsin_5G" connection.autoconnect yes

# Disable auto-connect on 2.4 GHz if desired
nmcli connection modify "Auto Mohsin_2.4g" connection.autoconnect no

The .band value a means 5 GHz. Value bg means 2.4 GHz. Omitting it allows both.


Phase 6: Terminal Connection Commands (When GUI Fails)

Use these when the NetworkManager GUI fails to connect or gives unclear error messages.

Scan for Networks

nmcli device wifi rescan ifname wlp9s0
sleep 5
nmcli device wifi list ifname wlp9s0

Connect to a Network

nmcli device wifi connect "SSID" password 'YourPassword' ifname wlp9s0

Always use single quotes ' ' around the password. Double quotes cause errors if the password contains !, @, #, $.

Delete and Refresh a Saved Connection

nmcli connection show
sudo nmcli connection delete "SSID"

Then reconnect via the command above.


Phase 7: Full System Updates (Prevent Future Issues)

Keep everything updated monthly:

# Update all packages
sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove --purge -y

# Update WiFi firmware
sudo apt install --reinstall linux-firmware firmware-misc-nonfree

# Update Intel microcode and GPU firmware (ThinkPad specific)
sudo apt install intel-microcode firmware-linux firmware-linux-nonfree

# Install latest kernel
sudo apt install linux-generic

# Check recommended drivers
sudo mintdrivers

After reboot, verify:

uname -r
nmcli device status
sudo iw dev wlp9s0 info | grep txpower
cat /sys/module/mt7921e/parameters/disable_aspm

Quick Reference: Decision Tree

SymptomStart Here
WiFi won’t turn on / no networks visiblePhase 1 (reinstall firmware, reboot)
Connects but keeps droppingPhase 1.2 (power management)
Disconnects and won’t reconnect without rebootPhase 1.1 (ASPM + hw_restart)
“Authentication timed out” in kernel logsPhase 1.1 (ASPM fix)
Tx-power stuck at 3 dBmPhase 1.3 (firmware) + Phase 1.4 (reg domain) → if no change: Phase 3 (kernel 6.8)
Works on hotspot, not on office/building WiFiPhase 4 (MAC blocking)
GUI shows “Network could not be found”Phase 6 (terminal rescan + connect)
Password with special characters failsUse single quotes in terminal
Everything works but want better stabilityPhase 5 (5 GHz band)
Recurring issues after kernel updatePhase 7 (full update) + Phase 3 (kernel 6.8)

Known Issues: MT7921e on Linux

  • Tx-power stuck at 3 dBm — Firmware bug in 20240219 build on kernels >= 6.14. Fix: Phase 3 (kernel 6.8 fallback).
  • Authentication timeouts — Caused by ASPM (PCIe link power state transitions). Fix: Phase 1.1 (disable_aspm=1).
  • Driver fails to recover after disconnect — The card goes into an unrecoverable state and requires a reboot. Fix: Phase 1.1 (disable_hw_restart=0).
  • “RAS: Correctable Errors collector initialized” in dmesg — This is normal hardware error reporting, not a real problem. Ignore it.
  • Interface named wlp9s0 not wlan0 — Commands using wlan0 will fail on this device. Use wlp9s0 or check with ip link show.
  • BIGD and BIGD-5 are the same router on 2.4 GHz and 5 GHz bands respectively. Both bands may be blocked independently when MAC is blocked.

Verification Checklist

After completing all phases, run through this list:

  • cat /sys/module/mt7921e/parameters/disable_aspm → Y or 1
  • iw reg get → shows your country, not 00
  • sudo iw dev wlp9s0 info | grep txpower → 15–20 dBm range
  • iw dev wlp9s0 get power_save → Power save: off
  • nmcli device status → WiFi shows connected
  • Connection survives suspend/resume cycle
  • Connection survives router reboot


This guide was written from real debugging sessions on a ThinkPad L14 Gen 2 with a MediaTek MT7921e WiFi card running Linux Mint 22.3 and Zorin OS 18.1 Pro. Every command was tested on actual hardware.

Discussion