Dieser Hinweis gilt ab openSUSE 11.3 und NUR für die "traditionelle Methode mit ifup".
Seit openSUSE 11.3 wird bei der Benutzung einer WPA-verschlüsselten WLAN-Verbindung mittels der "traditionellen Methode mit ifup" der wpa_supplicant mit dem neuen WPA-Treiber "nl80211" statt wie zuvor mit "wext" gestartet.
Dieser Schritt macht in sofern Sinn, daß dieser neue WPA-Treiber einige Fähigkeiten mitbringt, die die alten wireless extensions (daher der Name "wext") nicht besitzen und ist für alle Treiber, die auf dem mac80211-Stack (daher der Name "nl80211") aufsetzen, die "zukunftssicherere" Wahl, unter anderem auch, weil eines der Ziele der Kernelentwickler darin besteht möglichst alle alten Treiber auf mac80211/cfg80211 zu portieren (bei einigen ist dies schon geschehen).
Das in der openSUSE-Implementierung verwendete Script "ifup-wireless" hat unter anderem auch die Funktion den wpa_supplicant mit entsprechenden Optionen zu starten, wozu es neben anderen Funktionen auch nachsieht, welcher Kerneltreiber die WLAN-Schnittstelle verwendet und -sofern eine entsprechende Regel für diesen Treiber vorhanden ist- die dazu gehörigen Optionen verwendet und im Falle, daß keine dezidierten Regeln für diesen Kerneltreiber vorliegen, die Standardoptionen verwendet.
Haken an der Sache, zumindest im "Auslieferungszustand" der 11.3 kann es bei bestimmten WLAN-Geräten dazu kommen, daß trotz korrekter Einrichtung mittels ifup eine WPA-verschlüsselte Verbindung nicht zu Stande kommt, weil das entsprechende Script "ifup-wireless" mangels einer dezidierten Regel für den verwendeten WLAN-Treiber statt wie in älteren Versionen nicht mehr "wext" (= alter Standard) sondern den neuen Standard "nl80211" für wpa_supplicant verwendet.
Sofern aber dieser "unbekannte" Kerneltreiber (noch) nicht auf die Funktionen des neuen mac80211/cfg80211-Codes zurückgreift, wird wpa_supplicant nicht über die Schnittstelle "nl80211" mit dem dazu gehörigen WLAN-Gerät kommunizieren können und das war es dann.
Betroffen dürften folgende WLAN-Treiber sein:
- Alle "Draft-n" Ralink Treiber vom Hersteller bzw. aus dem "Staging"-Bereich (rt2860sta, rt2870sta, rt3070sta, rt3090sta, rt3562sta, rt3572sta und rt5390sta)
- Alle "Draft-n" Realtek Treiber vom Hersteller und aus dem "Staging"-Bereich (r8192ce_pci, r8192e_pci, r8192se_pci, r8192u_usb, r8192s_usb, r8712u)
sowie möglicherweise einige weitere Treiber, die man sich z.B. von einer Herstellerseite geholt und kompiliert hat.
Dieses Problem ist allerdings sehr einfach zu lösen, da man in der entsprechenden Konfigurationsdatei für die drahtlose Schnittstelle über einen Parameter festlegen kann, welcher "WPA-Treiber" verwendet werden soll.
Dieser Parameter heisst "WIRELESS_WPA_DRIVER" und sollte bei den oben genannten Treibern auf "wext" gesetzt werden.
Hierzu editiert man entweder über den /etc/sysconfig-Editor in YaST oder mittels eines Texteditors (natürlich als root gestartet) die entsprechende ifcfg-Datei und startet das Interface neu, danach ist diese Änderung aktiv.
Hier ein Beispiel, angenommen man hat eine WLAN-Karte, der die Schnittstelle "wlan0" zugeordnet ist (/usr/sbin/iwconfig hilft einem bei der "Ermittlungsarbeit", wie die Schnittstelle heisst).
a) Welche Konfigurationsdatei ist zu bearbeiten?
b) Bearbeiten der Datei /etc/sysconfig/network/ifcfg-wlan0
Vorher:
Nachher:
Dies kann entweder mit einem Texteditor als root geschehen, oder aber über YaST => System => /etc/sysconfig-Editor (dort clevererweise das Suchfeld verwenden und den gewünschten Parameter, also "WIRELESS_WPA_DRIVER" als Suchbegriff verwenden).
c) Neustart des Interfaces wlan0
d) Prüfen, ob die Änderung erfolgreich war
Noch einmal zum Mitschreiben; diese Aktion gilt NUR für die Einrichtung mittels ifup, wer NetworkManager verwendet, ist davon nicht betroffen (und kann sich diese Aktion hier sparen).
Greetz,
RM
Seit openSUSE 11.3 wird bei der Benutzung einer WPA-verschlüsselten WLAN-Verbindung mittels der "traditionellen Methode mit ifup" der wpa_supplicant mit dem neuen WPA-Treiber "nl80211" statt wie zuvor mit "wext" gestartet.
Dieser Schritt macht in sofern Sinn, daß dieser neue WPA-Treiber einige Fähigkeiten mitbringt, die die alten wireless extensions (daher der Name "wext") nicht besitzen und ist für alle Treiber, die auf dem mac80211-Stack (daher der Name "nl80211") aufsetzen, die "zukunftssicherere" Wahl, unter anderem auch, weil eines der Ziele der Kernelentwickler darin besteht möglichst alle alten Treiber auf mac80211/cfg80211 zu portieren (bei einigen ist dies schon geschehen).
Das in der openSUSE-Implementierung verwendete Script "ifup-wireless" hat unter anderem auch die Funktion den wpa_supplicant mit entsprechenden Optionen zu starten, wozu es neben anderen Funktionen auch nachsieht, welcher Kerneltreiber die WLAN-Schnittstelle verwendet und -sofern eine entsprechende Regel für diesen Treiber vorhanden ist- die dazu gehörigen Optionen verwendet und im Falle, daß keine dezidierten Regeln für diesen Kerneltreiber vorliegen, die Standardoptionen verwendet.
Haken an der Sache, zumindest im "Auslieferungszustand" der 11.3 kann es bei bestimmten WLAN-Geräten dazu kommen, daß trotz korrekter Einrichtung mittels ifup eine WPA-verschlüsselte Verbindung nicht zu Stande kommt, weil das entsprechende Script "ifup-wireless" mangels einer dezidierten Regel für den verwendeten WLAN-Treiber statt wie in älteren Versionen nicht mehr "wext" (= alter Standard) sondern den neuen Standard "nl80211" für wpa_supplicant verwendet.
Sofern aber dieser "unbekannte" Kerneltreiber (noch) nicht auf die Funktionen des neuen mac80211/cfg80211-Codes zurückgreift, wird wpa_supplicant nicht über die Schnittstelle "nl80211" mit dem dazu gehörigen WLAN-Gerät kommunizieren können und das war es dann.
Betroffen dürften folgende WLAN-Treiber sein:
- Alle "Draft-n" Ralink Treiber vom Hersteller bzw. aus dem "Staging"-Bereich (rt2860sta, rt2870sta, rt3070sta, rt3090sta, rt3562sta, rt3572sta und rt5390sta)
- Alle "Draft-n" Realtek Treiber vom Hersteller und aus dem "Staging"-Bereich (r8192ce_pci, r8192e_pci, r8192se_pci, r8192u_usb, r8192s_usb, r8712u)
sowie möglicherweise einige weitere Treiber, die man sich z.B. von einer Herstellerseite geholt und kompiliert hat.
Dieses Problem ist allerdings sehr einfach zu lösen, da man in der entsprechenden Konfigurationsdatei für die drahtlose Schnittstelle über einen Parameter festlegen kann, welcher "WPA-Treiber" verwendet werden soll.
Dieser Parameter heisst "WIRELESS_WPA_DRIVER" und sollte bei den oben genannten Treibern auf "wext" gesetzt werden.
Hierzu editiert man entweder über den /etc/sysconfig-Editor in YaST oder mittels eines Texteditors (natürlich als root gestartet) die entsprechende ifcfg-Datei und startet das Interface neu, danach ist diese Änderung aktiv.
Hier ein Beispiel, angenommen man hat eine WLAN-Karte, der die Schnittstelle "wlan0" zugeordnet ist (/usr/sbin/iwconfig hilft einem bei der "Ermittlungsarbeit", wie die Schnittstelle heisst).
a) Welche Konfigurationsdatei ist zu bearbeiten?
Code:
ls -l /etc/sysconfig/network/ifcfg-*
-rw-r--r-- 1 root root 350 15. Dez 02:13 /etc/sysconfig/network/ifcfg-eth0
-rw-r--r-- 1 root root 188 23. Nov 14:40 /etc/sysconfig/network/ifcfg-lo
-rw-r--r-- 1 root root 324 15. Dez 02:13 /etc/sysconfig/network/ifcfg-modem0
-rw------- 1 root root 1181 12. Sep 14:59 [B]/etc/sysconfig/network/ifcfg-wlan0[/B]
Vorher:
Code:
WIRELESS_WPA_DRIVER=''
Code:
WIRELESS_WPA_DRIVER='wext'
c) Neustart des Interfaces wlan0
Code:
su -
(Rootpasswort eingeben)
ifdown wlan0
ifup wlan0
Code:
ps aux|grep [w]pa_supplicant
root 6845 0.0 0.0 20440 868 ? Ss 10:45 0:00 wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf [B]-Dwext[/B] -P/var/run/wpa_supplicant/wlan0.pid -B
Greetz,
RM