Rt2500

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Teil ist Artikel der Hardware Serie.
Laptops Motherboards Servers Eingabegeräte RAID Controller TV Karten Wireless Andere Hardware Andere Architekturen alphabetischer Hardware Index


→ Siehe rt2500 auf AMD64 für Anmerkungen zu einer 64 bit Gentoo-Installation.

Inhaltsverzeichnis

[Bearbeiten] Ralink Linux-Treiber

Seit April 2004 arbeitet das rt2x00-Projekt an Treibern für die WLAN-Chipsets von Ralink Technology. Zunächst wurden Bugfixes für die von Ralink veröffentlichten proprietären Linuxtreiber eingereicht, nach einiger Zeit wurde mit der Entwicklung eines alternativen Treibers namens rt2x00 für die rt2400 und rt2500 Chipsätze begonnen.

2005 gab Ralink die Original-Treiber unter der GPL frei und lieferte damit einen großen Beitrag zur Weiterentwicklung der rt2x00-Treiber. Inzwischen werden die rt2400- und rt2500-Treiber vom rt2x00-Projekt zwar noch gepflegt, aber nicht mehr weiterentwickelt.

Im Mai 2005 lieferte Ralink Details zum rt2570 Chipsatz (integriert in USB-WLAN-Sticks), der nun ebenfalls vom rt2x00-Treiber unterstützt wird. Alternativ bietet Ralink auch hierfür einen Original-Treiber an, der ebenfalls vom rt2x00-Projekt gepflegt wird.

Die Treiber rt61 und rt73 werden ebenfalls von diesem Projekt betreut.


[Bearbeiten] Installation

Es gibt verschiedene Wege und Treibervarianten, die man installieren kann. Grob gesagt hat man unter Gentoo die Wahl zwischen manueller Installation oder Installation via Portage (empfohlen!), sowie die Wahl zwischen den Original Ralink-Treibern (empfohlen!) und den neuentwickelten rt2x00-Treibern. Der Einsatz von ndiswrapper ist nicht wirklich zu empfehlen, aber ggf. eine Notlösung.

Die folgende Installationsanleitung befasst sich mit dem in PCI-Karten benutzten rt2500-Chipsatz bzw. dem rt2570-Chipsatz in USB-Sticks. Warnung: Manche USB-Sticks laden zwar den rt2570-Treiber, benötigen aber in wirklichkeit den rt73usb! Siehe unten.


[Bearbeiten] Ralink Original-Treiber via Gentoo-Portage

Diese Treiber rt2500- und rt2670-Treiber sollten relativ stabil funktionieren. Für Gentoo sind ebuilds im unstabel-Tree ~x86 und ~amd64 verfügbar und lassen sich mit

emerge net-wireless/rt2500 bzw. emerge net-wireless/rt2570 für USB-Sticks.

als Kernelmodul installieren. Beim Einstecken des USB-Sticks wird das rt2570-Modul dann automatisch geladen und mit ifconfig -a sollte nun ein neues Netzwerkinterface rausb0 sichtbar sein.

WARNUNG: Sollte es Probleme beim Hochfahren des Netzwerkinterfaces geben, dann liegt evtl. daran, dass das rt2570 zwar denkt es sei das richtige, aber man in Wirklichkeit das rt73usb-Modul braucht. Siehe unten!


[Bearbeiten] Neuentwickelte Treiber via Gentoo-Portage

Für Gentoo liegen ebenfalls die vom rt2x00-Projekt neuentwickelten Treiber vor. Diese befinden sich allerdings noch in einem Beta-Stadium und sollten mit Vorsicht installiert werden. Vorher auf jeden Fall mit emerge -av net-wireless/rt2x00 nachsehen, welche USE-Flags verfügbar sind!

Für den rt2500-Chipsatz sind die rt2500usb und rt2500pci USE-Flags relevant.

emerge net-wireless/rt2x00

Während die Originaltreiber für verschiedene Chipsätze (rt2400, rt2500, rt2570, ...) eigene ebuilds haben, versucht das rt2x00-Projekt alle verfügbaren Chipsätze zu integrieren. Momentan werden rt2500usb rt73usb rt2400pci rt2500pci und rt61pci unterstützt.

Der Quellcode für diese Treiber versucht sich das ebuild direkt aus einem Sourceforge CVS-Tree zu holen. Dazu muss man allerdings online sein, sonst schlägt das emerge fehl. ;-) Ausserdem muss man eventuell einige Crypto-Algorithmen im Kernel aktivieren.

Alternativ kann man per emerge =net-wireless/rt2x00-2.0.0_beta3 eine ältere Version installieren.


WARNUNG: Es ist sehr zu empfehlen die README-Datei zu lesen, da bei einigen der Treibern Firmware nachinstalliert werden muss!


[Bearbeiten] Ralink Original-Treiber manuell installieren

Diese Variante ist eigentlich nicht zu empfehlen! Portage sorgt unter Gentoo dafür, dass alle Abhängigkeiten erfüllt sind und sich der Treiber sauber in das System integriert (und auch wieder automatisch entfernt werden kann).

Den Treiber-Sourcecode erhält man als Tarball auf http://www.ralinktech.com/ralink/Home/Support/Linux.html und extrahiert ihn mit:

tar -xvzf RT2500-Linux-STA-x.x.x.x.tar.gz

gehe dann ins ./RT2500-Linux-STA-x.x.x.x/STA/Module Verzeichnis.

[Bearbeiten] Module kompilieren

Je nach Kernelversion (2.4 oder 2.6) muss man beim Kompilieren der Kernelmoduls anderes vorgehen.

[Bearbeiten] Für Kernel der Reihe 2.4:

Verwende den chmod-Befehl um die Zugriffsrechte folgender Scripts anzupassen: load, unload, Configure

make config 
konfiguriert Makefile für die installierte Linux-Version
make all 
kompiliert den Treiber
load 
lädt (insmod) das Modul (rt2500.o)


Hinweis: Funktionalität der Scripts:

load 
lädt Modul in den Kernel
unload 
wirft das Modul aus dem Kernel raus
Configure 
ermitteln der Linux-Version


[Bearbeiten] Für Kernel der Reihe 2.6:

Wechsele in das Module Verzeichnis der Treiber Sourcen.

Nun die Dateien "Makefile" und "load" aus dem "2.6.x" Verzeichniss hierher (nach .) kopieren.

make -C /pfad/zum/kernel/source SUBDIRS=$PWD modules Wobei /pfad/zum/kernel/source durch das Quellcode-Verzeichnis des konfigurierten und kompilierten Kernels ersetzt werden muss.

führe dann /sbin/insmod rt2500.ko (als root) aus

[Bearbeiten] Für 'big endian'-Architekturen:

Ersetze Makefile mit Makefile.BigEndian


[Bearbeiten] Konfigurationsprogramm kompilieren

wechsle in das ../Utility Verzeichnis

führe dort qmake -o Makefile raconfig2500.pro aus. Sollte qmake nicht auf dem System gefunden werden können kannst du das QT-Tool qt-x11-free-3.2.1 oder neuer mittels Portage beziehen: emerge x11-libs/qt

ACHTUNG: Alle die Qt3 und Qt4 gleichzeitig auf ihrem Sytem haben, können nicht das qmake, welches sich unter /usr/bin befindet, nutzen. Da dieses standartmäßig auf Qt4 gelinkt ist und ihr zum erstellen des Makefiles Qt3 benötigt. Deshalb müsst ihr auch das qmake von Qt3 nutzen. Das sieht dann so aus /usr/qt/3/bin/qmake -o Makefile raconfig2500.pro.

Danach führe make aus, um das Konfigurationsprogramm zu kompilieren

Nach Abschluss dieses Vorganges wurde die ausführbare Datei RaConfig2500 erstellt. Starte nun RaConfig2500 um den Treiber nach belieben zu konfigurieren.

[Bearbeiten] Windows-Treiber mit Ndiswrapper

http://ndiswrapper.sourceforge.net/wiki/ hat eine Anleitung mit einer Liste von unterstützten Karten - sieh in der Liste nach dem RT2500-Chipset mit funktionierendem Windows-Treiber für den Einsatz von Ndiswrapper.

Die ggf. mitgelieferte CD mit Windows-Treibern ist zumindest beim Modell D-Link DWL-G122 nutzlos, da man setup.exe nicht entpacken kann. Die Treiber kann man sich aber sicherlich bei D-Link auch einzeln runterladen.


[Bearbeiten] Netzwerk einrichten

[Bearbeiten] Gentoo Netzwerkkonfiguration

Unter Gentoo verlinkt man am einfachsten in /etc/init.d/ die Datei net.lo mit net.rausb0:

ln -s /etc/init.d/net.lo /etc/init.d/net.rausb0

Per /etc/init.d/net.rausb0 start sollte sich das Netzwerk nun hochfahren lassen. Konfigurieren kann man das Netzwerk in /etc/conf.d/net - ändert man dort nichts, dann wird automatisch versucht das Netzwerk per DHCP zu konfigurieren. Per rc-update add net.rausb0 default kann man bei Bedarf dafür sorgen, dass das Skript beim booten automatisch gestartet wird.

Benötigt ein vorhandener WLAN AccessPoint kein WEP oder WPA, dann sollte das Netzwerk nun ohne weitere Konfiguration funktionieren. Weitere Tipps zur Konfiguration stehen im nächsten Absatz unter "Manuelle Konfiguration".

WARNUNG: Sollte das System beim Hochfahren des Netzwerks einfach hängenbleiben, dann beachte bitte die Hinweise weiter unten!

[Bearbeiten] Weitere Tipps zur Netzwerkkonfiguration

Siehe dazu Wireless Konfiguration oder diesen Artikel in den Gentoo-Foren (sind ähnlich).


[Bearbeiten] Alternativ: Manuelle Konfiguration

Manuell kann man die Netzwerkschnittstelle mit /sbin/ifconfig ra0 inet YOUR_IP up aktivieren. Wenn das nicht funktioniert (und Dein System hängenbleibt, z. B. mit einem ifconfig- oder ip-Prozess der jede Menge CPU-Leistung zieht, dann lies die Hinweise weiter unten!)

Der RT2500-Chip kann mit folgenden Schnittstellen konfiguriert werden: (i) iwconfig Befehl, (ii) iwpriv Befehl, (iii) Konfigurationsdatei, (iv) RaConfig2500

  1. iwconfig Im Paket net-wireless/wireless-tools enthalten.
  2. iwpriv über die Verwendung siehe iwpriv_usage.txt für Details.
  3. Kopiere die Konfigurationsdatei RT2500STA.dat nach /etc/Wireless/RT2500STA/RT2500STA.dat. siehe Punkt 3.1) für Details.
  4. RT2500 stellt API zur Verfügung: RaConfig2500
Datei: Konfigurationsdatei: RT2500STA.dat
# Copy this file to /etc/Wireless/RT2500STA/RT2500STA.dat
# This file is a binary file and will be read on loading rt2500.o module.
#
# Use "vi -b RT2500STA.dat" to modify settings according to your need.
# 
# 1.) set NetworkType to "Adhoc" for using Adhoc-mode, otherwise using as Infrastructure-mode
# 2.) set Channel to "0" for auto-select on Infrastructure mode
# 3.) set SSID for connecting to your Accss-point.
# 4.) AuthMode can be "OPEN", "SHARED", "WPAPSK", "WPANONE"
# 5.) EncrypType can be "NONE", "WEP", "TKIP", "AES"
# for more information refer to the Readme file.
# 
[Default]
CountryRegion=0
WirelessMode=0
SSID=AP350
NetworkType=Infra
Channel=0
AuthMode=OPEN
EncrypType=NONE
DefaultKeyID=1
Key1Type=0
Key1Str=0123456789
Key2Type=0
Key2Str=
Key3Type=0
Key3Str=
Key4Type=0
Key4Str=
WPAPSK=abcdefghijklmnopqrstuvwxyz
TXBurst=0
TurboRate=0
BGProtection=0
ShortSlot=0
TxRate=0
RTSThreshold=2312
FragThreshold=2312
PSMode=CAM
-----------------------------------------------
syntax is 'Param'='Value' and describes below. 

1. CountryRegion=value
   value
        0:      for use channel 1-11
        1:      for use channel 1-11
        2:      for use channel 1-13
        3:      for use channel 10-11
        4:      for use channel 10-13
        5:      for use channel 14
        6:      for use channel 1-14
        7:      for use channel 3-9
2. WirelessMode=value
   value
        0:      802.11 B/G mixed
        1:      802.11 B only
3. SSID=value
   value
         1~32 ascii characters.
4. NetworkType=Infra
   value
       Infra : infrastructure mode
       Adhoc : adhoc mode
5. Channel=value
    value
        1~14 depends on  CountryRegion
6. AuthMode=value
    value
        OPEN      For Open System
        SHARED    For Shared key system
        WPAPSK    
7. EncrypType=value
    value
        NONE      :For AuthMode=OPEN
        WEP       :For AuthMode=OPEN or AuthMode=SHARED
        TKIP      :For AuthMode=WPAPSK
        AES       :For AuthMode=WPAPSK
8. DefaultKeyID=value
    value
        1 ~ 4
9. Key1Type=value
    value
        0:        Hexadecimal
        1:        Ascii
10. Key1Str=value
    value
        10 or 26 hexadecimal characters eg: 012345678
        5 or 13 ascii characters eg: passd
11. Key2Type=value
    value
        0:        Hexadecimal
        1:        Ascii
12. Key2Str=value
    value
        10 or 26 hexadecimal characters eg: 012345678
        5 or 13 ascii characters eg: passd
13. Key3Type=value
    value
        0:        Hexadecimal
        1:        Ascii
14. Key3Str=value
    value
        10 or 26 hexadecimal characters eg: 012345678
        5 or 13 ascii characters eg: passd
15. Key4Type=value
    value
        0:        Hexadecimal
        1:        Ascii
16. Key4Str=value
    value
        10 or 26 hexadecimal characters eg: 012345678
        5 or 13 ascii characters eg: passd
17. WPAPSK=value
    value
        8 ~ 63 characters
          or
        64 hexadecimal characters
18. TxBurst=value
    value
        0:        Disable
        1:        Enable
19. TurboRate=value
    value
        0:        Disable
        1:        Enable
20. BGProtection=value
   value
        0:        Auto
        1:        Always On
        2:        Always Off
21. ShortSlot=value
    value
        0:        Disable
        1:        Enable
22. TxRate=value
   value
         0:     Auto
         1:     1 Mbps
         2:     2 Mbps
         3:     5.5 Mbps
         4:     11 Mbps 
         5:     6  Mbps  //WirelessMode must be 0
         6:     9  Mbps  //WirelessMode must be 0
         7:     12 Mbps  //WirelessMode must be 0
         8:     18 Mbps  //WirelessMode must be 0
         9:     24 Mbps  //WirelessMode must be 0
        10:     36 Mbps  //WirelessMode must be 0
        11:     48 Mbps  //WirelessMode must be 0
        12:     54 Mbps  //WirelessMode must be 0
23. RTSThreshold=value
    value
        1 ~ 2312
24. FragThreshold=value
    value
        256 ~ 2312
25. PSMode=value
    value
    MAX_PSP   Power Saving Mode
    CAM   CAM (Constantly Awake Mode)   

26. AdhocModeRate=value
    value
    0:		Adhere WIFI spec
    1:		Violate WIFI spec

27. ApClient=value
    value
    0:		Disable ApClient mode
    1:		Enable ApClient mode



[Bearbeiten] Probleme mit den Ralink Linux-Treibern

  • Bei Hardware ändert sich immer mal wieder der Chipsatz. Beispielsweise benutzt der D-Link DWL-G122 in älteren Hardware-Versionen den rt2570 und inzwischen den rt73. Siehe unten.
  • Die Firmware für das Gerät sollte auch nicht fehlen. Man bekommt sie auf der Internetseite des Herstellers und sollte sie in /lib/firmware installieren. Zusätzlich muß noch hotplug installiert sein und sicherheitshalber sollten alle Module in /lib/modules/<kernel>/rt2x00 geladen werden.
  • Typische Fehlerquelle ist, dass im Kernel PREEMPT aktiviert ist. Zur Sicherheit diese Funktion erstmal deaktiviert (Kernelfeature auf PREEMPT_NONE/Serverbetrieb stellen). Da die meisten Kernel für Desktop-Systeme konzipiert sind, ist es sehr wahrscheinlich das PREEMT aktiviert ist und damit die WLAN-Treiber eventuell nicht funktionieren!
  • Weitere Fehlerquellen sind die Kerneloptionen für Multiprozessoren: IO-APIC (eigentlich nur sinnvoll bei Multiprozessorsystemen und nicht zu verwechseln mit APIC oder gar ACPI) und SMP.
  • Eventuell liegen Probleme auch am USB 2.0. Testweise mal im Kernel ehci (USB 2.0) deaktivieren oder das passende Modul nicht laden (USB 1.1 ist OHCI) oder einen alten USB 1.1-Anschluss benutzen. Vorher aber unbedingt PREEMPT, SMP und IO-APIC deaktivieren, weil es viel wahrscheinlicher daran liegt! ;-)
  • Siehe die verschiedenen Webseiten unter Weblinks (weiter unten auf dieser Seite). Dort gibt es weitere FAQ, Tipps, Foren und Howtos.
  • Die MSI PC54G WLAN scheint nur mit der Treiber-Version 1.4.2 zu funktionieren (vergiss nicht die spinlock.diff Datei).
  • Die MSI PC54G WLAN funktioniert auch mit der Treiber-Version 1.1.0_beta2-r1, zumindest auf AMD64.
  • Einige Leute müssen die Zeile WARN_ON(irqs_disabled()); in /usr/src/linux/kernel/softirq.c auskommentieren um es zum Laufen zu bekommen (schlechte Lösung - verwende sie nicht, wenns anders geht!)
  • Seit der Version 1.1.0_pre2006050909 wurde RaConfig aus dem Ebuild entfernt, da es nicht mehr weiter entwickelt wird. Nach dem Wunsch der Entwickler soll Rutilt seinen Platz einnehmen, welches allerdings (zumindest bei mir) noch sehr instabil ist. Wer auf RaConfig nicht verzichten möchte, muss die Treiber herunterladen und das Konfigurationsprogramm manuell kompilieren (siehe Konfigurationsprogramm_kompilieren).

[Bearbeiten] Karten mit Ralink Chipsatz

[Bearbeiten] D-Link DWL-G122, H/W Version C1

  • Funktioniert NICHT mit dem rt2570 Treiber, auch wenn das Kernelmodul beim einstecken des USB-Sticks automatisch geladen wird. Vorsicht: Das Kernelmodul hängt sich auf, sobald man versucht per ip oder ifconfig auf das Interface zuzugreifen!
  • Benötigt wird für diesen Stick der rt73usb-Treiber aus dem rt2x00-Projekt. Man sollte das USE-Flag rt73usb aktivieren und dann per emerge net-wireless/rt2x00 den Treiber aus dem CVS installieren. Eventuell funktioniert auch die 2.0.0_beta3.
  • Wieweit IO-APIC, PREEMPT und SMP deaktiviert sein müssen kann ich nicht sagen, aber bei meinen Tests habe ich es irgendwann mal deaktiviert und bislang nicht mehr eingeschaltet. Allgemein ist wenigtens PREEMPT eine typische Fehlerquelle für Treiberprobleme mit bei rt2x00.
  • Bei Tests konnte ich mich bislang noch nicht mit meinem Netzwerk verbinden (evtl. schlechte Sendeleistung des Sticks/private Netzwerkprobleme), aber ich habe verschiedene APs zumindest per "iwlist scan" kurzfristig gesehen und kann das Interface beliebig konfigurieren.
  • Im 2.6.25er Kernel ist der rt73-Treiber enthalten, er wurde aus dem rt2x00-Projekt migriert.
  • Seit Kernel 2.6.24 klappt auch das Kernelmodul. Dazu unter DEVICE-DRIVERS->Network device support->Wireless LAN ein <M> bei Ralink driver support und Ralink rt73 usb support machen. Danach muss man noch die Firmware-Dateien runterladen: http://www.ralinktech.com.tw/data/RT71W_Firmware_V1.8.zip, entpacken und die Datei rt73.bin nach /lib/firmware kopieren. Danach sollte das automatische Laden des Kernelmoduls klappen und man kann mit dem net-misc/networkmanager seine W-LAN-Verbindungen verwalten.

[Bearbeiten] Asus WL-167g

Mit dem rt73usb Treiber aus Portage lief der Stick nicht. Mit den rt73-cvs Treiber direkt von der rt2x00 Seite läuft der Stick dafür tadellos! http://rt2x00.serialmonkey.com/rt73-cvs-daily.tar.gz

[Bearbeiten] Weblinks

'Persönliche Werkzeuge