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