PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit USB-WLAN-Stick



spirou
21.02.12, 09:52
Hallo,

ich habe unter Gentoo-Linux folgendes Problem mit einem USB-WLAN-Stick mit Ralink rt2870-Chipsatz:

Bis Kernel 2.6.29 funktioniert er prima mit den Staging-Treibern. Danach wurden die Treiber stable, und ab da geht bei mir nix mehr. Die Module werden geladen (rt2800usb, rt2800lib, rt2x00usb und rt2x00lib), anscheinend wird wlan0 auch angelegt, aber iwconfig sagt nur

wlan0 no wireless extension.
Ich kann also mit wlan0 nichts anfangen, keine Verbindung, nix.
Ich hab das ganze dann auch mal mit einer Ubuntu-Live-CD ausprobiert, da werden die gleichen Module geladen und da funktioniert es auch.
Somit gehe ich davon aus, daß ich irgendwo einen Konfigurationsfehler habe, nur weiß ich nicht mehr, wo ich suchen soll.

Die Firmware liegt unter /lib/firmware, ob sie geladen wird, weiß ich nicht. Kann man das irgendwie sehen? Was könnte denn sonst noch falsch sein?

Ausgabe von lsusb:

Bus 002 Device 003: ID 7392:7711 Edimax Technology Co., Ltd EW-7711UTn nLite Wireless Adapter [Ralink RT2870]

Danke
Spirou :D

zyrusthc
21.02.12, 13:50
Steht in dmesg oder der syslog was brauchbares?

Greeez Oli

spirou
21.02.12, 19:24
Nicht wirklich...Das ist ja mein Problem. Ich weiß überhaupt nicht, wo ich ansetzen soll, weil ich keinerlei Fehlermeldung hab. Könnte es denn sein, daß der Treiber gar nicht stable geworden ist, sondern nur der staging-Treiber entfernt wurde, also ersatzlos gestrichen? Muß mal ins Kernellog gucken.


Feb 20 13:04:04 dreamiceland kernel: [ 396.396141] hub 2-1:1.0: state 7 ports 8 chg 0000 evt 0002
Feb 20 13:04:04 dreamiceland kernel: [ 396.396480] hub 2-1:1.0: port 1, status 0101, change 0001, 12 Mb/s
Feb 20 13:04:04 dreamiceland kernel: [ 396.499834] hub 2-1:1.0: debounce: port 1: total 100ms stable 100ms status 0x101
Feb 20 13:04:04 dreamiceland kernel: [ 396.510834] hub 2-1:1.0: port 1 not reset yet, waiting 10ms
Feb 20 13:04:04 dreamiceland kernel: [ 396.572653] usb 2-1.1: new high-speed USB device number 5 using ehci_hcd
Feb 20 13:04:04 dreamiceland kernel: [ 396.585643] hub 2-1:1.0: port 1 not reset yet, waiting 10ms
Feb 20 13:04:04 dreamiceland kernel: [ 396.670671] usb 2-1.1: default language 0x0409
Feb 20 13:04:04 dreamiceland kernel: [ 396.677280] usb 2-1.1: udev 5, busnum 2, minor = 132
Feb 20 13:04:04 dreamiceland kernel: [ 396.677285] usb 2-1.1: New USB device found, idVendor=7392, idProduct=7711
Feb 20 13:04:04 dreamiceland kernel: [ 396.677288] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Feb 20 13:04:04 dreamiceland kernel: [ 396.677292] usb 2-1.1: Product: 802.11 n WLAN
Feb 20 13:04:04 dreamiceland kernel: [ 396.677295] usb 2-1.1: Manufacturer: Ralink
Feb 20 13:04:04 dreamiceland kernel: [ 396.677298] usb 2-1.1: SerialNumber: 1.0
Feb 20 13:04:04 dreamiceland kernel: [ 396.677431] usb 2-1.1: usb_probe_device
Feb 20 13:04:04 dreamiceland kernel: [ 396.677437] usb 2-1.1: configuration #1 chosen from 1 choice
Feb 20 13:04:04 dreamiceland kernel: [ 396.677636] usb 2-1.1: adding 2-1.1:1.0 (config #1, interface 0)
Feb 20 13:04:04 dreamiceland kernel: [ 396.678876] rt2800usb 2-1.1:1.0: usb_probe_interface
Feb 20 13:04:04 dreamiceland kernel: [ 396.678878] rt2800usb 2-1.1:1.0: usb_probe_interface - got id
Feb 20 13:04:04 dreamiceland kernel: [ 396.690484] hub 2-1:1.0: port 1 not reset yet, waiting 10ms
Feb 20 13:04:04 dreamiceland kernel: [ 396.752202] usb 2-1.1: reset high-speed USB device number 5 using ehci_hcd
Feb 20 13:04:04 dreamiceland kernel: [ 396.765166] hub 2-1:1.0: port 1 not reset yet, waiting 10ms
Feb 20 13:04:04 dreamiceland kernel: [ 396.869885] phy1 -> rt2x00_set_chip: Info - Chipset detected - rt: 3070, rf: 0005, rev: 0201.
Feb 20 13:04:04 dreamiceland kernel: [ 396.869966] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
Feb 20 13:04:04 dreamiceland kernel: [ 396.870464] Registered led device: rt2800usb-phy1::radio
Feb 20 13:04:04 dreamiceland kernel: [ 396.870474] Registered led device: rt2800usb-phy1::assoc
Feb 20 13:04:04 dreamiceland kernel: [ 396.870484] Registered led device: rt2800usb-phy1::quality
Feb 20 13:04:04 dreamiceland kernel: [ 396.870530] drivers/usb/core/inode.c: creating file '005'
Feb 20 13:04:04 dreamiceland [ 396.883291] udevd[6379]: renamed network interface wlan0 to wlan1
Feb 20 13:04:04 dreamiceland /etc/init.d/net.wlan1[6390]: net.wlan1: not allowed to be hotplugged

zyrusthc
21.02.12, 19:26
Das sollte sich mit modinfo rausfinden lassen ob es die selben Module sind.

Greeez Oli

spirou
22.02.12, 09:24
Ah ja, das ist schon mal ein guter Tipp. Anscheinend hat sich am alten, nicht funktionierenden Treiber gar nichts geändert. Aber wo ist dann der Staging-Treiber geblieben? Der Treiber von ralinktech.com lässt sich bei mir jedenfalls auch nicht kompilieren.

Der Staging-Treiber (funktioniert, nur vorhanden bis 2.6.39):

filename: /lib/modules/2.6.39-gentoo-r3/kernel/drivers/staging/rt2870/rt2870sta.ko
version: 2.1.0.0
license: GPL
description: RT2870/RT3070 Wireless Lan Linux Driver
author: Paul Lin <paul_lin@ralinktech.com>
firmware: rt3071.bin
firmware: rt3070.bin
firmware: rt2870.bin
srcversion: 93C0C58E1A016FE5BD4DC9F


Der Nicht funktionierende aus dem selben Kernel:

filename: /lib/modules/2.6.39-gentoo-r3/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
license: GPL
firmware: rt2870.bin
description: Ralink RT2800 USB Wireless LAN driver.
version: 2.3.0
author: http://rt2x00.serialmonkey.com
srcversion: 1BF0335B5467644CC4BAF13


Der nicht funktionierende aus dem neuen Kernel:

filename: /lib/modules/3.2.1-gentoo-r2/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
license: GPL
firmware: rt2870.bin
description: Ralink RT2800 USB Wireless LAN driver.
version: 2.3.0
author: http://rt2x00.serialmonkey.com
srcversion: BADDA828CDBD18C8C8EB2EB


Kompilieren des Treibers von ralinktech:

make[1]: Entering directory `/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/tools'
gcc -g bin2h.c -o bin2h
make[1]: Leaving directory `/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/tools'
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/tools/bin2h
cp -f os/linux/Makefile.6 /home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/Makefile
make -C /lib/modules/2.6.39-gentoo-r3/build SUBDIRS=/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux modules
make[1]: Entering directory `/usr/src/linux-2.6.39-gentoo-r3'
CC [M] /home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.o
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c: In Funktion »RTMPAllocUsbBulkBufStruct«:
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:52: Fehler: Implizite Deklaration der Funktion »usb_buffer_alloc«
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:52: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c: In Funktion »RTMPFreeUsbBulkBufStruct«:
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:78: Fehler: Implizite Deklaration der Funktion »usb_buffer_free«
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c: In Funktion »RTMPFreeTxRxRingMemory«:
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:234: Warnung: Übergabe des Arguments 3 von »RTMPFreeUsbBulkBufStruct« von inkompatiblem Zeigertyp
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:62: Anmerkung: expected »UCHAR **« but argument is of type »struct __TX_BUFFER **«
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:241: Warnung: Übergabe des Arguments 3 von »RTMPFreeUsbBulkBufStruct« von inkompatiblem Zeigertyp
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:62: Anmerkung: expected »UCHAR **« but argument is of type »struct __TX_BUFFER **«
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:278: Warnung: Übergabe des Arguments 3 von »RTMPFreeUsbBulkBufStruct« von inkompatiblem Zeigertyp
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:62: Anmerkung: expected »UCHAR **« but argument is of type »struct __HTTX_BUFFER **«
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c: In Funktion »NICInitTransmit«:
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:507: Warnung: Übergabe des Arguments 3 von »RTMPFreeUsbBulkBufStruct« von inkompatiblem Zeigertyp
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:62: Anmerkung: expected »UCHAR **« but argument is of type »struct __TX_BUFFER **«
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c: In Funktion »RTMPAllocTxRxRingMemory«:
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:566: Warnung: Übergabe des Arguments 3 von »RTMPAllocUsbBulkBufStruct« von inkompatiblem Zeigertyp
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:34: Anmerkung: expected »VOID **« but argument is of type »struct __HTTX_BUFFER **«
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:596: Warnung: Übergabe des Arguments 3 von »RTMPAllocUsbBulkBufStruct« von inkompatiblem Zeigertyp
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:34: Anmerkung: expected »VOID **« but argument is of type »struct __TX_BUFFER **«
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:610: Warnung: Übergabe des Arguments 3 von »RTMPAllocUsbBulkBufStruct« von inkompatiblem Zeigertyp
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:34: Anmerkung: expected »VOID **« but argument is of type »struct __TX_BUFFER **«
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:628: Warnung: Übergabe des Arguments 3 von »RTMPAllocUsbBulkBufStruct« von inkompatiblem Zeigertyp
/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:34: Anmerkung: expected »VOID **« but argument is of type »UCHAR **«
Auf höchster Ebene:
cc1: Warnung: nicht erkannte Kommandozeilenoption »-Wno-unused-but-set-variable«
make[2]: *** [/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.o] Fehler 1
make[1]: *** [_module_/home/werner/temp/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.39-gentoo-r3'
make: *** [LINUX] Fehler 2


Ratlos
Spirou :D

zyrusthc
22.02.12, 09:28
Die libusb Devel Pakete sind installiert?
Probiere mal den Treiber von http://rt2x00.serialmonkey.com selber zu kompilieren.

Greeez Oli

Sauerland1
22.02.12, 09:46
Schau doch mal nach, welche Module den Wlan-Stick nativ unterstützen (als root):

modprobe -c | grep -i "7392.*7711"
alias usb:v7392p7711d*dc*dsc*dp*ic*isc*ip* rt2870sta
alias usb:v7392p7711d*dc*dsc*dp*ic*isc*ip* rt5370sta
Das ist bei mir die Ausgabe unter Opensuse 11.4 Kernel 2.6.37.6-0.11.

Außerdem mal nachschauen, ob evtl. sich zwei Module in die Quere kommen:

/usr/sbin/hwinfo --wlan
Evtl. hwinfo nachinstallieren.

Meine Ausgabe:

/usr/sbin/hwinfo --wlan
23: PCI 300.0: 0282 WLAN controller
[Created at pci.318]
Unique ID: y9sn.apYiokQ9666
Parent ID: H0_h.s+nQpg3zanD
SysFS ID: /devices/pci0000:00/0000:00:06.0/0000:03:00.0
SysFS BusID: 0000:03:00.0
Hardware Class: network
Model: "Atheros AR9285 Wireless Network Adapter (PCI-Express)"
Vendor: pci 0x168c "Atheros Communications Inc."
Device: pci 0x002b "AR9285 Wireless Network Adapter (PCI-Express)"
SubVendor: pci 0x1a3b
SubDevice: pci 0x1089
Revision: 0x01
Driver: "ath9k"
Driver Modules: "ath9k"
Device File: wlan0
Features: WLAN
Memory Range: 0xfebf0000-0xfebfffff (rw,non-prefetchable)
IRQ: 18 (no events)
HW Address: 1c:4b:d6:a1:74:4d
Link detected: yes
WLAN channels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
WLAN frequencies: 2.412 2.417 2.422 2.427 2.432 2.437 2.442 2.447 2.452 2.457 2.462 2.467 2.472 2.484
WLAN encryption modes: WEP40 WEP104 TKIP CCMP
WLAN authentication modes: open sharedkey wpa-psk wpa-eap
Module Alias: "pci:v0000168Cd0000002Bsv00001A3Bsd00001089bc02sc80 i00"
Driver Info #0:
Driver Status: ath9k is active
Driver Activation Cmd: "modprobe ath9k"
Config Status: cfg=no, avail=yes, need=no, active=unknown
Attached to: #4 (PCI bridge)

Nur ath9k ist geladen.

Rain_maker
22.02.12, 13:18
Also ich finde ja diese beiden Zeilen aus dem nicht wirklich interessanten Kernellog doch ziemlich interessant:


Feb 20 13:04:04 dreamiceland [ 396.883291] udevd[6379]: renamed network interface wlan0 to wlan1
Feb 20 13:04:04 dreamiceland /etc/init.d/net.wlan1[6390]: net.wlan1: not allowed to be hotplugged|

Bevor hier also an allen möglichen und unmöglichen Vendortreibern herumgeschraubt wird, würde ich mir zunächst mal etwas genauer ansehen, was udev da mit dem Interface anstellt und welches Interface für diesen Stock überhaupt verwendet wird.

Am Treiber liegt es im Übrigen nicht, die neuen rt2800usb/rt2800pci funktionieren schon seit spätestens 3.0 zuverlässig (der rt3070 Chipsatz ist auch einer der älteren aus dieser Serie), was auch der Grund ist, wieso der Staging-Treiber aus dem Kernel genommen wurde.

Greetz,

RM

spirou
22.02.12, 22:47
Ich trau's mir ja fast nicht sagen, aber es war doch der Kernel. Folgendes war nicht aktiviert:

cfg80211 wireless extensions compatibility (CFG80211_WEXT)

CONFIG_CFG80211_WEXT:

Enable this option if you need old userspace for wireless
extensions with cfg80211-based drivers.

Symbol: CFG80211_WEXT [=y]
Type : boolean
Prompt: cfg80211 wireless extensions compatibility
Defined at net/wireless/Kconfig:113
Depends on: NET [=y] && WIRELESS [=y] && CFG80211 [=y]
Location:
-> Networking support (NET [=y])
-> Wireless (WIRELESS [=y])
-> cfg80211 - wireless configuration API (CFG80211 [=y])
Selects: WEXT_CORE [=y]


Ich hab in der .config mal nach wlan gesucht und da stach mir das ins Auge. Ich hätte das sonst glaube ich nie gefunden.

Jetzt läuft alles, vielen Dank für Eure Hilfe! Es tut immer gut, wenn man sich nicht so allein fühlt... ;)

Rain_maker
22.02.12, 23:30
Ich trau's mir ja fast nicht sagen, aber es war doch der Kernel. Folgendes war nicht aktiviert:

cfg80211 wireless extensions compatibility (CFG80211_WEXT)

CONFIG_CFG80211_WEXT:

Klares "Jein", denn auch wenn es durchaus Sinn macht diese Option zu aktivieren, so erwischt einen dieses Problem bei mac80211/cfg80211-basierten Treibern eigentlich nur dann, wenn man diese statt mit dem neuen "nl80211" noch mit der alten Schnittstelle "wext" betreibt (z.B. mit wpa_supplicant).

Im Gegensatz zu den mittlerweile obsoleten Staging-Treibern können rt2800usb/rt2800pci aber durchauch mit nl80211 umgehen und man sollte sie dann auch in den entsprechenden Konfigurationsdateien auf diese Erweiterung umstellen (keine Ahnung, wie Gentoo das handhabt).

Was verwendet wird (sofern wpa_supplicant das Ganze übernimmt, was übrigens auch WEP oder unverschlüsselten Netzwerken durchaus sein kann) sieht man mit


ps aux|grep [w]pa_supplicant

Beispiel von meinem Schlepptopp (Intel 5300 AGN, Kerneltreiber iwlwifi, aber das hier gilt für alle mac80211/cfg80211-basierten Treiber):


..... wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -Dnl80211 -P/var/run/wpa_supplicant/wlan0.pid -B

Wohlgemerkt, die neuen Treiber funktionieren auch mit "-Dwext" (natürlich nur, wenn es auch im Kernel aktiviert wurde :-)), aber über kurz oder lang soll diese "Legacy"funktionalität den selben Weg wie die Staging-Treiber rt28x0sta gehen und dann auch aus dem Kernel fliegen.

Wer ganz auf Nummer sicher gehen will und einen halbwegs aktuellen wpa_supplicant (IIRC >= 0.7.0) verwendet, kann übrigens auch solche Spielereien anwenden:

Entweder


wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicantc.conf -Dnl80211,wext -P/var/run/wpa_supplicant/wlan0.pid -Boder


wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -Dwext,nl80211 -P/var/run/wpa_supplicant/wlan0.pid -BDer jeweils erstgenannte wpa-Treiber wird -wer hätte es gedacht- zuerst ausprobiert und nur wenn das schief geht, kommt der zweitgenannte als "Fallback" zum Zuge.

Greetz,

RM