Recibo tiempos de espera de WiFi con el controlador rt2800usb

10

Utilizo el controlador rt2800usb (con un dongle RT5370 USB) y configuré mi Raspberry Pi como un punto de acceso WiFi con hostapd. El problema es que obtengo periódicamente tiempos de espera (ver ejemplo). Esto no sería un problema si no usara mi RPi como control remoto para un quadcopter. Parece ser independiente de cómo acciono mi RPi y sucede con todos los dongles wifi de Ralink de este tipo que tengo.

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

salida 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

Preparé un pequeño gráfico como ilustración. Implementé mi propia función de ping (con tiempos variables por razones de prueba) y veo cada ~ 12s un tiempo de espera (indicado en rojo por un pequeño espacio). Creo que el usuario normal no notará estos tiempos de espera cuando solo navegue en Internet.

ingrese la descripción de la imagen aquí

dgrat
fuente
Dijiste que parece ser independiente de cómo alimentas el pi. ¿Eso significa que has probado varias fuentes de alimentación diferentes?
AwesomeUser
Significa que intenté alimentar directamente el RPi y a través de USB-Hub. Todo igual. Parece ser un error de hostapd (poco probable), rt2800usb o del firmware (rt2870).
dgrat
¿Has intentado alimentar el pi de manera diferente?
AwesomeUser
Sí, el problema no está relacionado con el poder. Ethernet también funciona sin problemas.
dgrat

Respuestas:

7

Parece ser un problema conocido. Por lo que he encontrado, todo lo que podemos hacer es:

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

y deshabilite el cifrado hw (por lo que se hará en el software). Edite o cree /etc/modprobe.d/rt2800usb.conf:

options rt2800usb nohwcrypt=1

Además, no olvide actualizar /lib/firmware/rt2870.bin de acuerdo con este artículo http://www.raspberrypi.org/forums/viewtopic.php?t=22623 desde el sitio web de MediaTek.

Versiones de firmware para su referencia:

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)

La versión del firmware se imprime en el arranque a dmesg en la línea que contiene:
rt2x00lib_request_firmware: Información - Firmware detectado - versión:

k3a
fuente
Advertencia, al deshabilitar el cifrado de HW, estresas más tu CPU.
martinlbb
para mi D-Link, el firmware 0.33 parece útil. como puede no ser tan fácil encontrar el firmware en el lado de MediaTek en estos días, también hay otras opciones: una es obtener el archivo
ciekawy
0

Después de actualizar al kernel más reciente, pasé 4 horas sin encontrar casi tantos errores. Úselo rpi-updatepara actualizar su núcleo.

Como referencia, mi uname -aes:

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

Todavía recibo rt2800usb_entry_txstatus_timeouterrores ocasionalmente, pero solía llenar mi dmesg. Ya no recibo los Got TX status for an empty queueerrores.

Actualizar:

Habló demasiado pronto. Mi pi estuvo mucho mejor durante 7 horas y luego comenzó a recibir una avalancha de errores nuevamente. No he podido averiguar qué desencadena las inundaciones de error. Parece que el problema no se limita a Raspberry Pi (también en OpenWRT , Fedora , Kernel.org ). Parece que algunas personas informan que todo es normal durante un cierto tiempo antes de que se produzcan los errores.

johnboiles
fuente
0

Actualicé el kernel (desde Linux alarmpi 3.12.26-2-ARCH a Linux alarmpi 3.12.28-2-ARCH) esta mañana y desde entonces llené mi diario con

rt2800usb_entry_txstatus_timeout: Advertencia - Tiempo de espera de estado de TX para la entrada 6 en la cola 2

Puede que no sea una solución limpia, pero degradar el kernel a su versión anterior hizo que las cosas volvieran a funcionar (más de 7 horas después)

León
fuente
0

Estoy usando una frambuesa b +, linux 3.12.32+, con wipi wifi-dongle. El pi está dentro de un preamplificador de audio, con el dongle wifi conectado desde el exterior a través de un cable usb de extensión (montado en panel tipo A). Es fundamental que la tierra del cable USB esté firmemente conectada al chasis del preamplificador. De lo contrario, obtenemos exactamente los mensajes de error como se muestra en la pregunta. No he visto ninguna mejora en esto con las nuevas versiones actualizadas o rasbian de rt2870.bin (probado v0.36). Por lo tanto, en algunos entornos, los mensajes de error dmesg pueden deberse a la contaminación de radio en las proximidades del dispositivo de radio wifi (los motores generan frecuencias que pueden perturbar los dispositivos de radio). Intente maximizar la distancia entre la radio y la perturbación y / o mejore el blindaje de la radio.

Alejandro
fuente