基于 Ralink RT5572 的无线适配器在 5 GHz 频段的 AP 模式下无法使用 DFS 工作

基于 Ralink RT5572 的无线适配器在 5 GHz 频段的 AP 模式下无法使用 DFS 工作

客观的:

lsusb在基于 Linux 的系统(特别是 Ubuntu 16.04.4 LTS,内核 4.13)中,让 CSL USB 2.0 WLAN 适配器在 5 GHz 频段的 AP 模式下工作。根据命令的输出,USB 适配器基于 Ralink 的芯片组,即 RT5572:

(...)
Bus 001 Device 003: ID 148f:5572 Ralink Technology, Corp. RT5572 Wireless Adapter
(...)

问题:

channel我已经部分实现了我的目标:我能够通过设置文件中的变量将适配器设置为 5 GHz 频段的 AP,适用于通道 36、38……最多 48,hostapd.conf如下所示。

interface=wlx24050f615114
driver=nl80211
ssid=nikola-tesla
hw_mode=a
ieee80211n=1
ht_capab=HT40+
channel=48
country_code=PT
macaddr_acl=0
auth_algs=1           # 1=wpa, 2=wep, 3=both
wpa=2                 # WPA2 only
wpa_key_mgmt=WPA-PSK  
rsn_pairwise=CCMP
wpa_passphrase=xxxxxxxxxx
ignore_broadcast_ssid=0
logger_syslog=-1
logger_syslog_level=0

但是,“更高”的通道不起作用。例如,如果我设置channel=52(或更大),AP 设置会失败,hostapd 会显示以下错误消息:

hostapd: wlx24050f615114: IEEE 802.11 Configured channel (52) not found from the channel list of current mode (2) IEEE 802.11a
hostapd: wlx24050f615114: IEEE 802.11 Hardware does not support configured channel

请注意,‘工作’范围内的任何通道都不需要雷达检测(即不需要 DFS),如下面的输出所示iw list

Band 2:
    Bitrates (non-HT):
        * 6.0 Mbps
        * 9.0 Mbps
        * 12.0 Mbps
        * 18.0 Mbps
        * 24.0 Mbps
        * 36.0 Mbps
        * 48.0 Mbps
        * 54.0 Mbps
    Frequencies:
        * 5170 MHz [34] (disabled)
        * 5180 MHz [36] (20.0 dBm)
        * 5190 MHz [38] (20.0 dBm)
        * 5200 MHz [40] (20.0 dBm)
        * 5210 MHz [42] (20.0 dBm)
        * 5220 MHz [44] (20.0 dBm)
        * 5230 MHz [46] (20.0 dBm)
        * 5240 MHz [48] (20.0 dBm)
        * 5260 MHz [52] (20.0 dBm) (radar detection)
          DFS state: usable (for 15263 sec)
          DFS CAC time: 60000 ms
        * 5280 MHz [56] (20.0 dBm) (radar detection)
          DFS state: usable (for 15263 sec)
          DFS CAC time: 60000 ms
        * 5300 MHz [60] (20.0 dBm) (radar detection)
          DFS state: usable (for 15263 sec)
          DFS CAC time: 60000 ms
        * 5320 MHz [64] (20.0 dBm) (radar detection)
          DFS state: usable (for 15263 sec)
          DFS CAC time: 60000 ms

问题:

  • 为什么需要 DFS 的 5 GHz 信道不适用于此设置?

我有一些怀疑,但不知道如何去跟进:

报告的 DFS CAC(信道可用性检查)时间为iw reg get0 毫秒(如下所示),而 给出的值为iw list60秒(如上所示)。

country PT: DFS-ETSI
    (2402 - 2482 @ 40), (N/A, 20), (N/A)
    (5170 - 5250 @ 80), (N/A, 20), (N/A)
    (5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS
    (5490 - 5710 @ 160), (N/A, 27), (0 ms), DFS
    (57000 - 66000 @ 2160), (N/A, 40), (N/A)

这可能是具有 DFS 要求的通道不起作用的原因吗?我在这里的假设是,最大允许 CAC 时间为 0 毫秒会阻止每次雷达检测尝试。

设备中可能已‘刻录’了进一步的监管领域限制。我知道这个问题可能发生在 Atheros 芯片组上(例如,在固件/EEPROM 中设置 regdomain),并且有解决方法(例如这个例子)。但是,我找不到方法来检查 RT5572 是否也发生了同样的情况。有没有办法知道是否发生了这种情况?

  • 有谁能够让 DFS 通道与 Ralink 芯片组(例如 RT5572)配合使用吗?

答案1

我找到了一些可能可以回答我自己的问题的更多信息。

仅有的一些 Linux 无线驱动程序支持动态频率选择 (DFS),即 3:ath5k ath9kath10k。此功能在 中称为“自动信道选择 (ACS)”其他来源

我通过检查 Linux 中无线驱动程序的源代码证实了这一点,并注意到只有驱动ath*程序实现了诸如 之类的方法ieee80211_radar_detected()。这也许可以解释为什么hostapd在使用 RT5572 芯片组时无法将通道设置为 DFS 范围内的值(52 到 140)(注意:Linux 使用rt2800usb驱动程序与 RT5572 配合使用)。

相关内容