当内核补丁通过时,我间歇性地观察到的问题是,我的 wifi 并不总是从 AP 获得监管域。症状是连接性差,频繁掉线,解决方法是发出命令sudo iw reg set US
,我通常将其放在 /etc/rc.local 中iw reg set US
所以问题是:有谁知道如何查询AP(一个linksys WRT610N)来询问它设置为什么监管域?
按照下面评论中的建议更改 /etc/default/ crda后,我上次启动的 /var/log/dmesg 的摘录如下: /etc/default/crda,监管域更新为US。
[ 12.109314] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUG disabled
[ 12.109317] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUGFS enabled
[ 12.109318] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TRACING enabled
[ 12.109320] iwlwifi 0000:02:00.0: Detected Intel(R) Centrino(R) Wireless-N 2230 BGN, REV=0xC8
[ 12.109419] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[ 12.124492] intel_rapl: domain uncore energy ctr 380974:380974 not working, skip
[ 12.183857] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[ 12.394864] cfg80211: World regulatory domain updated:
[ 12.394867] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 12.394868] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 12.394869] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 12.394870] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 12.394871] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 12.394872] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 12.522154] cfg80211: Calling CRDA for country: US
[ 12.523937] cfg80211: Regulatory domain changed to country: US
[ 12.523939] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 12.523941] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
[ 12.523942] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
[ 12.523943] cfg80211: (5250000 KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 12.523943] cfg80211: (5490000 KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 12.523944] cfg80211: (5650000 KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 12.523945] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
[ 12.523946] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm)
简短的回答是:您无法向 AP 查询其监管域。
这就是它应该如何工作的:
我不会担心,如果您的 802.11 设备正常工作并且没有其他问题,您可以忽略它。
您问:
Linux 的WiFi 配置标准
iw
工具可以执行此操作。802.11d可追溯到 2001 年,它为 WiFi 接入点提供了宣布国家和监管细节的能力,事实上大多数接入点都这样做了。请参阅 802.11 无线网络的“802.11 帧详细信息”一章:权威指南,了解有关如何在 WiFi 帧中准确编码此信息的详细信息。
这是我刚刚进行的 WiFi 扫描的摘录:
此处显示的第三个 AP 是我将国家代码设置更改为加拿大(而不是美国)的一个,以演示改变此字段的可能性。
尽管如此,似乎主流 Linux(据我所知也不是大多数其他操作系统)实际上都没有注意它们连接到的 AP 的 802.11d 设置,可能是因为 AP 可能会提供错误配置/过时/冲突的信息。美国的FCC已经规定设备不能完全依赖AP的监管配置来设置自己的监管配置;实际上,这意味着大多数设备只是简单地忽略AP 的监管信息并使用它们自己的信息,这些信息在默认情况下往往受到限制。