Я получаю тайм-ауты WiFi с драйвером rt2800usb

10

Я использую драйвер rt2800usb (с USB-ключом RT5370) и настроил Raspberry Pi в качестве точки доступа WiFi с hostapd. Проблема в том, что я периодически получаю тайм-ауты (см. Пример). Это не было бы проблемой, если бы я не использовал свой RPi в качестве пульта дистанционного управления для квадрокоптера. Кажется, он не зависит от того, как я питаю свой RPi, и это происходит со всеми Wi-Fi-ключами Ralink этого типа, которые у меня есть.

Antwort von 192.168.42.1: Bytes=32 Zeit=1ms TTL=64
Antwort von 192.168.42.1: Bytes=32 Zeit=1ms TTL=64
Antwort von 192.168.42.1: Bytes=32 Zeit=1ms TTL=64
Zeitüberschreitung der Anforderung.
Antwort von 192.168.42.1: Bytes=32 Zeit=1ms TTL=64
Antwort von 192.168.42.1: Bytes=32 Zeit=1ms TTL=64
Antwort von 192.168.42.1: Bytes=32 Zeit=1ms TTL=64

вывод dmesg:

[ 2606.960813] ieee80211 phy0: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 6 in queue 2
[ 2606.960897] ieee80211 phy0: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 6 in queue 2
[ 2606.960925] ieee80211 phy0: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 6 in queue 2
[ 2606.961001] ieee80211 phy0: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 7 in queue 2
[ 2606.961052] ieee80211 phy0: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 8 in queue 2
[ 2606.961093] ieee80211 phy0: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 9 in queue 2
[ 2606.961133] ieee80211 phy0: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 10 in queue 2
[ 2606.961174] ieee80211 phy0: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 11 in queue 2
[ 2608.352291] ieee80211 phy0: rt2800usb_txdone: Warning - Got TX status for an empty queue 2, dropping
[ 2608.352524] ieee80211 phy0: rt2800usb_txdone: Warning - Got TX status for an empty queue 2, dropping
[ 2608.352766] ieee80211 phy0: rt2800usb_txdone: Warning - Got TX status for an empty queue 2, dropping
[ 2608.353014] ieee80211 phy0: rt2800usb_txdone: Warning - Got TX status for an empty queue 2, dropping
[ 2608.353262] ieee80211 phy0: rt2800usb_txdone: Warning - Got TX status for an empty queue 2, dropping
[ 2608.353511] ieee80211 phy0: rt2800usb_txdone: Warning - Got TX status for an empty queue 2, dropping

Я подготовил небольшую графику в качестве иллюстрации. Я реализовал свою собственную функцию ping (с переменными временными интервалами для целей тестирования) и наблюдаю каждые 12 секунд тайм-аут (обозначается красным зазором). Я считаю, что обычный пользователь не заметит эти тайм-ауты, когда просто серфить в интернете.

введите описание изображения здесь

dgrat
источник
Вы сказали, что, кажется, не зависит от того, как вы питаете пи. Означает ли это, что вы пробовали несколько разных источников питания?
AwesomeUser
Это означает, что я попытался включить питание напрямую через RPi и через USB-Hub. Все одинаково. Похоже, что это ошибка хоста (маловероятно), rt2800usb или прошивки (rt2870).
Дграт
Вы пробовали питать пи по-другому?
AwesomeUser
Да, проблема не связана с властью. Ethernet тоже работает без проблем.
Дграт

Ответы:

7

Кажется, это известная проблема. Из того, что я нашел, все, что мы можем сделать, это:

# disable power management (may need to be done periodically?)
iwconfig wlan0 power off 

и отключите шифрование hw (так будет сделано в программном обеспечении). Отредактируйте или создайте /etc/modprobe.d/rt2800usb.conf:

options rt2800usb nohwcrypt=1

Также не забудьте обновить /lib/firmware/rt2870.bin в соответствии с этой статьей http://www.raspberrypi.org/forums/viewtopic.php?t=22623 с сайта MediaTek!

Версии прошивки для вашей справки:

md5:36c944c3138125605d28c0a3a1338be9 version 0.29 from Raspian base install
md5:ac4f6d8b679945208a978e397c016aa7 version 0.33 from DPO_RT5572_LinuxSTA_2.6.1.3_20121022 (MediaTek website)

Версия прошивки
выводится при загрузке в dmesg в строке, содержащей: rt2x00lib_request_firmware: Info - Обнаружена прошивка - версия:

K3A
источник
Предупреждение: при отключении HW-шифрования вы больше нагружаете свой процессор.
martinlbb
для моего D-Link прошивка 0.33 кажется полезной. поскольку в наши дни найти прошивку на стороне MediaTek не так-то просто, есть и другие варианты - один из них - получить файл с github.com/afro-gum/DPO_RT5572_LinuxSTA/blob/master/common/…
ciekawy.
0

После обновления до последнего ядра у меня ушло 4 часа, и я не обнаружил почти столько же ошибок. Используйте rpi-updateдля обновления вашего ядра.

Для справки uname -a:

Linux boat-pi 3.12.28+ #713 PREEMPT Fri Sep 19 16:43:32 BST 2014 armv6l GNU/Linux

Я все еще rt2800usb_entry_txstatus_timeoutиногда получаю сообщение об ошибке, но оно заполняло мой dmesg. Я больше не получаю Got TX status for an empty queueошибки.

Обновить:

Говорил слишком рано Мой пи был намного лучше в течение 7 часов, после чего снова начался поток ошибок. Не удалось выяснить, что вызывает наводнения ошибки. Похоже, проблема не ограничивается Raspberry Pi (также на OpenWRT , Fedora , Kernel.org ). Похоже, некоторые люди сообщают, что все нормально в течение определенного периода времени, прежде чем появятся ошибки.

johnboiles
источник
0

Я обновил ядро ​​(от Linux alarmpi 3.12.26-2-ARCH до Linux alarmpi 3.12.28-2-ARCH) этим утром, и с тех пор мой журнал был заполнен

rt2800usb_entry_txstatus_timeout: Предупреждение - время ожидания состояния передачи для записи 6 в очереди 2

Исправление может быть не совсем чистым, но при переходе ядра к предыдущей версии все заработало снова (спустя более 7 часов)

Леон
источник
0

Я использую Raspberry B +, Linux 3.12.32+, с Wi-Fi Wi-Fi. Пи находится внутри звукового предварительного усилителя, с беспроводным ключом, подключенным снаружи через удлинительный USB-шнур (монтируется на панели типа A). Очень важно, чтобы заземление USB-кабеля было надежно подключено к корпусу предусилителя. В противном случае мы получаем именно те сообщения об ошибках, как показано в вопросе. Мы не увидели каких-либо улучшений в этом случае с более новыми rasbian или обновленными версиями rt2870.bin (протестировано v0.36). Таким образом, в некоторых средах сообщения об ошибках dmesg могут быть вызваны загрязнением радиосвязи в непосредственной близости от радиоустройства Wi-Fi (двигатели генерируют частоты, которые могут мешать работе радиоустройств). Постарайтесь максимально увеличить расстояние между радио и помехой и / или улучшить радиозащиту.

Александр
источник