Я получаю тайм-ауты 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 секунд тайм-аут (обозначается красным зазором). Я считаю, что обычный пользователь не заметит эти тайм-ауты, когда просто серфить в интернете.

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


Вы сказали, что, кажется, не зависит от того, как вы питаете пи. Означает ли это, что вы пробовали несколько разных источников питания?
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 - Обнаружена прошивка - версия:


Предупреждение: при отключении 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 ). Похоже, некоторые люди сообщают, что все нормально в течение определенного периода времени, прежде чем появятся ошибки.


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 (двигатели генерируют частоты, которые могут мешать работе радиоустройств). Постарайтесь максимально увеличить расстояние между радио и помехой и / или улучшить радиозащиту.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.