WPA(2) mit wpa_supplicant und den Ralink "Legacy"-Treibern rt73/rt61 (openSUSE 10.X)

Status
Für weitere Antworten geschlossen.

Rain_Maker

Administrator
Teammitglied
WPA(2) mit wpa_supplicant und den Ralink "Legacy"-Treibern rt73/rt61 (openSUSE 10.X)

In diesem Tutorial möchte ich die Einrichtung von WPA(2) mittels wpa_supplicant für Adapter mit rt73/rt61 Chipsatz unter Verwendung der so genannten "Legacy"-Treiber beschreiben.

Dabei wird außerdem besonderer Wert darauf gelegt, daß

- das Ganze "SuSE-konform", also über die ifup-Scripte der Distribution erfolgt

und

- so wenig wie möglich "Handarbeit" nötig ist (alle notwendigen Programme werden als rpm installiert).

0. Wer braucht dieses HowTo überhaupt?

Besitzer von Ralink WLAN-Adaptern mit rt61- (PCI/PCMCIA) bzw. rt73-Chipsatz (USB), bei denen die "neuen" Serialmonkey-Treiber "rt61pci" bzw. "rt73usb" nicht verfügbar sind oder nicht ordentlich funktionieren und die WPA/WPA2 als Verschlüsselung verwenden möchten (wozu man in Anbetracht der nicht mehr vorhandenen Sicherheit von WEP nur _dringend_ anraten kann).

Dies sind:

- Alle Nutzer von SuSE Linux 10.1

- Die meisten Nutzer von openSUSE 10.2, auch wenn es dort bereits die neuen Treiber rt2x00 im Paket "wlan-kmp"-*Kernelflavor* gab, welche jedoch sehr buggy waren.

- Einige wenige Nutzer von openSUSE 10.3, bei denen die Treiber aus dem Paket "rt2x00-kmp"-*Kernelflavor* Probleme machen.

Trotzdem gilt vor allem für Benutzer der 10.3, daß man zuerst die neuen Treiber ausprobieren sollte, bevor man dieses Tutorial in Angriff nimmt, denn einen "Nachteil" hat das Ganze, diese Variante funktioniert zu 99% _NUR_ wenn man die "traditionelle Methode mit ifup" zur Einrichtung verwendet, also sehr wahrscheinlich KEINE Unterstützung durch den NetworkManager.

1. Vorarbeiten

Zunächst sollten _unbedingt_ die neuen Treiber probiert werden, also

- Paket wlan-kmp-*Kernelflavor* (openSUSE 10.2) oder "rt2x00-kmp"-*Kernelflavor* (openSUSE 10.3) installieren.

(Kernelflavor = default, bigsmp, ...... Ausgabe von "cat /etc/SuSE-release" beachten)

- Firmware installieren.

Dieser Schritt ist auf jeden Fall auch für die rt2x00-Treiber nötig. Da sowohl die rt2x00 als auch die legacy-Treiber aus dem Serialmonkey-Projekt mittlerweile das selbe Verzeichnis für die Firmwaredateien verwenden, braucht man nur dieses eine Firmwarepaket.

rt2x00-firmware-1.1-1.noarch.rpm

Nach der Installation zuerst die rt2x00-Treiber versuchen.

a) Es klappt damit

=> Sehr schön, dann hat sich das Problem ja erledigt.

b) Die neuen Treiber wollen nicht so recht.

//Edit:

Für openSUSE 10.3 (und NUR für openSUSE 10.3) sollte man nun Beitrag Nr. 3 lesen und abarbeiten und nur dann auf die "Legacy-Treiber" umsteigen, wenn die dort vorgestellten "neuen" rt2x00-Treiber nicht funktionieren.

Am einfachsten ist es nun, das entsprechende Paket wlan-kmp oder rt2x00-kmp zu deinstallieren, diese Lösung ist aber IMHO suboptimal, besonders da im Paket wlan-kmp noch weitere Funktionen stecken, die man vielleicht noch braucht.

Deshalb empfehle ich hier das "Blacklisten" des entsprechenden Kernelmoduls.

- Die Datei /etc/modprobe.d/blacklist mit einem Texteditor als root öffnen und folgende Zeile ans Ende setzen.

Code:
blacklist rt61pci
oder

Code:
blacklist rt73usb

blacklist rt2500usb
- Eine eventuell schon vorhandene Kartenkonfiguration in YaST => Netzwerkgeräte => Netzwerkkarte löschen.

- Die Datei /etc/udev/rules.d/30-net_persistent_names.rules (SuSE Linux 10.1/openSUSE 10.2) bzw. /etc/udev/rules.d/70-persistent-net.rules als root mit einem Texteditor öffnen und alle Zeilen löschen, die "wlan0" bzw. "wmaster0" enthalten.

- In YaST die Einrichtungsmethode von "Benutzergesteuert mit NetworkManager" auf "traditionell mit ifup" umstellen.

- Die Pakete "Kinternet" und ggf. auch "smpppd" über YaST nachinstallieren.

- In YaST => System => Runleveleditor den Dienst "smpppd" aktivieren oder auf der Kommandozeile als root:

Code:
insserv -d smpppd
- In YaST => Sicherheit und Benutzer => Benutzer prüfen, ob der eigene Nutzer in der Gruppe "dialout" ist, ansonsten hinzufügen oder auf der Kommandozeile als root:

Code:
groupmod -A *NameEuresNutzers* dialout
2. Passenden Treiber und wpa_supplicant installieren

openSUSE 10.3:

rt61:

rt61-cvs-kmp-default-2008020205_2.6.22.16_0.1-4.1.i586.rpm (32 Bit und Kernel >= 2.6.22.16)

rt61-cvs-kmp-default-2008020205_2.6.22.16_0.1-4.1.x86_64.rpm (64 Bit und Kernel-default >= 2.6.22.16)

rt73:

rt73-cvs-kmp-default-2008020205_2.6.22.16_0.1-4.1.i586.rpm (32 Bit und Kernel >= 2.6.22.16)

rt73-cvs-kmp-default-2008020205_2.6.22.16_0.1-4.1.x86_64.rpm (64 Bit und Kernel >= 2.6.22.16)

Andere Kernelversionen/Flavors => mal bei schmolle vorbeischauen:

Index of /pub/opensuse/repositories/home:/schmolle1980

wpa_supplicant:

wpa_supplicant-0.6.3-rm.1.i586.rpm (32 Bit)

wpa_supplicant-0.6.3-3.1.x86_64.rpm (64 Bit)

Wer kein passendes Paket findet => Rebuild aus dem src.rpm, siehe hierzu:

http://www.pc-forum24.de/linux-howtos/2882-rpm-umbau-aus-einem-src-rpm-mit-rpmbuild-beispiele-wlan-kmp-fcdslsl.html

und

http://www.pc-forum24.de/suse-internetkonfiguration/2493-opensuse-10-2-avm.html#post12784

rt61-cvs-2008020205-4.1.src.rpm

rt73-cvs-2008020205-4.1.src.rpm

Pakete herunterladen und am einfachsten als root in der Kommandozeile installieren:

Code:
su

Passwort von root

rpm -Uvh /Pfad/zum/RPMs/wpa_supplicant*
Dieses Paket braucht man auf _jeden_ Fall.

Und dann noch den passenden Treiber:

Code:
su

Passwort

rpm -Uvh /Pfad/zum/RPMs/rt61-cvs-kmp*
oder

Code:
rpm -Uvh /Pfad/zum/RPMs/rt73-cvs-kmp*
3. Anpassen des Scripts "ifup-wireless"

- Mit einem Texteditor als root die Datei /etc/sysconfig/network/scripts/ifup-wireless öffnen und folgenden Abschnitt suchen:

Code:
case $ACTION in
    up)
        case "${DRIVER}" in
            ath_pci)
                WPA_DRIVER=wext
                ;;

(ein paar weitere Zeilen)

            rt2500*)
                WPA_DRIVER=wext
                ;;
            *)
                WPA_DRIVER=unsupported
                PREFER_WPA_SUPPLICANT=no
                ;;
        esac
- Folgende Zeilen einfügen (rot markiert) und zwar _exakt_ so, wie es da steht (mit Einrückungen).

Code:
case $ACTION in
    up)
        case "${DRIVER}" in
            ath_pci)
                WPA_DRIVER=wext
                ;;

(ein paar weitere Zeilen)

            rt2500*)
                WPA_DRIVER=wext
                ;;
[COLOR='Red'][B]            rt61|rt73)
                WPA_DRIVER=ralink
                ;;[/B][/COLOR]
            *)
                WPA_DRIVER=unsupported
                PREFER_WPA_SUPPLICANT=no
                ;;
        esac
und abspeichern.

Damit wird beim Aktivieren der Karte den beiden Treibern "rt73" bzw. "rt61" (und NUR diesen beiden Treibern) die Erweiterung "ralink" des wpa_supplicant zugeordnet, die für die legacy-Treiber notwendig ist (die neuen Treiber verwenden die eingebaute Erweiterung "wext").

Somit wird die Funktionalität des ifup-Scripts _nicht_ eingeschränkt, sondern um die zusätzlich vorhandene Funktionalität des zuvor installierten wpa_supplicant erweitert (der mit der Distribution mitgelieferte wpa_supplicant unterstützt dies im Übrigen nicht).

4. Laden des Treibermoduls

Code:
su

Passwort von root

modprobe rt61pci -r #zur Sicherheit

modprobe rt61

udevtrigger
bzw.


Code:
su

Passwort von root

modprobe rt73usb -r #zur Sicherheit

modprobe rt73

udevtrigger
Nun sollte sich etwas tun, was man mit einem /usr/sbin/iwconfig überprüfen kann.

5. Karte mit YaST einrichten

Hierzu nicht allzu viele Details, einzig die Anmerkungen, daß man

- die "Benutzersteuerung" aktivieren sollte, damit man auch als "normaler" User mittels Kinternet die Verbindung steuern kann

- sofern kein neues Interface in YaST angezeigt wird, man über "Hinzufügen" => Drahtlos ein neues Interafce definieren muss

- Bei Modulname entweder rt61 oder rt73 eingetragen werden sollte (bei 10.3 möglicherweise nicht mehr nötig, udev sei Dank).

Das wars ....

Wer sich ein Beispiel ansehen möchte, daß diese Methode auch wirklich funktioniert (und auch wie dieses Tutorial entstanden ist), der sollte sich diesen Thread zu Gemüte führen:

http://www.pc-forum24.de/suse-internetkonfiguration/8493-geloest-ralink-rt2561-rt61-auf-opensuse-10-3-wpa2-legacy-treiber-wpa_supplicant.html

Da der obige Thread auch noch weitergehende Tests und ein paar "umschiffte Klippen" auf dem Weg zum funktionierenden WLAN enthält, ist die Lektüre wärmstens zu empfehlen.

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
AW: WPA(2) mit wpa_supplicant und den Ralink "Legacy"-Treibern rt73/rt61 (openSUSE 10

Vor kurzem gab es ein Update des Paketes "sysconfig" für openSUSE 10.3, siehe auch hier:

http://www.pc-forum24.de/suse-updates/9055-opensuse-10-3-paket-sysconfig-warnung-v-susefirewall2-no-default-firewall-zone.html

Da sich das Script /etc/sysconfig/network/scripts/ifup-wireless ebenfalls in diesem Paket befindet und beim Update mit der originalen Version überschrieben wird, müssen die im ersten Beitrag gemachten Änderungen erneut angewandt werden.

Also erneut

Code:
case $ACTION in
    up)
        case "${DRIVER}" in
            ath_pci)
                WPA_DRIVER=wext
                ;;

(ein paar weitere Zeilen)

            rt2500*)
                WPA_DRIVER=wext
                ;;
            *)
                WPA_DRIVER=unsupported
                PREFER_WPA_SUPPLICANT=no
                ;;
        esac
in

Code:
case $ACTION in
    up)
        case "${DRIVER}" in
            ath_pci)
                WPA_DRIVER=wext
                ;;

(ein paar weitere Zeilen)

            rt2500*)
                WPA_DRIVER=wext
                ;;
[B][COLOR='Red']            rt61|rt73)
                WPA_DRIVER=ralink
                ;;[/COLOR][/B]
            *)
                WPA_DRIVER=unsupported
                PREFER_WPA_SUPPLICANT=no
                ;;
        esac
abändern.

Nach einem

Code:
su

Passwort

rcnetwork restart
sollte die Sache wieder laufen.

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
Paket compat-wireless-kmp-[Kerneltyp] für openSUSE 10.3

Bevor man im HowTo zu den "Legacy"-Treibern rt61/rt73 über geht, sollte man unter openSUSE 10.3 (und nur dort besteht die Möglichkeit) die neuen rt2x00-Treiber aus dem seit kurzem verfügbaren compat-wireless-kmp-Paket probieren.

http://www.pc-forum24.de/suse-mobile-hardware/9224-aktuelle-wlan-treiber-fuer-opensuse-10-3-a.html

Falls also nach Schritt 1a) kein Erfolg zu vermelden ist, dann das passende compat-wireless-kmp-[Kerneltyp] (siehe obiger Link) installieren, das Paket rt2x00-kmp-[Kerneltyp] wird dabei automatisch deinstalliert und den Rechner neu starten.

Erst wenn diese neuen Treibern ebenfalls keinen Erfolg bringen sollte man zu den legacy-Treibern greifen.

Vorteile:

- Die neuen Treiber würden auch den NetworkManager unterstützen

- Keine weiteren Eingriffe (Blacklisting, Änderung des ifup-wireless Scripts, Umstellung auf IFUP) nötig

Der Versuch lohnt sich also.

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
Erneutes Update des Paketes "sysconfig" für openSUSE 10.3

Eben flatterte ein Update des Paketes "sysconfig" für 10.3 herein, welche erneut das Hinzufügen der "ralink"-spezifischen Zeilen in /etc/sysconfig/network/scripts/ifup-wireless erforderlich machen wird.

Siehe hierzu Beitrag Nr.2 dieses Threads.

Neue Version

sysconfig-0.70.2-4.5

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
Hinweis für Laptop-Benutzer:

Wer

- auf einem mobilen Rechner einen dieser Adapter mit dem Legacy-Treiber benutzt (weil die neuen Treiber nicht so wollen)

- deshalb auf den NetworkManager verzichten muss, oder aber

- den NetworkManager aus anderen Gründen nicht verwenden will/kann

- aber trotzdem verschiedene Netzwerkprofile braucht,

der sollte sich nicht nur das Tool "SCPM" (In YaST unter System) sondern auch dieses Tutorial ansehen.

http://www.pc-forum24.de/linux-howtos/9450-wlan-wpa_supplicant-und-roaming-mehrere-netzwerke-einer-konfigurationsdatei.html

Das Ganze ist

- nicht nur auf WPA beschränkt

- funktioniert natürlich auch mit jedem anderen WLAN-Treiber, welcher wpa_supplicant unterstützt

und ist somit eine Alternative zum NetworkManager, ohne daß man auf die Installation eines distributionsfremden Tool angewiesen ist.

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
openSUSE 11.0

Auf openSUSE 11.0 sollten diese Probleme nicht mehr auftreten, die rt2x00-Treiber sind mittlerweile recht ausgereift.

Das Firmwarepaket für rt61/73 ist unter dem Namen

"ralink-firmware"

im non-oss Repository

Index of /distribution/11.0/repo/non-oss/suse/noarch

erhältlich, es kann aber genau so das hier verlinkte Firmwarepaket rt2x00-firmware verwendet werden, der Inhalt ist identisch.

Sollte es trotzdem zu Problemen kommen, so kann auf die Treiber der compat-wireless-Pakete zurückgegriffen werden.

http://www.pc-forum24.de/suse-mobile-hardware/9224-aktuelle-wlan-treiber-fuer-opensuse-10-3-und-11-0-a.html

Pakete für die Legacy-Treiber werde ich zunächst nicht zur Verfügung stellen, bisher gab es keinerlei Anzeichen, daß dieser "Ausweg" auf 11.0 notwendig ist.

Greetz,

RM
 
Status
Für weitere Antworten geschlossen.
Oben