I figured it out.
Even though you can set your region with
sudo iw reg set US
and it appears to be set when I checked. I found that in
/sys/module/cfg80211/parameters/ieee80211_regdom
it was set to world (00)
Disabling power save didn’t seem to do anything to help
Using
echo "options cfg80211 ieee80211_regdom=US" | sudo tee /etc/modprobe.d/mt7921-kernel67-fix.conf
and then reboot
Did the trick
Not sure why the region isn’t getting set correctly, but this has survived several reboots.
Hope this helps someone else.
Does anyone know what/how to get ieee80211_regdom to configure properly? I haven’t had any success searching the internet for a good answer.
8 Likes
Nice find!
For an adapter in managed (aka client) mode though, I would have expected passive scanning to be enabled for the 6GHz band by default, and so the AP to be discoverable. Isn’t the general approach that it’s up to the AP to “dictate” the regulatory domain?
That’s is my thoughts exactly. I’m really puzzled as to what really went wrong. I will say my linux install has been the same since about 2014. Just updated many times, even after a new pc build. maybe I should do a fresh install with limited restore (my files only) and see if that makes a difference.
For what it’s worth I reproduced this (regdom 00 by default, now set to US by modprobe). But in my use case it’s kind of moot as I don’t have a 6GHz AP around.
As to the cause, I dunno, leaving the regdom as “I dunno” makes sense for a mobile client device which can travel to different reg domains. So IMO it’s the adapter firmware’s (or the kernel driver’s?) decision/“fault” for not scanning at 6GHz in that scenario.
Being that there doesn’t seem to be actual firmware for the mt7921e, and it appears to “piggyback” off another driver’s firmware could be the issue in itself. I did read somewhere along this journey this “issue” has occurred with intel cards as well, although I cannot find the actual article I was reading atm. One would think, when the ip address, dhcp, etc is pulled from the carrier, the region could automatically be identified, or even when installing the wireless-regdm package, some sort of “config” process should run to identify the region at that time.
Please don’t flame me for this, I acknowlege the great contributions of clever people in this thread, but is there someway to be informed once there is a simple fix, like a kernel update has resolved it, or a firmware update. Or a known good, tested and framework supported script?
Apols but I’ve wasted enough time on this already, and I’m just going to stick with an OS that works until Framework can confirm that Linux works properly on these laptops again (Linux worked perfectly as advertised for the first year or two). Some will say I’m lazy, I say this as a 30 year Linux fan, since the Slackware days, who just can’t burn more time messing around with laptop with no internet. Nobody here loves the idea of people going back to Windows, me included.
Intel AX210 cards on Amazon start at $22 and have zero issues on Linux. How much is your time worth? Just go but an Intel card and save yourself the headache.