Linux Tutorial für DWL-(G)650+ / DWL-(G)520+
Dieses ist das neue Tutorial für alle WLAN-Karten mit dem acx100 und acx111 Chip.
Dieser Treiber funktioniert NUR mit einem Kernel der Version 2.6.10 oder neuer!!! (uname -r gibt die Kernelversion aus)
Der Treiber unterstützt den acx100 und acx111 Chip (z.B. D-Link DWL-650+, DWL-520+, DWL-120+, DWL-G520+ und DWL-G650+) mit USB, WEP und HostAP. WPA wird noch NICHT unterstützt!
Dieses Tutorial sollte auf allen Distribution wie z.B. Suse, Debian, Ubuntu, Gentoo, usw. laufen.
Wenn der Kernel geupdatet wurde (z.B. Suse online update) muss der Treiber neu kompiliert und installiert werden! Beim Kernel Update nicht vergessen die Kernel-Headers oder die Kernel-Sourcen mit upzudaten, die müssen immer genau die gleiche Version haben wie der laufende Kernel! Unter Suse muss man, sofern ein Kernelupdate (Onlineupdate) gemacht wurde, auf jeden Fall NACH der Installation der Kernel-Source noch einmal ein Onlineupdate machen.
Vor der Installation wird noch Software benötigt, damit sich der Treiber kompilieren lässt. Diese Software sollte man mit den Distributioneigenen Tools, wie Yast, apt-get, portage, usw. installieren. Wir brauchen eine komplette Build-Umgebung (gcc, make und Kernel-Sourcen).
So ich habe hier mal aufgelistet, was bei den einzelnen Distribution nach einer Standardinstallation noch fehlen müsste:
-
Debian: linux-headers (mache ein apt-get install linux-headers)
-
Fedora Core 3: es sollte schon alles installieren sein
-
Fedora Core 4 und 5: kernel-devel
-
Gentoo: es sollte schon alles installieren sein
-
Mandriva: kernel-sources, gcc, make
-
Suse: kernel-sources, gcc, make, (kann man über Yast -> Software hinzufügen installieren)
-
Ubuntu: linux-headers (mache ein apt-get install linux-headers)
Wenn das jetzt alles installiert ist hat hat man zwar noch gar nichts mit dem eigentlichen Treiber gemacht, sich aber schon eine vollwertige Build-Umgebung geschaffen, die man vielleicht auch noch für andere Software benötigt.
Wir werden die ganzen Arbeitsschritte in der Konsole machen und keine Distributionspezifischen Tools wie z.B. Yast benutzen, da es so alles sehr Distributionunabhängig ist und es ziemlich egal ist welche Distribution ihr verwendet.
Alle folgenden Befehle werden auf der Konsole, die findet ihr, wenn ihr KDE benutzt unter K->Terminal-Sitzungen->Befehlsfenster, ausgeführt und sind daher auch ohne grafische Bedienoberfläche ausführbar.
Um den Treiber zu installieren muss man wie folgt vorgehen:
Als nächstes müsst ihr den Source-Code des Treibers und die Firmware downloaden. Dieses könnt ihr, wie hier beschreiben, über wget machen, wenn ihr schon Internet auf den PC habt, auf dem ihr den Treiber installieren wollt.Wenn ihr keine Internetverbindung habt könnt ihr die beiden Dateien aber auch auf einem anderen PC downloaden und dann in dieses Verzeichnis packen und mit dem nächsten Schritt weitermachen.
wget http://www.hauke-m.de/fileadmin/acx/fw.tar.bz2
wget http://www.hauke-m.de/fileadmin/acx/acx-20071003.tar.bz2
Zum entpacken des Treiber und der Firmware führt ihr folgendes aus:
tar xjf fw.tar.bz2
tar xjf acx-20071003.tar.bz2
Jetzt wechselt ihr selber mit der Konsole in das Verzeichnis:
cd acx-20071003
So jetzt haben wir den Treiber und müssen ihn nur noch installieren. Dafür gibt es jetzt 2 Möglichkeiten.
Entweder baut man ihn direkt in den Kernel ein oder man fügt ihn nachträglich hinzu. Wir werden ihn nachträglich hinzufügen, da es so einfacher und schneller geht.
Als nächstes müssen wir in der Konsole zum User root wechseln, damit wir die nächsten Schritte ausführen können.
su
Password: <euer root Passwort>
Installieren der Firmware
Bevor ihr mit dem kompilieren des Treibers anfangt packt ihr schon mal die entsprechende Firmware in das Firmwareverzeichnis des hotplug Firmware Subsystem, damit sie später geladen werden kann. Ihr müsst /lib/firmware/ im Folgenden Befehl durch das bei eurer Distribution angegebene Verzeichnis ersetzen.
-
Gentoo: /lib/firmware/
-
Suse: /lib/firmware/ oder /usr/lib/hotplug/firmware/
-
Debian: /lib/firmware/
-
Mandriva: /lib/hotplug/firmware/
-
Fedora Core: /lib/firmware/
-
OpenBSD: /etc/firmware/
-
Ubuntu: /lib/firmware/
Dazu führen folgendes aus:
Beim acx100-Chip (DWL-520+ und DWL-650+)
cp ../fw/acx100_1.9.8.b/* /lib/firmware/
Beim acx100-Chip und USB (D-link DWL-120+)
cp ../fw/acx100_1.0.9-USB/* /lib/firmware/
Beim acx111-Chip (DWL-G520+ und DWL-G650+)
cp ../fw/acx111_1.2.1.34/* /lib/firmware/
Sollte es hier zu Fehlern gekommen sein so wie „No such file or directory“ dann müsst ihr mit "mkdir /lib/firmware/" das Verzeichnis erstellen.
Jetzt müssen wir den Treiber noch compilieren und das Kernel-Modul installieren
Bauen und installieren der Treibers
Baut den Treiber
make -C /lib/modules/`uname -r`/build M=`pwd`
` = Zeichen neben dem "ß"-Zeichen auf der Tastatur: ` = SHIFT+` (Danke locutus)
Installiert den Treiber
make -C /lib/modules/`uname -r`/build M=`pwd` modules_install
Wenn einer dieser Befehle einen Error (keine Warnung) ausgibt dann solltet ihr euch den genaustes durchlesen und am besten mal mit Google nach einem Ausschnitt dieses Fehler suchen oder es
im Forum posten.
Unter Mandriva müsst ihr /lib/modules/`uname -r`/ durch /lib/modules/`uname -r`custom/ beim bauen und installieren des Treibers ersetzten.
Bitte kontrolliert vorher, ob das Verzeichnis /lib/modules/`uname -r`/ und /usr/src/linux/ exsistiert.
Wenn ihr den Treiber nicht für den aktuell laufenden Kernel bauen wollte dann müsst ihr `uname -r` durch die Kernelversion ersetzten.
Dann führt diesen Befehl aus:
depmod -a
Unter Suse 10.0 geht depmod -a nicht ihr könnt stattdessen auch einen Neustart ausführen und beim nächsten Punkt weitermachen.
Einfügen des Kernel-Moduls
Vergewissert euch jetzt nochmal, dass keine anderen Kernelmodule für die WLAN-Karte geladen sind (alter Treiber, ndiswrapper, ...). Dieses könnt ihr mit folgenden Befehl machen:
lsmod | grep acx
und mit diesen könnt ihr das Modul entfernen.
modprobe -r <Modul Name>
Jetzt könnt ihr mit dem folgenden Befehl den Treiber als Modul in den Kernel einfügen.
modprobe acx
Kontrolliert jetzt mit "dmesg",ob es Probleme beim einfügen gab. Es müssten einige Zeilen über den acx Treiber auftauchen. Wenn die Installation geklappt hat müsste mit "iwconfig" ein interface wlan0 zu sehen sein.
Jetzt müssen wir nur noch das WLAN Interface konfigurieren und das ist auch nicht mehr so schwer.
Jetzt noch 2 Kommandos und es sollte gehen: (ihr müsst die Variablen durch die SSID bzw. den WEP-Key eures WLANs ersetzen.(ohne "<" und ">")) Der Modus muss immer explizit mit angegeben werden, weil der Modus "auto" nicht unterstützt wird!
Die ESSID darf KEINE Sonderzeichen sondern nur Zeichen von a-z und 0-9 enthalten!
Der WEP-Key muss als Hex-Zahl eingegeben werden oder als ASCII mit einem "s:" vor dem eigentlichen Key!
iwconfig wlan0 mode managed essid <SSID> key "<WEP-Key>" open channel <Kanal>
Und dann muss das Interface noch aktiviert werden:
ifconfig wlan0 192.168.0.2 netmask 255.255.255.0 up
route add default gw 192.168.0.1 wlan0
Dann müsst ihr in die /etc/resolv.conf den Nameserver eintragen. Dazu fügt ihr das hier in die /etc/resolv.conf ein:
nameserver 192.168.0.1
So jetzt sollte die WLAN-Karte fertig eingerichtet sein. ihr könnt das mit einem ping kontrollieren
ping www.google.de -c 4
Diese Konfiguration ist nicht dauerhaft sonder wird nach einem Neustart verworfen.
Zur dauerhaft Konfiguration lesen sie das hier für Gentoo.
Bei Debian und Ubuntu müsst ihr in der Datei /etc/network/interfaces folgende Wireless-Einträge für die Verbindung zu einem mit WEP gesicherten Access Point machen:
wireless-mode managed
wireless-keymode open
wireless-channel <Kanal>
wireless-essid <SSID>
wireless-key <WEP-Key>
(Danke Jürgen Beckmerhagen)
Bei Fedora Core 5 (vielleicht gehen auch andere Versionen) müsst ihr in der Datei /etc/sysconfig/network-scripts/ifcfg-wlan0 folgende Wireless-Einträge für die Verbindung zu einem mit WEP gesicherten Access Point machen:
# WIRELESS D-Link DWL-G650+B2 CardBus [TI-ACX111]
DEVICE=wlan0
HWADDR=XX:XX:XX:XX:XX:XX
ONBOOT=[yes|no]
TYPE=wireless
ESSID='<ssid>'
MODE=[managed|ad-hoc]
CHANNEL=<kanal> KEY="<wep-key>"
KEYMODE=[open|restricted]
BOOTPROTO=[static|dhcp]
# Wenn BOOTPROTO=dhcp, faellt der Rest natuerlich weg
IPADDR=<host-ip> DOMAIN=<domain> NETMASK=<netmask> GATEWAY=<gateway-ip></gateway-ip></netmask></domain></host-ip></wep-key></kanal></ssid>
(Danke Sebastian Schmieschek)
Wenn ihr euren Kernel selber Compiliert habt dann müsst ihr euch sicher sein, dass ihr diese Features mit in den Kernel compiliert habt:
Loadable module support
[*] Enable loadable module support
[*] Module unloading
[*] Automatic kernel module loading
Device Drivers
[*] Networking support
Wireless LAN (non-hamradio) --->
[*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
Sollte das Modul nicht automatisch geladen werden müsst ihr es noch in die /etc/modules.autoload.d/kernel-2.6 hinzufügen indem ihr in die Datei eine neue Zeile mit acx einfügt.
Wenn ihr einen neuen Kernel installiert z.B. durch ein Update eurer Distribution, dann müsst ihr den Treiber neun compilieren und installieren.
Ich würde mich freuen, wenn mich noch Leute unterstützen würden mit Informationen zu anderen Distribution da ich nur Gentoo habe und deswegen keine genaueren Informationen zu anderen Distribution geben kann.
Bei Fragen, Anregungen oder Problemen mit Tutorial schreibt macht einen
Thread im Forum auf.
Gibt bitte beim Posten folgenden mit an:
Linux Distribution + Versionsnummer
Welche WLAN-Karte ihr verwendet
Treiberversion
Kernel Version (uname -r)
Dann kann die Ausgabe von iwconfig und ifconfig die eventuell auf das wichtigste gekürzt ist nicht schaden
Und dann noch dmesg und ob ein ping zum Router oder zu einer Website geht.
Weitere Informationen und Links:
For the English speakting people here is an
English HowTo
Altes Tutorial