Ottengo i timeout WiFi con il driver rt2800usb


10

Uso il driver rt2800usb (con un dongle USB RT5370) e ho configurato il mio Raspberry Pi come hotspot WiFi con hostapd. Il problema è che ricevo periodicamente timeout (vedi esempio). Questo non sarebbe un problema se non usassi il mio RPi come telecomando per un quadricottero. Sembra essere indipendente da come accendo il mio RPi e succede con tutti i dongle WiFi Ralink di questo tipo che ho.

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

uscita 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

Ho preparato una piccola grafica come illustrazione. Ho implementato la mia funzione ping (con tempi variabili per motivi di test) e vedo ogni ~ 12 secondi un timeout (indicato in rosso da un piccolo spazio). Credo che l'utente normale non noterà questi timeout quando naviga in Internet.

inserisci qui la descrizione dell'immagine


Hai detto che sembra essere indipendente da come si alimenta il pi. Significa che hai provato più alimentatori diversi?
AwesomeUser

Significa che ho provato ad alimentare direttamente da RPi e tramite USB-Hub. Tutto uguale. Sembra essere un bug di hostapd (improbabile), rt2800usb o del firmware (rt2870).
Dgrat

Hai provato ad alimentare il pi in modo diverso?
AwesomeUser

Sì, il problema non è legato all'alimentazione. Anche Ethernet funziona senza problemi.
Dgrat

Risposte:


7

Sembra essere un problema noto. Da quello che ho trovato, tutto ciò che possiamo fare è:

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

e disabilitare la crittografia hw (quindi verrà eseguita nel software). Modifica o crea /etc/modprobe.d/rt2800usb.conf:

options rt2800usb nohwcrypt=1

Inoltre, non dimenticare di aggiornare /lib/firmware/rt2870.bin secondo questo articolo http://www.raspberrypi.org/forums/viewtopic.php?t=22623 dal sito Web di MediaTek!

Versioni firmware per riferimento:

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 versione del firmware viene stampata all'avvio su dmesg nella riga contenente:
rt2x00lib_request_firmware: Info - Firmware rilevato - versione:


Attenzione, quando si disabilita la crittografia HW, si sollecita maggiormente la CPU.
martinlbb,

per il mio D-Link il firmware 0.33 sembra utile. poiché potrebbe non essere così facile trovare il firmware sul lato MediaTek in questi giorni, ci sono anche altre opzioni: una è quella di ottenere il firmware da github.com/afro-gum/DPO_RT5572_LinuxSTA/blob/master/common/…
ciekawy

0

Dopo l'aggiornamento all'ultimo kernel, sono passato 4 ore senza colpire quasi altrettanti di questi errori. Utilizzare rpi-updateper aggiornare il kernel.

Per riferimento, il mio uname -aè:

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

Di tanto in tanto ricevo ancora rt2800usb_entry_txstatus_timeouterrori, ma riempiva il mio dmesg. Non ricevo più gli Got TX status for an empty queueerrori.

Aggiornare:

Ho parlato troppo presto. Il mio pi è stato molto meglio per 7 ore, poi ho ricominciato a riempire di errori. Non sono stato in grado di capire cosa innesca l'errore inondazioni. Sembra che il problema non sia limitato a Raspberry Pi (anche su OpenWRT , Fedora , Kernel.org ). Sembra che alcune persone stiano segnalando che tutto è normale per un certo periodo di tempo prima che gli errori inizino.


0

Ho aggiornato il kernel (da Linux alarmpi 3.12.26-2-ARCH a Linux alarmpi 3.12.28-2-ARCH) questa mattina e da allora ho riempito il mio diario

rt2800usb_entry_txstatus_timeout: avviso - Timeout stato TX per la voce 6 nella coda 2

Potrebbe non essere una soluzione pulita, ma il downgrade del kernel alla versione precedente ha fatto funzionare di nuovo le cose (più di 7 ore dopo)


0

Sto usando un raspberry b +, linux 3.12.32+, con wipi wifi-dongle. Il pi è all'interno di un preamplificatore audio, con il dongle wifi collegato dall'esterno attraverso un cavo di prolunga usb (montato a pannello di tipo A). È fondamentale che la massa del cavo USB sia saldamente collegata allo chassis del preamplificatore. Altrimenti, riceviamo esattamente i messaggi di errore, come mostrato nella domanda. Non ho visto alcun miglioramento su questo con rasbian più recenti o versioni aggiornate di rt2870.bin (testato v0.36). Pertanto, in alcuni ambienti, i messaggi di errore di dmesg possono essere dovuti all'inquinamento radio nelle immediate vicinanze del dispositivo radio wifi (i motori generano frequenze che possono disturbare i dispositivi radio). Cerca di massimizzare la distanza tra la radio e il disturbo e / o migliorare lo schermo radio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.