Enabling WiFi 6GHz Band with MediaTek MT2927 on Arch Linux
Modern wireless hardware like the MediaTek MT2927 (part of the MT7927/MT7925 family) brings incredibly fast 6 GHz (Wi-Fi 6E & Wi-Fi 7) support to Linux. However, getting 6 GHz working on Arch Linux can sometimes be a challenge due to regulatory domain restrictions and driver setup.
Your diagnosis is correct — the country 00 (world regulatory domain) is the most restrictive setting, and it disables the 6 GHz band entirely because 6 GHz Wi-Fi (Wi-Fi 6E/7) requires explicit country regulatory authorization. The fact that iw reg set US appears to do nothing usually means one of a few things: the wireless-regdb package isn’t installed, CRDA isn’t being invoked, or — most commonly on modern Arch — a self-managed regulatory hint from your wireless driver/NetworkManager is overriding your manual setting.
Let me walk through the fix.
1. Install the regulatory database
Without this, the kernel has no rules to apply when you set a country.
sudo pacman -S wireless-regdb
Verify the database file exists:
ls -la /usr/lib/firmware/regulatory.db /usr/lib/firmware/regulatory.db.p7s
If those files are missing, iw reg set is a no-op. The kernel loads regulatory.db at boot, so after installing it you should reboot (or at minimum reload the cfg80211 module, which is usually impractical since it’s used by your driver).
2. Set the country persistently
A one-shot iw reg set US doesn’t survive reboots, and it can be silently overridden by NetworkManager, wpa_supplicant, or a driver-supplied “world” hint. Make it permanent in /etc/conf.d/wireless-regdom:
sudo sed -i 's/^#WIRELESS_REGDOM="US"/WIRELESS_REGDOM="US"/' /etc/conf.d/wireless-regdom
Or just edit the file and uncomment the WIRELESS_REGDOM="US" line.
Then also configure NetworkManager to stop fighting you. Create /etc/NetworkManager/conf.d/wifi-regdomain.conf:
[device-wifi]
wifi.scan-rand-mac-address=no
[connection]
wifi.cloned-mac-address=preserve
The bigger lever for the regdomain itself is in /etc/modprobe.d/cfg80211.conf:
echo 'options cfg80211 ieee80211_regdom=US' | sudo tee /etc/modprobe.d/cfg80211.conf
This tells the cfg80211 module to set US as the regulatory hint at load time, before any driver tries to apply a “world” default.
3. Reboot and verify
sudo reboot
After reboot:
iw reg get
You should now see something like country US: DFS-FCC with entries for 5945 - 7125 @ 320 — that’s the 6 GHz band.
Then:
iw list | grep -A 30 "Band 4"
The 6 GHz frequencies should no longer say (disabled). They may still say (no IR) on some channels — that’s “No Initiating Radiation,” meaning the card can listen passively but won’t transmit until it hears a beacon. That’s normal for 6 GHz and doesn’t prevent you from seeing/connecting to 6 GHz SSIDs.
4. If 6 GHz is still disabled after that
Two things to check that are specific to the MT7927 driver situation:
Check if your driver is self-managing the regdomain. Some MediaTek drivers register as “self-managed,” which means the userspace iw reg set command is ignored — only the driver itself can change the regdomain, usually based on firmware EEPROM contents. Check with:
iw phy phy0 reg get
If you see self-managed mentioned, the driver is controlling this. In that case iw reg set US operates only on the wiphy, not globally:
sudo iw phy phy0 reg set US
Check dmesg for regulatory hints from the driver:
sudo dmesg | grep -iE "regulatory|country|cfg80211|mt79"
You’re looking for lines like cfg80211: Regulatory domain changed to country: US (good) versus cfg80211: World regulatory domain updated or driver complaints about EEPROM regdomain bytes (the firmware may be hardcoded to world/00). The out-of-tree mediatek-mt7927-dkms driver is still rough and some builds ship with the regdomain pinned in firmware — if dmesg shows the driver explicitly setting “00” after you set “US”, that’s a driver/firmware issue you’d need to raise on the mt76 GitHub or the AUR package’s upstream repo.
5. Worst-case workaround
If the driver is self-managed and locked to world regdomain, you can sometimes force it by unloading and reloading the wireless module with the regdomain explicitly set, though this is brittle and varies by driver name (likely mt7927e or similar). Check with lsmod | grep mt79 first to find the exact module name.
Try steps 1–3 first — that fixes it for the large majority of cases. Report back what iw reg get and dmesg | grep -i regulatory say after the reboot if 6 GHz is still disabled, and we can dig into whether it’s a self-managed driver issue.