Saya mendapatkan waktu tunggu WiFi dengan driver rt2800usb

10

Saya menggunakan driver rt2800usb (dengan dongle USB RT5370) dan mengkonfigurasikan Raspberry Pi saya sebagai hotspot WiFi dengan hostapd. Masalahnya adalah, saya mendapatkan timeout secara berkala (lihat contoh). Ini tidak akan menjadi masalah jika saya tidak akan menggunakan RPi saya sebagai remote control untuk quadcopter. Tampaknya tidak tergantung pada bagaimana saya daya RPI saya dan itu terjadi dengan semua dongle wifi Ralink jenis ini yang saya miliki.

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

output 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

Saya menyiapkan grafik kecil sebagai ilustrasi. Saya menerapkan fungsi ping saya sendiri (dengan pewaktuan variabel untuk alasan pengujian) dan melihat setiap waktu ~ 12 detik (ditunjukkan dengan warna merah oleh celah kecil). Saya percaya pengguna normal tidak akan melihat timeout ini, ketika hanya berselancar di internet.

masukkan deskripsi gambar di sini

dgrat
sumber
Anda mengatakan itu tampaknya tidak tergantung pada bagaimana Anda memberi kekuatan pada pi. Apakah itu berarti Anda telah mencoba beberapa catu daya yang berbeda?
AwesomeUser
Itu berarti saya mencoba memberi daya secara langsung oleh RPi dan melalui USB-Hub. Semuanya sama saja. Tampaknya merupakan bug dari hostapd (tidak mungkin), rt2800usb atau dari firmware (rt2870).
dgrat
Sudahkah Anda mencoba memberi daya pada pi secara berbeda?
AwesomeUser
Yap, masalahnya bukan power related. Ethernet juga berfungsi tanpa masalah.
dgrat

Jawaban:

7

Tampaknya menjadi masalah yang diketahui. Dari apa yang saya temukan, yang bisa kita lakukan adalah:

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

dan nonaktifkan enkripsi hw (jadi itu akan dilakukan dalam perangkat lunak). Edit atau buat /etc/modprobe.d/rt2800usb.conf:

options rt2800usb nohwcrypt=1

Juga jangan lupa untuk memperbarui /lib/firmware/rt2870.bin menurut artikel ini http://www.raspberrypi.org/forums/viewtopic.php?t=22623 dari situs web MediaTek!

Versi firmware untuk referensi Anda:

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)

Versi firmware dicetak saat bootup ke dmesg di baris yang berisi:
rt2x00lib_request_firmware: Info - Firmware terdeteksi - versi:

k3a
sumber
Peringatan, ketika menonaktifkan enkripsi HW, Anda lebih menekankan CPU Anda.
martinlbb
untuk D-Link saya, firmware 0,33 tampaknya membantu. karena mungkin tidak mudah untuk menemukan firmware di sisi MediaTek hari ini, ada juga opsi lain - satu adalah untuk mendapatkan fw
ciekawy
0

Setelah memperbarui ke kernel terbaru, saya sudah 4 jam tanpa mencapai kesalahan ini. Gunakan rpi-updateuntuk memperbarui kernel Anda.

Untuk referensi, saya uname -aadalah:

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

Saya masih mendapatkan rt2800usb_entry_txstatus_timeoutkesalahan sesekali, tetapi biasanya mengisi dmesg saya. Saya tidak lagi mendapatkan Got TX status for an empty queuekesalahan.

Memperbarui:

Berbicara terlalu cepat. Pi saya jauh lebih baik selama 7 jam kemudian mulai mendapatkan banjir kesalahan lagi. Belum dapat mengetahui apa yang memicu banjir kesalahan. Sepertinya masalah ini tidak terbatas pada Raspberry Pi (juga di OpenWRT , Fedora , Kernel.org ). Sepertinya beberapa orang melaporkan bahwa semuanya normal untuk jangka waktu tertentu sebelum kesalahan terjadi.

Johnboiles
sumber
0

Saya memperbarui kernel (dari Linux alarmpi 3.12.26-2-ARCH ke Linux alarmpi 3.12.28-2-ARCH) pagi ini dan sejak itu jurnal saya dipenuhi

rt2800usb_entry_txstatus_timeout: Peringatan - Batas waktu status TX untuk entri 6 dalam antrian 2

Mungkin bukan perbaikan bersih, tetapi menurunkan kernel ke versi sebelumnya membuat semuanya berfungsi kembali (lebih dari 7 jam kemudian)

leon
sumber
0

Saya menggunakan raspberry b +, linux 3.12.32+, dengan wipi wifi-dongle. Pi berada di dalam audio pre-amplifier, dengan wifi-dongle terhubung dari luar melalui kabel usb ekstensi (panel terpasang tipe A). Sangat penting bahwa kabel usb terhubung dengan kuat ke sasis pre-amp. Kalau tidak, kami mendapatkan pesan kesalahan persis seperti yang ditunjukkan dalam pertanyaan. Belum melihat adanya perbaikan pada ini dengan versi rasbian atau terbaru dari rt2870.bin (diuji v0.36) Jadi, di beberapa lingkungan, pesan kesalahan dmesg dapat disebabkan oleh polusi radio di dekat perangkat radio wifi (motor menghasilkan frekuensi yang dapat mengganggu perangkat radio). Cobalah untuk memaksimalkan jarak antara radio dan gangguan dan / atau meningkatkan perisai radio.

Alexander
sumber