Беспроводной адаптер на основе Ralink RT5572 не работает в режиме AP в полосе 5 ГГц с DFS
Задача:
Получите работу адаптера беспроводной локальной сети CSL USB 2.0 в режиме AP в диапазоне 5 ГГц в системе на основе Linux (в частности, Ubuntu 16.04.4 LTS, ядро 4.13). Адаптер USB основан на чипсете от Ralink, а именно RT5572, в соответствии с выходом lsusb
команда:
(...)
Bus 001 Device 003: ID 148f:5572 Ralink Technology, Corp. RT5572 Wireless Adapter
(...)
Проблема:
Я частично достиг своей цели: я могу установить адаптер в качестве точки доступа в диапазоне 5 ГГц для каналов 36, 38, ... до 48, установив переменную channel
в 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
Вопросы:
- Почему каналы 5 ГГц, требующие DFS, не работают с этой настройкой?
У меня есть некоторые подозрения, но я не знаю, как их исправить:
Время проверки доступности канала DFS, сообщаемое iw reg get
0 мс (показано ниже), а значение iw list
составляет 60 секунд (как показано выше).
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 (например, набором regdomain в прошивке /EEPROM), и что для этого есть обходные пути (например, как в этом примере). Однако я не смог найти способ проверить, происходит ли то же самое с RT5572. Есть ли способ узнать, происходит ли это?
- Кто-нибудь смог заставить каналы DFS работать с чипсетами Ralink (например, RT5572)?
1 ответ
Я нашел дополнительную информацию, которая может ответить на мой собственный вопрос.
Только некоторые беспроводные драйверы Linux поддерживают динамический выбор частоты (DFS), а именно 3: ath5k
ath9k
а также ath10k
, Эта функция называется "Автоматический выбор канала (ACS)" в другом источнике.
Я подтвердил это, проверив исходный код беспроводных драйверов в Linux, и заметил, что только ath*
драйверы реализуют такие методы, как ieee80211_radar_detected()
, Это может объяснить, почему hostapd
невозможно установить значение канала в диапазоне DFS (от 52 до 140), когда используется чипсет RT5572 (примечание: Linux использует rt2800usb
драйвер для работы с RT5572).