Atheros AR5418 WLAN Treiber unter Linux(Ubuntu)

Aus AdminWiki

Wechseln zu: Navigation, Suche

Installations-Anleitung für den Atheros WLAN-Treiber (AR5418) unter Ubuntu mit WPA-PSK

System: Notebook ASUS C90S AK001C (BIOS Version 0801) mit Ubuntu 7.10 ( Guttsy Gibbon )

Die folgende Anleitung beschreibt die Installation des WLAN-Treibers für Atheros AR5418 Chipsätze unter Ubuntu Guttsy Gibbon. Es ist wahrscheinlich, dass diese Anleitung auch für Debian Etch funktioniert.

ACHTUNG: Mit der Datei 7iwc28ww.exe hat es bei mir nicht mehr funktioniert. Siehe auch Diskusion zu diesem Thema Diskussion:Atheros_AR5418_WLAN_Treiber_unter_Linux(Ubuntu)



UPDATE 23.04.2009

Mit Ubuntu Jaunty Jackalope (9.04) funktioniert mein WLAN endlich wieder und das auch quasi Out-Of-The-Box!
Sogar der Ubuntu-Eigene Networkmanager bekommt die Verbindung recht schnell hin.
Wie zuverlässig das ganze funktioniert bleibt aber abzuwarten.



Inhaltsverzeichnis

Hardware

Als erstes prüfen wir welcher Chipsatz bei unserem System verbaut wurde.

Dafür geben wir in einer Shell folgenden Befehl ein:

lspci | grep Atheros

Die Ausgabe lautet bei mir:

05:00.0 Network controller: Atheros Communications, Inc. AR5418 802.11a/b/g/n Wireless PCI Express Adapter (rev 01)

Das sagt uns nun 2 Dinge: Zum einen die genaue Bezeichnung des Chipsatzes und zum anderen die Revisions Nummer. Die Rev.Nr interessiert zum jetzigen Zeitpunkt noch nicht, die Chipsatzbezeichnung dagegen schon.

Software

Nach längerer Recherche konnte ich ein paar nützliche Informationen sammeln um das WLAN zum laufen zu bewegen.

Als erstes brauchen wir die neueste NDISWRAPPER-Version (v 1.49)

Aktuell getestet unter Ubuntu Guttsy Gibbon:

Dieser Treieber funktioniert mit der NDISWRAPPER Version 1.53

(Funktioniert NICHT mehr!!! Danach laden wir uns die passenden Windows-Treiber von Hier) (Die auf der beigelegten CD enthaltenen Treiber scheinen nicht ordnungsgemäß zu funktionieren)

Mit Madwifi hatte ich auch einige Versuche unternommen, allerdings mit ziemlich wenig erfolg.

Installation

NDISWRAPPER

Deinstallieren

Als erstes sollten wir prüfen, ob nicht bereits eine Version von NDISWRAPPER installiert ist. Um das zu erfahren geben wir in einer Shell folgenden Befehl ein:

ndiswrapper -v

Wenn bereits die Aktuelle Version installiert ist, sollte die Ausgabe ungefähr so aussehen:

utils version: '1.9', utils version needed by module: '1.9'
module details:
filename:       /lib/modules/2.6.22-14-generic/misc/ndiswrapper.ko
version:        1.49
vermagic:       2.6.22-14-generic SMP mod_unload 586

Wichtig ist, das die Installierte Version der aktuellen Version entspricht. Ist dies nicht der Fall, müssen wir die "alte" Version deinstallieren. Hier gibt es 2 Möglichkeiten.

Die erste Möglichkeit ist, NDISWRAPPER als Paket vom System zu entfernen. Das setzt natürlich vorraus das dass Paket mal explizit installiert wurde. Mit folgendem Befehl finden wir heraus ob das Paket "ndiswrapper" installiert ist oder nicht:

dpkg -l | grep ^ii | grep ndiswrapper

Wenn der Befehl kein Ergebniss zurückliefert, dann ist NDISWRAPPER schonmal nicht als Paket installiert. Aber falls doch ein Ergebniss zurückgeliefert wird, können wir es mit folgendem Befehl deinstallieren:

sudo apt-get remove ndiswrapper* --purge

Damit wird NDISWRAPPER komplett, mit allen Config-Files vom System entfernt.

Die zweite Möglichkeit ist, den selbst-kompilierten NDISWRAPPER manuell zu entfernen.

Mit hilfe folgender Anleitung kann NDISWRAPPER deinstalliert werden.

Nun sollte keine NDISWRAPPER Installation mehr vorhanden sein.

Installieren

Wir wechseln auf der Shell in das Verzeichniss in dem das heruntergeladen NDISWRAPPER-Archiv gespeichert wurde. mit

tar xfzv ndiswrapper-1.49.tar.gz
(evtl auch andere Versionsnummer möglich)

wird NDISWRAPPER aus dem Archiv entpackt.

Nun wechseln wir in das eben entpackte Verzeichniss

cd ndiswrapper-1.49

In dem Verzeichniss führen wir nun folgende Befehle aus um NDISWRAPPER zu kompilieren und dann zu installieren:

make distclean
make

Als root:

sudo make install

WLAN-Treiber

Entpacken

Um den WLAN-Treiber installieren zu können müssen wir Ihn ersteinmal entpacken. Linux kann "von Haus aus" nicht mit .exe Files umgehen. Die von uns heruntergeladene Datei "7iwc21ww.exe" ist ein selbstentpackendes Archiv. Darin enthalten sind alle erforderlichen Dateien um den WLAN-Treiber unter Windows, und mit Hilfe von NDISWRAPPER auch unter Linux, installieren zu können. Um an die Dateien heranzukommen müssen wir das Archiv entpacken. Dafür benötigen wir allerdings das Programm cabextract Falls es noch nicht auf dem System installiert ist, holen wir das nun mit folgendem Befehl nach:

sudo apt-get install cabextract

Mit

cabextract 7iwc21ww.exe

entpacken wir das Archiv.

Installieren

Nun da der Treiber entpackt wurde müssen wir diesen nun auch mit NDISWRAPPER installieren:

ndiswrapper -i /pfad/zu/Datei/WINXP_2K/NET5416.INF

installiert den Treiber.

Danach sollte sowas wie

net5416 : driver installed
device (168C:0024) present

ausgegeben werden.

Unsere Letzte aktion besteht darin das NDISWRAPPER-Modul zu laden.

Bevor wir das Modul laden müssen wir noch folgenden Befehl in der Shell ausführen:

sudo depmod -a

Wenn dieser Befehl keine Ausgabe liefert ist alles in Ordnung und wir können das Modul laden:

modprobe ndiswrapper

Der Treiber wurde installiert!

Was nun noch fehlt ist die richtige Config.

Ich werde nun die einzelnen Schritte schildern die ich auf meinem System durchgeführt habe und die in ein funktionierendes WLAN resultierten ;)

Als erstes habe ich per Konsole/Shell die Datei wpa_supplicant.conf im Ordner /etc/wpa_supplicant erstellt:

sudo vim /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant

network={
ssid="IHRE_SSID"
scan_ssid=1
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP
psk="IHR_WPA_PASSWORD"
}

Danach habe ich die Datei interfaces im Ordner /etc/network/ angepasst:

sudo vim /etc/network/interfaces
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
wpa-driver wext
wpa-key-mgmt WPA-PSK
wpa-proto WPA
wpa-ssid IHRE_SSID
auto wlan0

(Die Werte sollten Sie natürlich den gegebenheiten Ihres Systems/Netzwerkes anpassen)

Da das WLAN direkt nach dem Start noch nicht verfügbar ist, habe ich mir noch ein kleines Bash-Skript geschrieben, welches das WLAN automatisch mit startet. Mit

sudo vim /etc/init.d/wlanstart

wird die Datei erstellt und mit folgendem Inhalt gefüllt

#/bin/sh
wpa_action wlan0 stop
iwconfig wlan0 essid IHRE_SSID
iwconfig wlan0 channel IHRE_KANALNUMMER # dieser Eintrag ist evtl nicht nötig!
ifup wlan0

Nun muss die Datei noch ausführbar gemacht werden:

sudo chmod +x /etc/init.d/wlanstart

Damit das Skript auch bei Systemstart ausgeführt wird müssen wir das noch in die entsprechende Config schreiben. Am besten geht das meiner Meinung nach mit rcconf Falls es noch nicht bei Ihnen installiert ist können Sie es mit

sudo apt-get install rcconf

nachholen.

Mit

sudo rcconf

wird das Konfigurationsprogramm gestartet.

Es erscheint eine Liste mit allen vorhandenen Skripten. Wir suchen nun nach wlanstart und markieren es mit der Leertaste (ein Stern erscheint) Mit TABULATOR wechseln wir auf Ok und bestätigen das mit Enter.


Hinweis: Man kann auch auf rcconf verzichten und das wlanstart-skript mit in die rc.local schreiben. Am besten am Ende der Datei, aber noch vor der Zeile exit 0


Leider reichte das in meinen Tests noch nicht aus. Es war notwendig das Interface wlan0 einmal komplett abzuschalten und danach wieder anzuschalten:

sudo ifdown wlan0
sudo ifup wlan0

Ob das bei Ihnen Notwendig ist, können Sie mit

iwlist scanning

testen.

Wenn Sie vor dem kompletten ab- und wieder anschalten des Interfaces die Meldung

wlan0            No scan results

bekommen, müssen Sie die beiden Befehle vor der Benutzung des WLANs ausführen.

Am einfachsten ist es, die beiden Befehle in die rc.local zu schreiben:

sudo vim /etc/rc.local

Dann schreiben Sie direkt über die letzte Zeile (exit 0) folgendes

ifdown wlan0
ifup wlan0
exit 0 # steht schon da

Nach einem Reboot sollte die WLAN Verbindung stehen :)

Hinweise

Ich benutze auf der Shell meistens vim als Editor. Es steht natürlich jedem frei den Editor seiner Wahl zu nutzen! Hauptsache sie wissen wie man damit umgehen muss!