The Great Wifi Mystery of 2025
When I built my current workstation, I put an Asus Tuf Gaming Z490-Plus in it. One of the nice benefits of this motherboard is that it came with an integrated wireless card. Specifically, an Intel AX201 which supported MIMO that would put throughput close enough to gigabit speeds that I would not need to worry about running the old cat 5e cable across the living room floor over to the switch.
But one day, after patching the OS on my wireless access point (I run a Mikrotik network, so that's RouterOS), my workstation would no longer connect to the wireless network. However other wireless devices in my house had no issue. I didn't really have time to look too deeply into the problem but noticed that the workstation wouldn't even see the 5GHz network, though I could still see and connect to the 2.4GHz network I keep around for Kalli's kindle and the printer. So I just put my workstation on the 2.4GHz and moved on. Eventually I would get a couple hours here and there to troubleshoot and found that I could connect to the 5GHz again. There had been a recent RouterOS patch so I just chalked it up to a RouterOS bug and forgot about it.
After another RouterOS patch, my workstation was experiencing the same issue. And I noticed now that my beater laptop, an Asus ExpertBook, also could not see the 5GHz network. The common thread: both systems had an Intel AX201 wireless chipset.
At first I thought maybe it was an iwlwifi (kernel driver) or firmware blob bug, so I started building the latest kernel from kernel.org and pulling down the latest firmware blobs. No dice.
Eventually I had the sense to run `iw list | less` and noticed something suspicious on my AX201 cards, 4 frequencies were disabled that were enabled on other working machines in the house: 5845 MHz, 5865 MHz, 5885 MHz, and 5905 MHz. And sure enough, after SSH'ing into my AP, I ran `/interface/wifi/monitor wifi1` to see my AP using 5885 MHz as the center frequency (channel 177).
So now we know what was broken, the AP was using one radio frequency but the client station didn't support this frequency. But why?
Radio is typically regulated around the world and in the United States, the FCC specifies what radio frequencies may be used for what purposes and at what gains. Just think about all those pesky "conforms to FCC requirements for interference" stickers you see on stuff. There is such a thing as a regulatory domain and since I am located in the United States, my regulatory domain is the United States.
I checked the configuration on my AP and it was indeed configured to use the "United States" regulatory domain. Actually the radio is locked at the hardware level to just a few domains in North America - if you are buying radio equipment on line, make sure you aren't accidentally getting something that only works in Asia or Europe or something.
But when I ran `iw reg get` on my workstation, I saw something curious. I had a global setting of "country 00: DFS-UNSET" which would indicate I did not have a regulatory domain set at all. But then I had something called "phy#0 (self-managed)" with a setting of "country US: DFS-UNSET". And sure enough the registered frequencies cut off at 5835 MHz, even though the regulatory domain was correctly identified using the ISO 3166-2 country code for the mainland United States of "US".
The key is the "(self-managed)" part. This means the card is using something called location aware regulatory or LAR. Basically the card will determine itself, using some proprietary algorithm, what regulatory domain it is physically in and then set the supported frequencies and gains accordingly. It works, right up until it doesn't.
A card managed by LAR will ignore any OS level configuration, so trying to manually override regulatory domain or supported frequencies and gain with iw didn't work. At one point the iwlwifi driver supported an lar_disable option that allowed the user to disable LAR, the firmware blob for the card must support some communication mechanism then to toggle this, or at least it used to. But Intel removed this from the iwlwifi driver.
My speculation on what broke down is really simple. In November 2020, the FCC expanded the unlicensed 5GHz spectrum to include 5845 MHz, 5865 MHz, 5885 MHz, and 5905 MHz (https://www.fcc.gov/document/fcc-modernizes-59-ghz-band-improve-wi-fi-and-automotive-safety-0). The AX201 pre-dates 2020 and so whatever regulatory information is hard coded into it, doesn't include this expansion. At some point RouterOS was updated to include this expansion of the spectrum. Thus, with just default settings, it is possible for my AP to come up with one of these 4 new frequencies and the AX201 just ignores it.
As I mentioned, running the latest kernel, the latest firmware blobs, and the latest wireless-regdb packages didn't help at all. I'm hopeful Intel can push a firmware blob update to correct this but the implementation is proprietary so for all I know there may be something to do with the hardware itself that precludes this type of fix.
For now, I've set `/interface/wifi/set wifi1 channel.frequency=5180-5320:20,5500-5720:20,5745-5825:20` to force my AP to limit itself to only the frequencies (in 20 MHz steps) that the AX201 supports. But this is just a band-aid.