Subject: bug#49611: Despite wireless-regdb being installed in my operating-system, dmesg indicates it can't find `regulatory.db`

From: Tom Fitzhenry <[email-masked]>
Date: Tue, 10 Aug 2021 09:45:46 +1000

On 20/07/2021 04:21, Katherine Cox-Buday wrote:
> This is not part of the bug per-say, but a question around this space:
> despite all of this, I still cannot broadcast on US approved channels.
> I think this is because the EEPROM on the card is set as global. What
> am I missing? Do you know how Linux intend for people to notify the
> stack that this is an OK thing to do? I know projects like OpenWRT
> carry patches to the driver, but I keep thinking surely this is not
> the only way.

https://github.com/pcengines/apu2-documentation/issues/189 tracks this 
issue for PC Engines, which retails wireless cards whose EEPROM uses a 
global region.

Disclaimer: I don't understand this well.

My understanding is that Linux does not offer a way for end users to 
override the EEPROM, per "It should be reasonably impossible for a user 
to fail to comply with local regulations either unwittingly or by 
accident."[0]

I can see two supported ways to set the regulatory domain:
* a card vendor/retailer performs certification, and flashes the EEPROM 
accordingly.
* a system integrator (e.g. off-the-shelf wireless routers, mobile 
phones, etc.) performs certification and sets 
CONFIG_CFG80211_CERTIFICATION_ONUS.

Linux does offer a way to indicate your current region via CRDA[1], but 
this is for the "travelling in another country" usecase, and acts to 
restrict the driver to intersection(EEPROM, country).

0. https://wireless.wiki.kernel.org/en/developers/regulatory/statement
1. https://wireless.wiki.kernel.org/en/developers/regulatory