硬件:英特尔伽利略第2代
系统:约克托Linux(物联网开发工具包图像)
用户:根
# iw reg set JP
# iw reg get
global
country 00: DFS-UNSET
(2402 - 2472 @ 40), (6, 20), (N/A)
(2457 - 2482 @ 40), (6, 20), (N/A), NO-IR
(2474 - 2494 @ 20), (6, 20), (N/A), NO-OFDM, NO-IR
(5170 - 5250 @ 40), (6, 20), (N/A), NO-IR
(5735 - 5835 @ 40), (6, 20), (N/A), NO-IR
(57240 - 63720 @ 2160), (N/A, 0), (N/A)
# iw list
Frequencies:
* 2412 MHz [1] (20.0 dBm)
* 2417 MHz [2] (20.0 dBm)
* 2422 MHz [3] (20.0 dBm)
* 2427 MHz [4] (20.0 dBm)
* 2432 MHz [5] (20.0 dBm)
* 2437 MHz [6] (20.0 dBm)
* 2442 MHz [7] (20.0 dBm)
* 2447 MHz [8] (20.0 dBm)
* 2452 MHz [9] (20.0 dBm)
* 2457 MHz [10] (20.0 dBm)
* 2462 MHz [11] (20.0 dBm)
* 2467 MHz [12] (20.0 dBm) (no IR)
* 2472 MHz [13] (20.0 dBm) (no IR)
* 2484 MHz [14] (20.0 dBm) (no IR)
注意事项:
Yocto 上默认没有安装“iw”,所以我从源代码编译它。
我只想启用 wifi 通道 14。
“iw”和相同的 WiFi 适配器在 Ubunte 17 上运行良好(没有 no-IR 标志)。
如何修复“iw”,或任何其他方式启用通道 14, 或者删除无红外标志?
答案1
事实上,iw reg get
仍然表明您的国家/地区代码为 00,这表明您尝试设置国家/地区代码失败。
如果iw
默认情况下未安装,您也可能会丢失/sbin/crda
.还应该有一个 udev 规则,例如
KERNEL=="regulatory*", ACTION=="change", SUBSYSTEM=="platform", RUN+="/sbin/crda"
[/usr]/lib/crda/regulatory.bin
用于在内核请求时(包括但不限于iw reg set
使用命令时)加载特定于国家/地区的监管信息。
成功后iw reg set JP
,iw reg get
命令应显示如下内容:
global
country JP: DFS-JP
(2402.000 - 2482.000 @ 40.000), (20.00), (N/A)
(2474.000 - 2494.000 @ 20.000), (20.00), (N/A), NO-OFDM
(4910.000 - 4990.000 @ 40.000), (23.00), (N/A)
(5030.000 - 5090.000 @ 40.000), (23.00), (N/A)
(5170.000 - 5250.000 @ 80.000), (20.00), (N/A), AUTO-BW
(5250.000 - 5330.000 @ 80.000), (20.00), (N/A), DFS, AUTO-BW
(5490.000 - 5710.000 @ 160.000), (23.00), (N/A), DFS
(59000.000 - 66000.000 @ 2160.000), (10.00), (N/A)
Linux无线监管系统在这里描述,包含各个组件源代码的链接。
答案2
确保您的路由器支持 802.11d,它会广播您的国家/地区域名。 iwlwifi 驱动程序将使用他们看到的第一个 802.11d 信标。
在我的路由器上启用 802.11d 解决了这个问题。