Вопрос или проблема
Я пытаюсь уменьшить битрейт подключения на своем usb wifi адаптере Atheros TP-Link TL-WN821N v3 из-за частых проблем с нестабильностью (заявленная скорость подключения падает до 1 Мб/с, и мне приходится физически переподключать адаптер, чтобы восстановить соединение). Я знаю, что это распространенная проблема с этим устройством, и я пробовал все, что мог придумать, чтобы это исправить, включая использование драйверов из linux-backports; компиляцию и установку пользовательской прошивки (следуя инструкциям на https://wiki.debian.org/ath9k_htc#fw-free) и (в качестве последнего средства) использование ndiswrapper.
При использовании ndiswrapper wifi адаптер стабилен и работает в g режиме на 54 Мб/с (в то время как при использовании стандартного модуля ath9k_htc адаптер подключается в n режиме, а битрейт постоянно колеблется). К сожалению, с этой настройкой я вынужден запускать свой процессор, используя только одно ядро, так как использование SMP с ndiswrapper вызывает ошибку ядра в моей системе.
Поэтому я хочу зафиксировать свой битрейт на 54 Мб/с (или меньше, если нужно) для стабильности соединения, используя модуль ath9k_htc.
Я пробовал ‘sudo iwconfig wlan0 rate 54M’; команда выполняется без ошибок, но когда я проверяю битрейт с помощью ‘sudo iwlist wlan0 bitrate’, команда возвращает:
wlan0 неизвестная информация о битрейте.
Текущий битрейт: 78 Мб/с
Есть какие-либо идеи? Вот некоторая информация (надеюсь, актуальная) о моей настройке:
Xubuntu (12.04.3) 64bit (ядро 3.2.0-55.85-generic) с использованием Network Manager. Мой маршрутизатор от Virgin Media, VMDG480.
lshw -C network :
*-network
описание: Беспроводной интерфейс
физический id: 1
информация шины: usb@1:4
логическое имя: wlan0
серийный номер: 74:ea:3a:8f:16:b6
возможности: ethernet physical wireless
конфигурация: broadcast=yes driver=ath9k_htc driverversion=3.2.0-55 firmware=1.3 ip=192.168.0.9 link=yes multicast=yes wireless=IEEE 802.11bgn
lsusb -v:
Bus 001 Device 003: ID 0cf3:7015 Atheros Communications, Inc. TP-Link TL-WN821N v3 802.11n [Atheros AR7010+AR9287]
Описание устройства:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Специфический класс поставщика
bDeviceSubClass 255 Специфический подкласс поставщика
bDeviceProtocol 255 Специфический протокол поставщика
bMaxPacketSize0 64
idVendor 0x0cf3 Atheros Communications, Inc.
idProduct 0x7015 TP-Link TL-WN821N v3 802.11n [Atheros AR7010+AR9287]
bcdDevice 2.02
iManufacturer 16 ATHEROS
iProduct 32 UB95
iSerial 48 12345
bNumConfigurations 1
Описание конфигурации:
bLength 9
bDescriptorType 2
wTotalLength 60
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Питание от шины)
MaxPower 500mA
Описание интерфейса:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 6
bInterfaceClass 255 Специфический класс поставщика
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Описание конечной точки:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Тип передачи Bulk
Тип синхронизации None
Тип использования Data
wMaxPacketSize 0x0200 1x 512 байт
bInterval 0
Описание конечной точки:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Тип передачи Bulk
Тип синхронизации None
Тип использования Data
wMaxPacketSize 0x0200 1x 512 байт
bInterval 0
Описание конечной точки:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Тип передачи Interrupt
Тип синхронизации None
Тип использования Data
wMaxPacketSize 0x0040 1x 64 байта
bInterval 1
Описание конечной точки:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 3
Тип передачи Interrupt
Тип синхронизации None
Тип использования Data
wMaxPacketSize 0x0040 1x 64 байта
bInterval 1
Описание конечной точки:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Тип передачи Bulk
Тип синхронизации None
Тип использования Data
wMaxPacketSize 0x0200 1x 512 байт
bInterval 0
Описание конечной точки:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 2
Тип передачи Bulk
Тип синхронизации None
Тип использования Data
wMaxPacketSize 0x0200 1x 512 байт
bInterval 0
Квалификатор устройства (для другой скорости устройства):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 255 Специфический класс поставщика
bDeviceSubClass 255 Специфический подкласс поставщика
bDeviceProtocol 255 Специфический протокол поставщика
bMaxPacketSize0 64
bNumConfigurations 1
Статус устройства: 0x0000
(Питание от шины)
iwlist wlan0 scanning:
wlan0 Сканирование завершено :
Ячейка 01 - Адрес: C4:3D:C7:3A:1F:5D
Канал:1
Частота:2.412 GHz (Канал 1)
Качество=37/70 Уровень сигнала=-73 dBm
Ключ шифрования:включен
ESSID:"мой essid"
Битрейты:1 Мб/с; 2 Мб/с; 5.5 Мб/с; 11 Мб/с; 18 Мб/с
24 Мб/с; 36 Мб/с; 54 Мб/с
Битрейты:6 Мб/с; 9 Мб/с; 12 Мб/с; 48 Мб/с
Режим:Мастер
Дополнительно:tsf=00000070cca77186
Дополнительно: Последний маяк: 5588ms назад
IE: Неизвестно: 0007756E69636F726E
IE: Неизвестно: 010882848B962430486C
IE: Неизвестно: 030101
IE: Неизвестно: 2A0100
IE: Неизвестно: 2F0100
IE: IEEE 802.11i/WPA2 Версия 1
Групповая шифра : TKIP
Парные шифры (2) : CCMP TKIP
Наборы аутентификации (1) : PSK
IE: Неизвестно: 32040C121860
IE: Неизвестно: 2D1AFC181BFFFF000000000000000000000000000000000000000000
IE: Неизвестно: 3D1601080400000000000000000000000000000000000000
IE: Неизвестно: DD7E0050F204104A0001101044000102103B00010310470010F99C335D7BAC57FB00137DFA79600220102100074E657467656172102300074E6574676561721024000631323334353610420007303030303030311054000800060050F20400011011000743473331303144100800022008103C0001011049000600372A000120
IE: Неизвестно: DD090010180203F02C0000
IE: WPA Версия 1
Групповая шифра : TKIP
Парные шифры (2) : CCMP TKIP
Наборы аутентификации (1) : PSK
IE: Неизвестно: DD180050F2020101800003A4000027A4000042435E0062322F00
iwconfig:
lo нет беспроводных расширений.
wlan0 IEEE 802.11bgn ESSID:"мой essid"
Режим:Управляемый Частота:2.412 GHz Точка доступа: C4:3D:C7:3A:1F:5D
Битрейт=78 Мб/с Tx-Power=20 dBm
Ограничение повторов: 7 RTS thr:off Fragment thr:off
Управление питанием:off
Качество соединения=36/70 Уровень сигнала=-74 dBm
Неправильный nwid:0 Неправильное шифрование:0 Неправильный фрагмент:0
Чрезмерные повторы передачи:0 Неверные разнообразные:0 Пропущенные маяки:0,
У меня нет этого оборудования, поэтому я не могу протестировать, однако, похоже, что скорость определяется прошивкой. Есть исправленная прошивка здесь, которая должна работать с ядром 3.2.0-55.85-generic и, возможно, с более поздними ядрами тоже.
Цитируя befinitiv
Вы находите предварительно скомпилированную прошивку, которая использует MCS3 (26 мбит/с) в качестве скорости инъекции под patches/AR9271/firmware/htc_9271.fw. Скопируйте этот файл в /lib/firmware и повторно вставьте карту, чтобы использовать измененную прошивку. Если вы хотите скомпилировать прошивку с другой скоростью инъекции, вы можете взглянуть на патч, который я предоставил. Самый простой способ – заменить первую строку в списке копией желаемой скорости инъекции. Инструкции по компиляции прошивки для Linux приведены в репозитории прошивки.
После установки прошивки просто повторно подключите USB-адаптер, чтобы использовать его.
Источники:
https://github.com/qca/open-ath9k-htc-firmware/blob/master/README
Редактировать: Как указывает @pandalion98 в этом комментарии, обсуждаемый патч можно найти здесь.
Используйте iw вместо этого:
iw wlan0 set bitrates legacy-2.4 9
перед установлением соединения
Ответ или решение
К сожалению, управлять битрейтом соединения с помощью iwconfig
для вашего адаптера TP-Link TL-WN821N v3 (основанного на чипсете Atheros AR7010) может быть сложно. Это связано с тем, что многие адаптеры, включая ваш, используют драйвер ath9k_htc
, которые не всегда поддерживают явное управление битрейтом на уровне, желаемом вами.
Проблема и Решения
Описание проблемы
Вы столкнулись с нестабильностью соединения, когда скорость подключения падает до 1 Мбит/с, и требуется физическое переподключение адаптера. Вы пробовали различные драйверы и подходы, включая использование ndiswrapper
, что привело к незначительному улучшению, но с препятствиями в виде ошибок ядра.
Изменение битрейта
Попытка установить битрейт с помощью команды sudo iwconfig wlan0 rate 54M
не приводит к ожидаемым результатам, поскольку вы не можете заморозить битрейт в ath9k_htc
. Вместо этого советую использовать более современный инструмент — iw
.
Использование iw
для управления битрейтом
Попробуйте установить битрейт с помощью iw
. Введите следующую команду перед подключением к сети:
sudo iw wlan0 set bitrates legacy-2.4 54
Эта команда устанавливает максимум битрейта для сети 2.4 ГГц. Однако важно помнить, что изменение битрейта не всегда гарантирует стабильность соединения, особенно если сигнал от вашего маршрутизатора нестабилен.
Firmware и поддержка
Ваше обращение к альтернативным прошивкам и драйверам имеет смысл. Рассмотрите возможность использования прошивки из репозитория open-ath9k-htc-firmware, как вы уже упомянули. Замена стандартной прошивки на более стабильную версию может значительно улучшить производительность вашего адаптера.
- Загрузите прошивку из репозитория.
- Скопируйте прошивку в директорию
/lib/firmware
. - Перезагрузите или перезапустите адаптер командой
sudo rmmod ath9k_htc && sudo modprobe ath9k_htc
.
Заключение
Чтобы повысить стабильность соединения с вашим адаптером TP-Link TL-WN821N v3, рекомендуем использовать комбинацию:
iw
для управления битрейтом- Нормализированную, исправленную прошивку
Если указанные шаги не решат проблему, возможно стоит рассмотреть приобретение другого адаптера, который будет обеспечивать более надежное соединение и поддержку актуальных стандартов Wi-Fi.
Если возникнут дополнительные вопросы, не стесняйтесь спрашивать!