Linux 中的监管域和 Wi-Fi 发射功率级别管理(国家监管设置) 默认初始化情况
默认情况下,如果未定义国家/地区监管设置,我们会使用 WW(全球安全设置,即我们只在全球允许的频段上传输,发射功率符合所有国家/地区的法规要求)。
设置国家/地区
1/ 在 AP 模式下运行时:
- 我们通常在 hostapd.conf 中设置国家/地区代码(例如:country_code=JP)来定义国家 / 地区。
- 如果在 hostpad.conf 中设置了 ieee80211d=1,则此国家定义将被通告给所有连接的 STA
- 也可以使用 “iw reg set” 命令设置国家/地区。
2/ 在 STA 模式下操作时
- 可以使用 “iw reg set” 命令或在 wpa_supplicant.conf 中设置国家 / 地区代码(例如:country=jp)。
- 一旦连接到启用了 80211d 的 AP,STA 将切换到 AP 的国家 / 地区设置(可通过添加 country_ie_ignore=1 驱动参数禁用此行为)。
设置国家/地区后:
- 我们只会在该国家/地区允许的信道上传输
- 发射功率不超过该国家/地区的最大限制
- 我对于国家/地区声明为 DFS 信道的信道,我们可能会使用 DFS 功能。
TX功率设置
1/ 默认情况下,使用 Linux 监管设置(/lib/firmware/regulatory.db,由 db.txt 生成)
这些设置基于国家/地区定义了允许的信道、DFS 标志和最大发射功率。
详见下文 “Regulatory db” 部分。
2/ Linux 监管设置可通过以下方式覆盖:
a. cntry_txpwr=0 和 txpwrlimit_cfg=nxp/txpower.bin 驱动参数(由 txpower.conf(信道 / MCS-> 发射功率)生成,参见 AN13009)
所有国家/地区使用相同设置(静态)。
使用 db.txt 中的信道/标志,发射功率取 db.txt 与 txpower.bin/rgpower.bin 中的最小值。
b. cntry_txpwr=1(查找 nxp/txpower_XX.bin 文件(由 txpower.conf(信道 / MCS-> 发射功率)生成,参见 AN13009)
每个国家/地区 XX 需要一个 txpower_XX.bin 文件(动态加载,例如通过 iw reg set XX)。
使用 db.txt 中的通道/标志,以及 db.txt 和 txpower_XX.bin 之间的最小 TX 功率
cntry_txpwr
txpwrlimit_cfg
TX功率限制
方法
0
nxp/txpower.bin
nxp/txpower.bin(静态)
V1
1
-
nxp/txpower_XX.bin(动态)
V1 cfg
我们有默认的 TX 功率表,但客户可以根据他们的硬件调整这些 TX 功率设置。
请参考《AN13009 Linux 中的 Wi-Fi 发射功率管理》。
Regulatory db
来源https://wireless.wiki.kernel.org/en/developers/Regulatory/wireless-regdb
Wi-Fi 监管设置(允许的信道等)定义在 db.txt 中,然后转换为 regulatory.db(存储在 /lib/firmware 中)。
我们可以从这里获取官方的 db.txt 文件,并使用以下命令构建 regulatory.db:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/wens/wireless-regdb.git
make
Linux 内核会检查 regulatory.db 的完整性。
通过以下内核配置禁用 REGDB 签名检查:
CONFIG_EXPERT=y
CONFIG_CFG80211_CERTIFICATION_ONUS=y
# CONFIG_CFG80211_REQUIRE_SIGNED_REGDB 未设置
重新构建内核并烧写:
scp Image
[email protected]:/run/media/mmcblk0p1/
iw reg 命令示例和其他注释
root@imx8mqevk:~# iw reg get global country 00: DFS-UNSET (2402 - 2472 @ 40), (N/A, 20), (N/A) (2457 - 2482 @ 20), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN (2474 - 2494 @ 20), (N/A, 20), (N/A), NO-OFDM, PASSIVE-SCAN (5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN (5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW, PASSIVE-SCAN (5490 - 5730 @ 160), (N/A, 20), (0 ms), DFS, PASSIVE-SCAN (5735 - 5835 @ 80), (N/A, 20), (N/A), PASSIVE-SCAN (57240 - 63720 @ 2160), (N/A, 0), (N/A) root@imx8mqevk:~# iw reg get global country FR: DFS-ETSI (2400 - 2483 @ 40), (N/A, 20), (N/A) (5150 - 5250 @ 80), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (N/A, 20), (0 ms), NO-OUTDOOR, DFS, AUTO-BW (5470 - 5725 @ 160), (N/A, 26), (0 ms), DFS (5725 - 5875 @ 80), (N/A, 13), (N/A) (57000 - 66000 @ 2160), (N/A, 40), (N/A)
默认情况下(如果未设置国家/地区),我们使用全球域,这是限制最严格的。
你可以设置国家/地区(使用驱动模块参数、wpa_supplicant.conf 等),或者自动获取接入点提供的国家 / 地区信息 (80211d)。这将更新监管域,即允许的信道等。
你可以使用 “iw reg get” 命令检查国家/地区设置。
与您在 wpa_supplicant.conf 中设置的频道列表相比,监管域具有优先权。
OS LINUX 产品:WiFi 88MW32X 产品:WiFi 88W8801 产品:WiFi 88W8897 产品:WiFi 88W8987 产品:WiFi 88W8997 产品:WiFi 88X9098 产品:WiFi IW416 产品:WiFi IW6XX 产品:WiFi RW6XX 协议:Wi-Fi