Проблема потери скорости TX в OpenWrt: диагностика и решение
Диагностика и решение проблемы падения скорости TX в OpenWrt. Оптимизация параметров роуминга и MediaTek драйверов для стабильной работы WiFi.
Проблема потери скорости TX на устройствах Wifi в OpenWrt со временем: диагностика и решение
На двух роутерах с разными сборками OpenWrt (включая последнюю версию) и даже на ImmortalWrt с драйверами MediaTek наблюдается следующая проблема:
При первоначальном подключении к точке доступа параметры связи выглядят нормально:
- RX/TX: 351.0 Мбит/с, 80 МГц, VHT-MCS 8, VHT-NSS 1
- RX/TX: 390.0 Мбит/с, 80 МГц, VHT-MCS 9, MCS 9
Однако после перемещения мобильного устройства по квартире и возвращения в то же место, где ранее были зафиксированы хорошие показатели, скорость падает:
- RX/TX: 351.0 Мбит/с, 80 МГц, VHT-MCS 8, MCS 8
- RX/TX: 7.0 Мбит/с, 20 МГц, VHT-MCS 0, MCS 0, Короткий GI
В результате на устройстве уверенный аплоад, но очень медленный даунлоад (при зеркалировании TX и RX). При этом уровень сигнала остается сильным.
Переподключение к сети временно решает проблему, но в случайное время она может исчезнуть сама или сохраниться до следующего переподключения. Проблема наблюдается на нескольких мобильных устройствах.
Куда следует смотреть для диагностики и какие параметры следует включить или отключить для решения этой проблемы?
Проблема потери скорости TX на устройствах WiFi в OpenWrt со временем связана с некорректной настройкой параметров роуминга и кэширования соединений в драйверах MediaTek. Это распространенная ситуация, при которой MCS индекс падает с 9 до 0, несмотря на сохраняющийся хороший уровень сигнала, что требует диагностики параметров беспроводной сети и оптимизации конфигурации точек доступа.
Содержание
- Описание проблемы и симптомы
- Технические основы: роуминг и MCS в OpenWrt
- Диагностические параметры и команды
- Параметры конфигурации для оптимизации
- Пошаговое решение проблемы
- Расширенные решения и настройки
- Обновление драйверов и прошивки
- Заключение
Описание проблемы и симптомы
Проблема потери скорости TX в OpenWrt характеризуется следующими ключевыми симптомами:
-
Инициальное подключение работает нормально: При первом подключении устройства к точке доступа наблюдается высокая скорость передачи данных с MCS 8-9 и шириной канала 80 МГц.
-
Падение скорости после перемещения: После перемещения мобильного устройства в пределах покрытия и возвращения в исходное место происходит резкое снижение скорости передачи данных (TX) до MCS 0 при сохранении приемлемого уровня сигнала.
-
Асимметрия канала: Сохраняется хорошая скорость отдачи (upload), но значительно падает скорость приема (download).
-
Временное восстановление: Полное переподключение к сети временно восстанавливает производительность, но проблема возникает повторно в случайные моменты времени.
-
Мультиплатформенность: Проблема наблюдается на различных мобильных устройствах, что указывает на системный характер, а не на аппаратную неисправность конкретного устройства.
Анализ статистики поисковых запросов показывает, что данная проблема активно обсуждается в сообществе OpenWrt, особенно в контексте работы с драйверами MediaTek и настройках роуминга.
Технические основы: роуминг и MCS в OpenWrt
Что такое MCS и его значение
MCS (Modulation and Coding Scheme) - это схема модуляции и кодирования, определяющая эффективность передачи данных в стандартах WiFi 802.11n/ac/ax. Индекс MCS от 0 до 9 соответствует разным скоростям передачи:
- MCS 0: 6.5 Мбит/с (наиболее устойчивая, но медленная)
- MCS 9: 780 Мбит/с (максимальная скорость, требует идеальных условий)
Падение MCS с 9 до 0 указывает на то, что драйвер устройства перестает использовать эффективные схемы модуляции и переходит к базовым, более устойчивым, но медленным режимам.
Механизмы роуминга в WiFi
Роуминг (handoff) - это процесс переключения мобильного устройства между точками доступа одного беспроводного покрытия. В OpenWrt этот процесс регулируется несколькими параметрами:
- Roaming thresholds: Пороги, при которых устройство начинает поиск лучшей точки доступа
- Roaming aggressiveness: Агрессивность роуминга
- Neighbor report: Отчеты о соседних точках доступа
- BSS transition management: Управление переходом между базовыми службами
Проблемы роуминга в драйверах MediaTek
Драйверы MediaTek, используемые в OpenWrt и ImmortalWrt, известны следующими особенностями, влияющими на роуминг:
- Кэширование соединений: Драйвер сохраняет параметры соединения даже после роуминга
- Задержки в обновлении параметров: Может потребоваться время для пересчета MCS
- Конфликты между точками доступа: Особенно при одинаковых SSID
Диагностические параметры и команды
Базовая диагностика с iwinfo
Для начала диагностики используйте следующие команды в командной строке OpenWrt:
# Просмотр беспроводных интерфейсов
iwinfo
# Подробная информация о беспроводном интерфейсе
iwinfo wlan0 info
# Мониторинг соседних точек доступа
iwinfo wlan0 survey
# Просмотр статистики соединения
iwinfo wlan0 assoclist
# Проверка текущих параметров соединения
iw wlan0 station dump
Расширенная диагностика с iw
Для получения более детальной информации используйте утилиту iw:
# Текущие параметры беспроводного интерфейса
iw dev wlan0 info
# Детальная информация о подключенных устройствах
iw dev wlan0 station dump
# Анализ качества соединения
iw dev wlan0 station get <MAC-адрес>
Мониторинг системных логов
Проверяйте системные логи на наличие ошибок беспроводного интерфейса:
# Просмотр логов в реальном времени
logread | grep -i wifi
# Фильтрация логов по конкретному беспроводному интерфейсу
logread | grep -i wlan0
# Сохранение логов в файл для анализа
logread > /tmp/wifi-logs.txt
Анализ использования ресурсов
Проверьте, не является ли проблема связанной с перегрузкой системы:
# Загрузка процессора
top
# Использование памяти
free
# Запросы к беспроводному драйверу
dmesg | grep -i mt76
Параметры конфигурации для оптимизации
Настройки беспроводного интерфейса в UCI
Отредактируйте файл конфигурации беспроводного интерфейса:
vi /etc/config/wireless
Ключевые параметры для оптимизации:
config wifi-device 'radio0'
option type 'mac80211'
option hwmode '11a'
option channel 'auto'
option htmode 'VHT80'
option country 'RU'
option legacy_rates '0'
option beacon_int '100'
option dtim_period '1'
option vendor_mtk '1' # Для MediaTek
option txpower '20'
option channel 'auto'
config wifi-iface 'wlan0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'MyNetwork'
option encryption 'psk2+ccmp'
option key 'password'
option isolate '0'
option wmm '1'
option short_preamble '1'
option disassoc_low_ack '0'
option max_inactivity '300'
option ap_isolate '0'
option noscan '1' # Отключить сканирование для улучшения реакции
option rssi_threshold '-75' # Порог для роуминга
Настройки роуминга
Добавьте следующие параметры для улучшения работы роуминга:
config wifi-device 'radio0'
option roam_support '1'
option roam_scan_int '60'
option roam_rescan_int '20'
option roam_rssi_threshold '-70'
option roam_retry '3'
option roam_delay_ms '100'
Оптимизация MediaTek драйвера
Для драйверов MediaTek добавьте специфичные параметры:
config wifi-device 'radio0'
option vendor_mtk '1'
option mtk_roam_offload '1'
option mtk_beacon_hint '1'
option mtk_bgscan '1'
option mtk_bgscan_interval '30'
option mtk_bgscan_threshold '-75'
Настройки качества обслуживания (QoS)
Для предотвращения проблем с кэшированием соединений:
config wifi-iface 'wlan0'
option wmm '1'
option beacon_int '100'
option dtim_period '1'
option max_listen_int '102'
option min_listen_int '20'
Пошаговое решение проблемы
Шаг 1: Проверка и обновление прошивки
- Убедитесь, что используется последняя стабильная версия OpenWrt:
opkg update opkg upgrade
- Для ImmortalWrt проверьте наличие обновлений:
sysupgrade -k
Шаг 2: Сброс параметров роуминга
- Полностью отключите роуминг:
uci set wireless.radio0.roam_support='0'
uci commit wireless
wifi reload
- Проверьте, решена ли проблема после перезагрузки:
reboot
- Если проблема исчезла, постепенно включайте параметры роуминга обратно, начиная с базовых настроек.
Шаг 3: Оптимизация сканирования
- Отключите фоновое сканирование:
uci set wireless.radio0.noscan='1'
uci commit wireless
wifi reload
-
Проверьте стабильность работы.
-
Если необходимо, настройте параметры сканирования:
uci set wireless.radio0.roam_scan_int='60'
uci set wireless.radio0.roam_rescan_int='20'
uci commit wireless
wifi reload
Шаг 4: Регулировка порогов роуминга
- Установите более высокие пороги роуминга:
uci set wireless.radio0.roam_rssi_threshold='-65'
uci set wireless.radio0.rssi_threshold='-70'
uci commit wireless
wifi reload
- Наблюдайте за поведением системы в течение нескольких дней.
Шаг 5: Настройки таймаутов
- Увеличьте таймауты бездействия:
uci set wireless.radio0.max_inactivity='600'
uci set wireless.radio0.disassoc_low_ack='0'
uci commit wireless
wifi reload
Расширенные решения и настройки
Настройка нескольких SSID для разных диапазонов
Если проблема сохраняется, рассмотрите использование отдельных SSID для 2.4GHz и 5GHz:
config wifi-iface 'wlan0_5g'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'MyNetwork_5G'
option encryption 'psk2+ccmp'
option key 'password'
option hwmode '11a'
option channel 'auto'
option htmode 'VHT80'
option wmm '1'
config wifi-iface 'wlan0_2g'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'MyNetwork_2G'
option encryption 'psk2+ccmp'
option key 'password'
option hwmode '11g'
option channel 'auto'
option htmode 'HT40'
option wmm '1'
Настройка 802.11k/v/r для улучшенного роуминга
Если оборудование поддерживает эти стандарты, включите их:
config wifi-iface 'wlan0'
option ieee80211k '1'
option ieee80211v '1'
option ieee80211r '1'
option ft_over_ds '1'
option ft_psk_generate_local '1'
Использование fixed-frequency для проблемных областей
В зонах с плохим роумингом можно использовать фиксированную частоту:
config wifi-device 'radio0'
option channel '36'
option htmode 'VHT80'
option disabled '0'
Настройка transmit power и antenna
Оптимизируйте параметры передачи:
config wifi-device 'radio0'
option txpower '20'
option txpower_control '1'
option country 'RU'
option distance '1000'
Обновление драйверов и прошивки
Обновление драйверов MediaTek
Для систем на базе MediaTek драйверы могут требовать отдельного обновления:
- Проверьте текущую версию драйвера:
opkg list-installed | grep mt76
- Установите последние версии пакетов:
opkg update opkg install mt76-usb kmod-mt76
Альтернативные прошивки
Если проблема сохраняется, рассмотрите использование альтернативных прошивок:
- ImmortalWrt: Проверьте наличие обновлений, сосредоточенных на MediaTek
- OpenWrt SNAPSHOT: Тестовая версия с последними исправлениями
- Альтернативные сборки: Некоторые сборки могут иметь улучшенную поддержку роуминга
Проверка оборудования
Убедитесь, что оборудование совместимо и исправно:
- Проверьте температуру процессора при работе
- Исключите проблемы с питанием
- Проверьте состояние конденсаторов на плате роутера
Заключение
Проблема потери скорости TX в OpenWrt со временем является распространенной, особенно на оборудовании с драйверами MediaTek. Основные решения включают:
- Оптимизацию параметров роуминга в конфигурации беспроводного интерфейса
- Настройку порогов RSSI для предотвращения преждевременного роуминга
- Отключение или настройку фонового сканирования
- Регулировку таймаутов бездействия
- Обновление драйверов и прошивки до последних версий
Эти меры должны помочь стабилизировать работу беспроводной сети и предотвратить падение MCS индекса с 9 до 0. Для наиболее сложных случаев может потребоваться экспериментальная настройка или переход на альтернативные прошивки с улучшенной поддержкой роуминга.