Linux Intel WiFi driver broken with 5&6GHz bands for longer than three years
bugzilla.kernel.org
bugzilla.kernel.org
>[...] i've tried replacing the wifi adapter but this happens on intel wireless-ac 3165, 8265, and 9260 dual band 160Mhz (currently installed adapter).
>[...] On Intel ax210ngw all 5ghz channels are disabled and cannot be used to transmit
So it's iwlwifi specifically.
>i should add that this happens on both windows and linux but at least on linux i had a way of disabling LAR so my regulatory domain gets detected properly and all the wifi channels/widths works as they should.
>[...] on all 5.3 and earlier kernels, using lar_disable=1 all my channels work and i get a full 1733mbps link speed (5ghz ch.36 at 160mhz)as shown here
So it's not a Linux-specific issue. Rather it seems to be buggy firmware, and a method that OP was relying on to work around that bug was disabled because it was causing other issues with said buggy firmware.
https://github.com/torvalds/linux/commit/f06021a18fcf8d8a1e7...
But this commit message is burying the lede a bit. There are two problems here:
1) you can revert the change, but a large part of the regulatory logic lives in the firmware blob running on the chip and you can not change this.
2) the FCC doesn't look kindly upon functionality that ignores regulatory limits being available to end customers. It was already not legal for Intel to add this in the first place, and they certainly won't help you reinstate it.
The second part might be why these devices have been in a "broken" regulatory state forever now where they stay away from everything that touches upon e.g. DFS; someone at Intel might have realized that letting users pick their regulatory region is already not something they should be offering.
The reality is that these WiFi chips should probably have some fuse in them that decides what regulatory region they were made for and then run off that, but you can see the business people losing their mind over that: now you need to have a hundred different SKUs and worse you need to understand your distribution chain. So a software setting it is, and then you see why the FCC is upset.
The correct 'work around' is to build a kernel with a DEFAULT regulatory domain, abstract from any vendor's specific implementation, allow that domain to be updated at runtime (particularly for mobile devices), and follow the laws there in. I also advocate (in this post) for wifi_regulations=BREAKTHELAWANDDISABLE (allcaps required) to completely bypass filtering channels. This would be useful in some situations such as isolated testing environments, use in International Waters, and any other environment that's isolated enough.
Neither seems to make sense. (And does this come from the Microsoft team who came up with
setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF
?)Edit: ALSO, in case it wasn't clear... E.G. wifi_regulations=USA or wifi_regulations=CDN or wifi_regulations=GBR or some other set of country codes / match in the table of known regulations. A longer string that manually specifies allowed frequencies in some way might also work.
But don't worry, for 6 GHz the FCC has come up with even more insane stuff: if you want to unlock more channels and power, your AP will have to (1) geolocate itself and (2) contact a central server to determine regulatory restrictions for that location. They are calling this Automatic Frequency Coordination (AFC). See page 13 of https://docs.fcc.gov/public/attachments/DOC-363490A1.pdf:
> We will require the AFC to use a centralized model where each standard-power access point remotely accesses an AFC to obtain a list of available frequency ranges in which it is permitted to operate and the maximum permissible power in each frequency range
Agencies — even when in the wrong — can throw their weight around and demand that the FCC ban things.
Consumers like you and me have no real representation in government so we have no political clout and can’t throw our weight around to demand simpler legislation.
If the FAA didn't do its job and certified altimeters that shouldn't have been, as the 5G rollout was announced and previsible, maybe they should start working instead of complaining that others help them do their job?
Also, if all it takes to mess with altimeters is a rogue 5G cell, the right approach is to harden the altimeters, instead of hoping no 5G cell ever will be misconfigured or pushed wrong configuation parameters by a enemy country or ransomware hacker group.
Wow, that is a lot of misconception about the threat model and real issue at hand packed into a single sentence.
First of all, great, let's say you're right. How do you harden the existing altimeters out there, equipped on thousands of aircraft? These are sensitive, tightly controlled and life-critical instruments. Radar altimeters have been in use for decades, almost a century now, and so the FAA is for the most part talking about already installed altimeters which were designed far before 5G was ever a thing. Likely most of their designs will not readily accommodate hardening against new kinds of RF interference. If you managed to patch all the different kinds out there and get fixes pushed out, that'd be a great effort in labor, logistics, and certification. Of course, one could simply replace the old radar altimeters with new ones, at a much greater cost too.
Separately from the difficulty of actual hardening, there's the question to be asked of, why ask old technology to adapt to new one when we can adapt the new technology to suit the old? Especially because, again, these are safety critical instruments that you don't wanna mess with, whereas 5G towers are much better suited to new experiments or fixes, or just being designed correctly and safely from the get go when the technology hasn't even launched yet.
And then, why do you think this is a security issue, as in an attacker aiming to disrupt air travel? You must be aware that most all aviation radio comms are in the clear and extremely easy to jam and spoof, including critical instrument systems like ILS. That is not the threat model! The FAA is worried about interference from ordinary people trying to use their cellphones, rather than a specialized attacker targeting radar altimeters. Of course, because these are two very different situations!
How do you harden the existing altimeters out there, equipped on thousands of aircraft?
What is the correct course of action when you discover thousands of pieces of vital equipment are badly defective? An immediate recall for all defective altimeters and, hopefully, fines for the vendors.
It's incredible how well WiFi works for the amount of power it uses.
Obviously turning up the transmit power makes it better... for that one person. For everyone else, that channel has a little bit more noise than before, making it harder to receive their signal.
So maybe their neighbors will also want to increase their transmit power to get better range / speed again. Having a limit across the board for all mass manufactured devices prevents an escalating spiral of vendors selling 30, then 40, then 50dbm etc routers.
As mentioned elsewhere, different countries have different power limits, but it's more economical to make a single radio for all markets with software power limits. One hypothetical way for a vendor to get a market advantage is to sell a radio that is software limited, but wink wink can be patched with easily googled instructions to increase the power to work better. Maybe by downloading a tool from some sketchy website that even actually works and can be spammed across the internet or social media.
So the FCC has to strongly discourage anything that could lead to lots of radios deliberately exceeding the regulatory limits and disproportionately making the spectrum worse compared to a compliant device.
I don't think that necessarily justifies rather invasive schemes like geolocated AFC, but preserving the use of the radio spectrum so that everyone can make efficient use of it is the FCC's mandate.
Actually, WiFi disproves that we'd have a tragedy of the commons.
> Having a limit across the board for all mass manufactured devices prevents an escalating spiral of vendors selling 30, then 40, then 50dbm etc routers.
No, the AP and the device both have a strong interest to limit the power used: not just to limit interference with other devices inside the home, but also to increase battery life!!
> but wink wink can be patched with easily googled instructions to increase the power to work better
I just don't understand why most posters here assume the worst by default. Most people are nice and want to obey the law.
WiFi proved that very little legal oversight was necessary to make it work.
In fact, it did the opposite: by comparing the efficiency of the use of the 2.4Ghz band (noisy with microwaves etc) to the rest of the spectrum managed by the heavy hand of the FCC, any reasonable person would argue for removing regulations or more parts of the spectrum (starting maybe with the huge chunks waste on HAM radio!)
For home routers this is a weak argument. Since most people download more than they upload, you could probably send a weaker signal from mobile devices and drown the air with signal from anything plugged into a wall socket.
> I just don't understand why most posters here assume the worst by default. Most people are nice and want to obey the law.
Maybe it's just where I live, but I don't see that on the road (people risking accidents to gain 30 seconds). People will only follow the law if they think it's worth their inconvenience and lots of people weight this in a bad way.
How many hand-tuned APs does it take to make a whole building lose significant bandwidth? After this the regulation has to become looser so the legal devices can keep working, and it never really gets better.
How exactly is your mobile device going to ACK those received packets? The mobile device needs to transmit as loudly as the AP for its ack to be received.
Boosting the transmit power higher than your receiving device can transmit leads to very bad wifi links, where the mobile device is receiving a good signal but it's own messages are not received back.
Considering the average user would never bother to set their correct regdomain when they buy a crap Chinese wifi router, you are pretty much guaranteed to always be using the wrong (mostly CN) regdomain, because that's what your neighbours are using...
Exactly. The software should make it easier for the average user to do the right thing. Most people would select "US" in a dropdown menu if offered the chance. The windows driver could also pass the information to the firmware using geolocalization or the windows locale settings if what the firmware setting suggested by default seems awfully wrong (ex: CN regdomain while Windows locale = US, geo IP = US, GPS=US etc)
It also doesn't seem to be that much of an issue for other vendors to allow the user to configure their regulatory locale, it definitely raises the question how necessary this current approach is.
In the end, Intel's current LAR implementation hurts users that want to use their hardware within their locale's regulatory limits. It does not prevent intentionally misleading the LAR implementation or acquiring other equipment to be disruptive. To me it seems to achieve very little positive, and I've not even touched the freedom aspect of Linux being violated.
Fully agreed with all this. If there's no existing patch for the 6.2 kernel I'll make my own later today because for whatever reason my Intel wifi card thinks it's not in the US (!!!) and I want it to obey the FCC limits.
# iw reg get
global
country 00: DFS-UNSET
(2402 - 2472 @ 40), (6, 20), (N/A)
(2457 - 2482 @ 20), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN
(2474 - 2494 @ 20), (6, 20), (N/A), NO-OFDM, PASSIVE-SCAN
(5170 - 5250 @ 80), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN
(5250 - 5330 @ 80), (6, 20), (0 ms), DFS, AUTO-BW, PASSIVE-SCAN
(5490 - 5730 @ 160), (6, 20), (0 ms), DFS, PASSIVE-SCAN
(5735 - 5835 @ 80), (6, 20), (N/A), PASSIVE-SCAN
(57240 - 63720 @ 2160), (N/A, 0), (N/A)
I've tried but failed to add regulatory.db to my bzImage:# dmesg | grep regula
cfg80211: Loading compiled-in X.509 certificates for regulatory database
platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
cfg80211: failed to load regulatory.db
In my .config:CONFIG_EXTRA_FIRMWARE="iwlwifi-so-a0-gf-a0-72.ucode iwlwifi-so-a0-gf-a0.pnvm regulatory.db (...)
regulatory.db exists in the expected path and the md5sum 968432874991bf18d99a4f508fb1515d seems correct.
The kernel sees them, and compiles them, and it WORKS with other things requiring a firmware like i915 with the HuC and the GuC, but not for regulatory.db
Not my clown, not my circus.
If the wifi firmware thinks the regulatory area is ID (Indonesia) it's wrong anyway
> WiFi chips should probably have some fuse in them that decides what regulatory region they were made for
Yes let's block most of resale of used chip and make the problem worse by having the remaining market just be for chips for a "nice" regulatory region that has the channels you want even if it shouldn't! /s
No, the answer is to fix the sar logic so that if it gives obviously wrong results, the correct setting can be passed to the firmware.
It's up to the customer to obey the limits, and this feature wouldn't make it easy for customers to "ignore regulatory limits" but do the exact opposite: allow them to OBEY the regulatory limits while the setting clearly does the opposite for now (unless Indonesia is a subset of the US SAR settings, which I don't think it is)
If my wifi think I'm not in the US, I will tell it yes, indeed we are, and it's on me if I lie to software. Most people will not lie. Why make it harder to do the right things?
So you need to travel with like a dozen WiFi cards? Setting the region in software is a feature to all travelers...
Some appliances aren’t 100-240V. Geolocation enforces region based pricing. Cell phone plan costs vary by several orders of magnitude.
It's not unreasonable to expect the customer to know which country he currently resides in.
> since it does not disable LAR at all, it inherits the issue of requiring a 5GHz access point to be active and near the card in order to detect a 5GHz-able country.
"Intel wireless cards are among the best for Linux, with support for new devices landing even before they are released. however, they have one big drawback: LAR (Location-Aware Regulatory).
basically the card detects in which country it is (and therefore the regulatory domain) based on nearby access points' ones, and doesn't let you change it manually. the sad thing is that it often sets the card to the wrong country, which is a problem.
prior to Linux 5.5 there was an option to disable this annoying feature in the iwlwifi module (lar_disable=1), but it was removed as later firmware versions caused card crashes and Intel claimed the option shouldn't be accessible anyway "
I remember when the 8000 series radios were the gold standard for mobile wireless, all the newer AX cards have been nothing but pain and suffering.
Unlike my Intel AX210 I can actually get a full gigabit down sat next to my router.
I think there are now a few hardware platforms capable of using the new 6GHz band channels ("WiFi 6E") on OpenWRT, but I haven't checked recently and haven't been looking to upgrade any of my hardware to support that (I'm doing just fine using 5GHz DFS channels that nobody else in my apartment building is using).
I'm not sure what hardware capabilities you think are poorly supported by OpenWRT or the open-source drivers for the known-good hardware choices from the QCA lineage or Mediatek's mt76 family. Can you provide any specifics?
I can't speak for them, but I've used OpenWRT on routers with Broadcom chipsets, so I think they were saying that OpenWRT support isn't a good litmus test for drivers that support the full functionality of the hardware they're for.
This is surprising for me to hear. My AX201 hasn't given me any trouble at all, ever. Maybe I've been getting lucky.
The thinkpad had lots of issues especially with 5G, firmware lockups, iwlwifi getting the kernel stuck etc.
The LG is rock-solid, no problems at all.
Either they are not the same card, or there are issues in the interplay of these cards with certain hardware.
Do you get a GPS fix nearby (~0.5m) of that card (eg. on your phone next to it)?
Due to some work i had ~6 of those dongles (Alfa AWUS036ACM), and all of them put out some noise in the gps range and break my gps connection the second they're plugged into the usb port (without any ifconfig up-ing them, setting a channel or connecting anywhere).
My latest one has an MTK chip by no choice of my own, and it works fantastic. Shame on Intel.
My APs have an outdoor mode I was curious about and turns out it’s for plane radars. I was very confused when I turned it on. They were outside APs so I turned it on. I was looking at the channel interfaces and noticed missing channels.
Don't use non-standard channels. You're making it worse for everyone.
802.11n works perfectly fine with channels 1+5+9+13, letting the guard bands intersect. The 1/6/11 set common to the USA leaves plenty of guard space to prevent overlaps, but wastes bandwidth in jurisdictions where channel 12 and 13 are disallowed.
I haven't had a laptop that came with an Atheros chipset in a while, so I don't know if the buyout by Qualcomm has spoiled anything, but Atheros always had way better WiFi support on Linux than Intel did. And similarly, a recent AMD GPU with the community drivers in Mesa has given me way better stability than anything Intel has put out.
Open-source drivers are nice, but good open-source drivers are worth a lot more. Go for AMD or Atheros where you can.
(That said, I've had unproblematic experiences with a lot of other kinds of Intel hardware on Linux, like SSDs, wired NICs, NUCs, and even Thunderbolt. And for the most part, WiFi has been more or less good enough for me with Intel in the past few years that I haven't bothered to replace Intel WiFi cards when they've come included in my laptops.)
On most Linux laptops with no dedicated GPU, Intel GPUs seem to work fine, though.
"Avoid Nvidia; if you have to use Nvidia, avoid other brands if possible" seems to be the way to go.
I'm still mad about Nvidia setting an arbitrary limit to the amount of X11 displays. There is no good reason for it other than locking their customers into data center GPUs.
In a similar fashion, I was also luckier with Nvidia proprietary drivers on Linux than with AMD open source drivers.
Seems like HW on Linux really is a box of chocolates, you never know what you're gonna get.
I can pull up the dmesg info later tonight when I reboot into linux if you want.
Bluetooth works fine on it on Linux as well between my phone and my Sony headphones. No complaints from me on Fedora/Opensuse.
Out of curiosity, what issues are you having with the Intel AX chip? I also have it on my Lenovo Intel work machine running Ubuntu 22.04 and it seems OK to me.
No that's fine, great info, cheers.
Soundslike you got one of the chipsets that has in-kernel support, so that is good.
It's not a recommendation to go and buy a Realtek card, I was just sharing my anecdote.
If the out of tree driver becomes unmaintained / incompatible with future kernels, you are SoL. Also dkms is kind of a headache to deal with. Not sure if Nobara builds the module for you, but on traditional distros you would have to build the module via dkms on each kernel update, which again I have to repeat is not guaranteed to actually succeed.
Took me 3 days to get back to a GUI at boot, turns out I needed to delete the xorg.conf file.
Now try `sudo iw dev wlan0 del` and the kernel will deadlock :)
There was another Intel related issue with this laptop also; the gpu would freeze/panic intermittently, multiple times a day. This was "fixed" by adding a boot flag in grub to turn off a certain feature, and I think the ultimate fix may be working its way into the kernel currently.
Really not the slick experience I was hoping for with the XPS13. I mostly work on my desktop so it's not the end of the world, but it has me thinking about getting a mac in 5 or so years, assuming Asahi reaches stability.
I had this on my Dell XPS13 (9310) as well, although in my case it was a few times a week, maybe .5 times a day. It also seemed to almost always trigger when kwin was animating something, particularly switching to another virtual desktop, but never when playing any games. I can't imagine why, but the problem mostly went away when I turned off all animations in kwin, and seems to have gone away completely sometime about a year or so ago.
All in all, it's still a better experience than the Macbook Air I was using prior to having this XPS13... That damn Macbook loved to vomit onto the screen and lock up without warning. No dust, thermals seemed fine, battery was healthy... no clue what was wrong with it. And without many exposed settings to fiddle with.
https://source.chromium.org/chromiumos/chromiumos/codesearch...
The reason these things are often broken on Ubuntu and the other distros is simply that the governance and organization of those projects is not incentivized to ship a working product.
I figured it was the walls until I setup a “slow” 2G network for an old printer and my PC was at full speed when connected to it. Figured out that it was a driver issue a few weeks ago. This is a problem I haven’t had since around 2000. Never would have guessed that the device I chose for compatibility and support would have a driver that flakey.
Here's a mirror: https://web.archive.org/web/20230317164517/https://bugzilla....
For fellow website admins, this is your regular reminder to use static site generators, where possible, and server-side cache where not.
local vs CDN that is...
Hey, it's still better than Windows:) To quote a bit from upthread,
>>i should add that this happens on both windows and linux but at least on linux i had a way of disabling LAR so my regulatory domain gets detected properly and all the wifi channels/widths works as they should.
Generally I think Intel is one of the best companies at open-source by far & it's a huge competitive advantage. But all companies of any notable size are companies of many smaller orgs... Still surprising, as Intel has excellent dedication to wifi & has great works like connman.
But also... competitive advantages only matter if anyone notices or cares. This issue is incredible egg-in-the-face to literally all of us. That everyone missed this is absurd!
Ed: now that I see the full year, pretty shameful seemingly nothing has been done in 3 years. Why?!? Ed ed: oh, only affects AP mode... OK now that's not good but way more reasonable scope!!
The link I'm looking at says 2020-02-08.
I also didn't know at the time this was limited to AP mode. Still, it being bad for so long is ultra-embarassing. I sincerely appreciate the correction. My bad.
https://news.ycombinator.com/item?id=35113567
I think it is what you've been seeing.
I wonder if it was the same (or similar) issue... I wound up buying a mikrotik AP after all that nonsense.
It appears that this problem is related to Intel's WiFi firmware automatic detection of the regulatory domain, which is LAR. This is done on the basis of nearby access points, although the specifics of how this works is beyond me.
The problem is that if this gets detected incorrectly, there's no way to override. What the users in this bug report found that attempting to set the regulatory domain manually resulted in two separate regulatory domains being defined, which still left the 5 GHz channels disabled on their devices.
A workaround for this firmware issue, previously, was to disable LAR, which would force the card to use the manually set regulatory domain. But this option was removed from the kernel due to it causing other problems.
So I don't think this is (exclusively) a non-US issue, it's an issue for people who live in a place where nearby access points will teach the WiFi driver the wrong regulatory domain ... however that works. It's probably less common for this to happen in the US, but not impossible.
Partially contrary to the title, I would expect this problem to affect a relatively small number of users.
Edit: I found a great blog post talking about the issue in more detail, although it's from the point of view of hosting an AP on the device. https://tildearrow.org/?p=post&month=7&year=2022&item=lar
Could it be as simple as somebody moving from Indonesia or wherever to America, and bringing their Indonesian/etc AP with them?
A nearby AP is not always sufficient for LAR to work properly, making AP startup finicky and slow at best. While also causing the issue that scans later on might affect functionality (https://tildearrow.org/?p=post&month=7&year=2022&item=lar). I guess you could also end up with totally incorrect (and illegal) location detection, but that's less likely than it not working at all (leaving everything disabled).
With 6GHz in the mix, the likelihood of automatic detection failing to find any nearby relevant APs rises significantly. Breaking all IR (initiate-radiation) functionality, AP mode included.
Still kind of crappy, but my experience with Broadcom is so bad that I'd rather lack the 160MHz channels (and use 80MHz) than try to get Broadcom's drivers to work right.
Shame about all the other problems with it.