Ndiswrapper aktivieren

sidux hat schon alle benötigten Pakete (Kernelmodule und ndiswrapper-utils) auf der Festplatte installiert.

apt-get update
apt-get install ndiswrapper-modules-2.6-sidux-i686 (oder ndiswrapper-modules-2.6-sidux-amd64)
Zum Selbermachen:

Der für die Karte geeignete Treiber wird mit diesem Befehl installiert:

ndiswrapper -i /pfad/zu/driver.inf

Um zu prüfen, ob die Installation fehlerfrei verlaufen ist, nutzt man die Option -l:

root@blubb:/folder/with/driver# ndiswrapper -l
installed drivers:
net5416 : driver installed
 device (168C:0024) present 

Wichtig ist, dass man die Ausgaben "driver installed" und "device present" sieht. Falls diese fehlen, ist etwas bei der Installation falsch gelaufen und eine WLAN-Verbindung ist nicht möglich. Den Fehler kann man mit 'ndiswrapper -i' oder mit 'dmesg' suchen.

Nun lädt man das Ndiswrapper-Modul:

modprobe ndiswrapper

und überprüft, ob es korrekt installiert wurde:

iwconfig	

Man testet, ob der Access-Point gefunden wurde:

iwlist wlan0 scan

Dann kann man die Schnittstelle konfigurieren:

ceni

Dann lädt man es mit modprobe:

modprobe ndiswrapper

Die Windows-Treiber muss man nicht neuinstallieren, weil dieser getrennt vom Kernelmodul gespeichert wird.

Man kann ndiswrapper auch in /etc/modules eintragen, um ndiswrapper bei jedem Systemstart automatisch zu laden:

grep -q ^ndiswrapper /etc/modules|| echo ndiswrapper >> /etc/modules

ndiswrapper kann auch mit dem grafischen sidux-Kontrollzentrum (siduxcc) installiert werden, welches man im KDE-Start-Menü findet.

Ndiswrapper (erweitert)

Das Ndiswrapper-Modul ermöglicht es Linux, für Windows geschriebene WLAN-Treiber zu benutzen. Dies ist notwendig, weil einige Hersteller von WLAN-Karten keine Open-Source- oder freien Treiber bereit stellen und daher die Implementierung der Karte in Linux schwierig machen. Ndiswrapper umgeht dieses Problem, indem es den Windows-Treiber "umhüllt" und Input wie Output von Karte und Linux übersetzt.

Identifizierung des benötigten Treibers

Als erstes benötigt man einen funktionierenden Windows-Treiber für die entsprechende WLAN-Karte. WLAN-Karten können viele verschiedene Chipsätze für ein Modell haben und der einzige Weg, die Karte exakt zu bestimmen, läuft über die Geräte-ID (USBID/PCIID).

Um diese 'ID' zu bekommen, öffnet man ein Terminal:

Für einen USB-WLAN-Adapter
bla@blubb:~$ lsusb
Bus 004 Device 002: ID 2001:3700 D-Link Corp. [hex] DWL-122 802.11b
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 003: ID 0db0:6982 Micro Star International Medion Flash XL V2.7A Card Reader
bla@blubb:~$

Für den Adapter "D-Link Corp. [hex] DWL-122" im Beispiel ist die USB-ID 2001:3700.

Für einen (mini-)PCI/PCMCIA-WLAN Adapter
bla@blubb:~$ lspci -nn
00:1f.3 SMBus [0c05]: Intel Corporation 82801G (ICH7 Family) SMBus Controller [8086:27da] (rev 02)
01:00.0 Ethernet controller [0200]: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller [11ab:4362] (rev 22)
02:00.0 Network controller [0280]: Atheros Communications, Inc. Unknown device [168c:0024] (rev 01)
03:03.0 FireWire (IEEE 1394) [0c00]: Agere Systems FW323 [11c1:5811] (rev 61)

Diese 'ID' setzt sich ebenfalls nach dem Schema hersteller:gerät zusammen, hier 168c:0024 für die Atheros-Karte.

Nun sucht man in ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_openwiki/Itemid,33/id,list nach einem Eintrag mit der jeweiligen 'ID'. Mit ein wenig Glück findet man einen entsprechenden Eintrag und eine Treiberempfehlung.

Man benötigt die INF- und SYS-Dateien dieses Treibers. Im besten Fall erhält man eine ZIP-Datei, welche man einfach mit unzip entpacken kann. Bekommt man hingegen eine EXE-Datei, handelt es sich um ein selbstentpackendes Archiv (welches man wine entpacken lässt) oder eine CAB-Datei (welche man mit cabextract entpackt). Der Einfachheit halber speichert man alle extrahierten Dateien nun in einem neuen Ordner im home-Verzeichnis.

Aktivierung von Ndiswrapper und Installation des Treibers

Nun wechselt man in den Ordner, der die Windows-Treiber-Dateien enthält:

bla@blubb:~$cd /ordner/mit/treiber
bla@blubb:~$su
root@blubb:/ordner/mit/treiber# ndiswrapper -i <driver.inf>
installing net5416 ...
root@blubb:/ordner/mit/treiber# ndiswrapper -l
installed drivers:
net5416 : driver installed
 device (168C:0024) present 

Wichtig ist, dass man die Ausgaben "driver installed" und "device present" sieht. Falls diese fehlen, ist etwas bei der Installation falsch gelaufen und die folgenden Schritte sind nicht möglich. Den Fehler kann man mit 'ndiswrapper -i' oder mit 'dmesg' suchen.

Nun lädt man das Kernelmodul:

root@blubb:/irgendein/ordner# modprobe ndiswrapper

Wenn man hier keine Meldungen erhält, gab es keine Fehler, wenn man hier hingegen (Fehler-)Meldungen erhält, sollte man 'dmesg' überprüfen, um mehr Informationen zu erhalten.

"iwconfig" sollte nun ein WLAN-Gerät anzeigen:

root@blubb:~# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

lan0      no wireless extensions.

tun0      no wireless extensions.

wlan0     IEEE 802.11b  ESSID:"ConnectionPoint"
          Mode:Managed  Frequency:2.457 GHz  Access Point: 00:01:E3:0A:93:1B
          Bit Rate=11 Mb/s
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Wenn man möchte, dass Ndiswrapper bei jedem Start automatisch geladen wird, braucht man bloß ndiswrapper in die /etc/modules zu schreiben, entweder von Hand oder mittels:

root@blubb:~# grep -q ^ndiswrapper /etc/modules|| echo ndiswrapper >> /etc/modules
Neuinstallation von Ndiswrapper nach Kernelupdates

Nach jedem Kernelupdate muss man das Ndiswrapper-Kernelmodul neu installieren.

apt-get update
apt-get install ndiswrapper-modules-2.6-sidux-i686 (oder ndiswrapper-modules-2.6-sidux-amd64)

Nach der Installation lädt man es mit:

root@blubb:/irgendein/ordner# modprobe ndiswrapper

Die Windows-Treiber müssen nicht neu installiert werden, weil die Treiber von dem Kernelmodul unabhängig gespeichert sind.

Grundsätzliche Informationen

Um die neue Schnittstelle zu konfigurieren, wird am besten Ceni verwendet

Eine detaillierte Anleitung kann man hier finden.

Wenn Sie einen anderen/neueren Treiber entdecken, testen Sie diesen bitte ebenfalls. Dies kann zwar Probleme bereiten, im schlimmsten Fall eine 'kernel panic', aber Sie helfen so dem Ndiswrapper-Projekt und anderen Benutzern, von den besten Treibern für die jeweiligen Karten zu profitieren. Bitte vergessen Sie dabei nicht, die Ndiswrapper-Liste nach einem erfolgreichen Test auf den neuesten Stand zu bringen bzw. zu vervollständigen.

Content last revised 01/001/2009 0001hrs UTC