claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 10/2005

WLAN-Karten mit Windows-Treibern nutzen

Treiber-Recycling

von Carsten Schnober


Auch ohne direkte Linux-Unterstützung funktioniert so manche WLAN-Karte mit dem freien Betriebssystem. Möglich macht's der NdisWrapper, der Windows-Treiber unter Linux verwendet.

Die alte Leier: Wie nehme ich meine Hardware unter Linux in Betrieb, wenn der Hersteller nur Windows-Treiber mitliefert? Auch im Falle von Funknetzwerkkarten und -USB-Sticks legen die Produzenten ihrer Hardware gewöhnlich nur für Windows und höchstens noch Apple-Computer Treiber bei. Unter Linux bleibt dann zu hoffen, dass das System sie trotzdem unterstützt. Da dies für viele Karten nicht ohne Weiteres gilt, haben findige Programmierer eine Möglichkeit entwickelt, die Windows-Treiber auch unter Linux zu benutzen und damit auch ansonsten nicht unterstützte Karten anzusprechen.

NdisWrapper [1] liest die Windows-Treiber von WLAN-Hardware ein und stellt sie Linux so zur Verfügung, dass das Betriebssystem keinen Unterschied mehr zu einem nativ von Linux unterstützten Gerät feststellt. Die umfangreiche und stetig wachsende Liste mit NdisWrapper funktionierender WLAN-Karten finden Sie unter [2]. Dort stehen zu einigen Einträgen weitere Anmerkungen, beispielsweise welcher Windows-Treiber sich am besten eignet, allerdings nur auf Englisch. Für viele Geräte finden Sie dort direkt einen Download-Link; im Regelfall verwendet NdisWrapper die für Windows XP vorgesehene Software.

Installation unter Suse Linux

  1. Wählen Sie im Startmenü System / YaST und geben Sie Ihr Root-Passwort ein.
  1. Klicken Sie auf Software installieren oder löschen.
  1. Im Feld Suche: geben Sie ndiswrapper ein.
  1. Markieren Sie im rechten oberen Feld unter den Suchergebnissen den Eintrag ndiswrapper.
  1. Klicken Sie auf Übernehmen und legen Sie auf Anforderung die Suse-DVD ein.

Mandrake Linux

  1. Wählen Sie im Startmenü System / Einstellungen / Paketverwaltung / Software installieren und geben Sie Ihr Root-Passwort ein.
  1. Geben Sie im Textfeld ndiswrapper ein und klicken Sie auf den Button Suche.
  1. Markieren Sie das Suchergebnis ndiswrapper-1.0-3mdk und klicken Sie auf Installieren.

Der Treiber-Treiber

Nun benötigen Sie den Windows-Treiber für Ihr WLAN-Gerät. Ihn finden Sie auf der mit der Hardware gelieferten CD oder auf der Homepage des Herstellers. Auf der CD-ROM sind die Treiberdateien meist bereits entpackt. Wenn Sie sie herunterladen, sollten Sie eine Datei mit der Endung zip bevorzugen. Selbstextrahierende Archive, deren Dateinamen auf exe enden führt Linux nicht aus. Sie lassen sich oft dennoch wie Zip-Archive entpacken, allerdings nicht immer.

Laden Sie die Windows-Software von der Hersteller-Homepage herunter, ist es außerdem wichtig, dass Sie die Treiber für Ihr Gerät sorgfältig aussuchen. Einige Hersteller produzieren gleichnamige Modelle mit verschiedenen Chip-Sätzen und unterscheiden sie lediglich durch ein Detail wie beispielsweise das Anhängsel "v2" an den Modellnamen. Die Treiber für die falsche Variante funktionieren weder unter Windows noch mit NdisWrapper.

Entpacken Sie nun das heruntergeladene Archiv an beliebiger Stelle, indem Sie es im Datei-Manager Konqueror mit der rechten Maustaste anklicken und im Menü Entpacken die Option Hier entpacken oder Entpacken nach... wählen (Abbildung 1).

Abb. 1: NdisWrapper WLAN-Karten mit den Windows-Treibern unter Linux in Betrieb. Dazu laden Sie die Windows-Software herunter und entpacken sie, damit NdisWrapper auf sie zugreifen kann.

Im entpackten Unterverzeichnis befinden sich die Treiber für die verschiedenen Windows-Versionen unterhalb weiterer Unterordner namens WinXP, Win2000 und anderen. In manchen Fällen legt der Hersteller diese auch unterhalb eines weiteren Verzeichnisses wie Drivers oder Release Files ab. Verwenden Sie die Treiber von der mitgelieferten CD des Herstellers, finden Sie dort eine ähnliche Verzeichnisstruktur.

Windows-Treiber unter Suse Linux installieren

Unter Suse Linux erfolgt die Installation des Windows-Treibers über die Kommandozeile.

  1. Öffnen Sie eine Konsole mit Verwaltungsrechten über das Startmenü unter System / Terminals / Terminal (Systemverwaltungs-Modus).
  1. Geben Sie Ihr Root-Passwort ein und drücken Sie die Eingabetaste.
  1. Wechseln Sie ins Verzeichnis, in dem sich die Windows-Treiber Ihrer WLAN-Software befinden; haben Sie sie heruntergeladen und entpackt beispielsweise mit dem Befehl cd /home/benutzer/wlan/WinXP oder auf die Treiber-CD mit cd /media/wlan/WinXP.
  1. Installieren Sie die Treiberdatei mit der Endung INF über dem Kommando ndiswrapper -i datei.inf. Daraufhin erscheint beispielsweise die Meldung Installing netma111 -- an Stelle netma111 steht bei Ihnen die Kurzbezeichnung Ihres Geräts.
  1. Überprüfen Sie mit dem Befehl ndiswrapper -l, ob die Installation funktioniert hat. NdisWrapper gibt daraufhin eine Liste aller installierter Windows-Treiber jeweils mit dem Vermerk driver present aus. Ist das zugehörige Gerät angeschlossen, erscheint dahinter zudem hardware present (Abbildung 2).

Abb. 2: Unter Suse Linux erfolgt die Installation des Windows-Treibers auf der Kommandozeile.

Nun folgt die Einrichtung der WLAN-Karte über die grafischen Werkzeuge von Suse Linux.

  1. Starten Sie Yast über den Eintrag System / YaST im Startmenü und geben Sie Ihr Root-Passwort ein.
  1. Wählen Sie die Kategorie Netzwerkgeräte und darin den Punkt Netzwerkkarte.
  1. Im Bereich Bereits konfigurierte Geräte: sehen Sie die schon eingerichteten Netzwerkkarten. Darüber finden Sie unter Zu konfigurierende Netzwerkkarten gegebenenfalls automatisch gefundene aber noch nicht aktivierte Geräte und den Eintrag Andere (nicht erkannte). Markieren Sie diese Zeile und klicken Sie auf Konfigurieren...
  1. Im nächsten Dialog wählen Sie im Bereich Netzwerkkonfiguration als Gerätetyp aus der Aufklappliste Drahtlos. Unter Modulname tragen Sie ndiswrapper ein. Den Rest lassen Sie unverändert. Auch wenn Sie eine PCMCIA-Karte oder einen USB-Stick verwenden möchten, lassen Sie die beiden Schaltflächen deaktiviert. Klicken Sie nun auf Weiter.

  1. Es folgt die Netzwerkkonfiguration für Ihr WLAN. Die Voreinstellung richtet sich an einem automatisch konfigurierten Netz aus (Automatische Adressenkonfiguration mit DHCP). Besitzen Sie beispielsweise einen WLAN-Router, belassen Sie alles wie vorgeschlagen. Haben Sie ein Netzwerk mit festen Adressen, aktivieren Sie im Bereich Konfigurationsmethode den Punkt Konfiguration der statischen Adresse und tragen die gewünschte IP-Adresse ein. Anschließend klicken Sie auf Weiter.

  1. Unter Einstellungen für Funkgeräte wählen Sie als Betriebsmodus im Falle eines WLAN-Netzes Verwaltet. Verbinden Sie nur zwei Rechner, markieren Sie stattdessen Ad-hoc. Ins Feld Netzwerkname schreiben Sie den Namen Ihres Netzwerks, den Sie auf Ihrem WLAN-Router festgelegt haben. Bevorzugen Sie eine verschlüsselte Verbindung, tragen Sie das Passwort im Feld Verschlüsselungs-Key ein und legen fest, ob es sich dabei um die Passphrase, einen ASCII- oder einen Hexadezimal-Schlüssel handelt (siehe Artikel zu WLAN-Sicherheit). Abschließend klicken Sie erneut auf Weiter.

  1. Sie landen wieder in der Netzwerkkonfiguration, in der Sie im Bereich Bereits konfigurierte Geräte: die neu eingerichtete WLAN-Karte als Ethernet-Netzwerkkarte neben eventuell anderen bereits vorhandenen Geräten finden. Mit Beenden schließen Sie das Fenster, daraufhin überträgt Yast die soeben vorgenommenen Einstellungen ins System und aktiviert die WLAN-Verbindung.

Mandrake Linux

Unter Mandrake Linux installieren Sie die Windows-Treiber mit NdisWrapper in der Netzwerkkonfiguration.

  1. Wählen Sie im Startmenü System / Einstellungen / Den Computer konfigurieren und geben Sie Ihr Root-Passwort ein.
  1. Öffnen Sie den Bereich Netzwerk & Internet und klicken Sie dort Eine Netzwerkschnittstelle erstellen (LAN, ISDN, ADSL....
  1. Es erscheint der Dialog Neue Verbindung, in dem Sie Wireless Verbindung markieren und auf Weiter klicken.
  1. Im nächsten Schritt aktivieren Sie den Eintrag Verwende einen Windowstreiber (mit ndiswrapper) und klicken auf Weiter.
  1. Um einen noch nicht verwendeten Windows-Treiber zunächst mit NdisWrapper bekannt zu machen, wählen Sie Einen neuen Treiber installieren und dann Weiter.
  1. Es erscheint ein Dateiauswahldialog. Wechseln Sie in das Verzeichnis, in dem der Windows-Treiber liegt, und doppelklicken Sie auf die Datei mit der Endung inf. Zurück im Fenster zur Netzwerkkonfiguration klicken Sie erneut auf Weiter, obwohl der Eintrag Netz-Gerät: im Falle von NdisWrapper-Treibern leer bleibt.

  1. Nun folgt die Netzwerkkonfiguration. Haben Sie einen WLAN-Router, belassen Sie es beim Vorschlag Automatische IP (BOOTP/DHCP) und klicken auf Weiter.
  1. Im nächsten Feld legen Sie fest, ob Mandrake Linux die Netzwerkkarte beim Systemstart starten soll. Aktivieren Sie das Feld, wenn Sie das wünschen, und klicken Sie auf Weiter.
  1. Geben Sie nun die Parameter Ihres Funknetzwerks an. Unter Betriebsmodus genügt gewöhnlich Automatisch. Als Netzwerkname tragen Sie die Beschreibung des Funknetzes oder any ein, damit Ihr Gerät mit jedem gefundenen Netz eine Verbindung herstellt. Unter Schlüssel schreiben Sie dieselbe Zeichenkette wie im WLAN-Router, falls Sie ein verschlüsseltes WLAN verwenden.
  1. Nach einem Klick auf Weiter haben Sie die Gelegenheit, netzwerktechnische Details zu bestimmen. Weder RTS/CTS noch Fragmentierung sind normalerweise von Bedeutung; lassen Sie beide Felder leer und klicken Sie auf Weiter, um die Einrichtung abzuschließen und ins Mandrake-Kontrollzentrum zurückzugelangen.

Die weitere WLAN-Konfiguration nehmen Sie über Wireless Verbindung ebenfalls im Punkt Netzwerk & Internet des Kontrollzentrums vor. Unter Verfügbare Netzwerke sehen Sie alle Netzwerke im Empfangsbereich. Indem Sie einen Eintrag markieren und auf Hinzufügen klicken, übernehmen Sie das entsprechende Netz in den Bereich Bekannte Netzwerke. Ein Klick auf Verbinden startet einen Login-Versuch (Abbildung 3).

Abb. 3: Mit Mandrake Linux stellen Sie die Verbindung in ein WLAN-Netzwerk per Mausklick her.

Vorsicht Falle!

Alle Linux-Distributionen liefern SMP-Kernel für Rechner mit mehreren Prozessoren mit, mit denen NdisWrapper allerdings nicht funktioniert. Diese Kernel kommen außerdem bei Pentium-4-PCs mit Hyperthreading-Technologie, zu erkennen am Zusatz HT in der Prozessorbeschreibung, zum Einsatz. Auch AMD-64-Rechner verwenden ähnliche Technologien Hyperthreading-Technologien. In beiden Fällen installieren sowohl Suse als auch Mandrake Linux bei der Standardinstallation die SMP-Kernel.

Die einzige Möglichkeit, NdisWrapper mit solchen Systemen zu benutzen, besteht in der Installation des Standard-Kernels. Ein SMP-Kernel bietet zwar auf entsprechenden Computern kleinere Geschwindigkeitsvorteile beispielsweise beim Kompilieren neuer Programme, im Alltagsgebrauch fallen diese jedoch nicht ins Gewicht. Ihn zu ersetzen, um die WLAN-Karte per NdisWrapper zu benutzen, lohnt sich also durchaus. Nur wenn Sie wirklich einen Rechner mit mehreren Prozessoren besitzen, bringt der SMP-Kernel deutliche Vorteile.

Sie finden heraus, ob auf Ihrem Rechner ein solcher Kernel installiert ist, indem Sie auf der Kommandozeile den Befehl uname -r eingeben. Als Ausgabe erscheint die Kernel-Version, beispielsweise 2.6.11, gefolgt von der Distributionsbezeichnung wie suse oder mdk für Mandrake. Im Falle eines SMP-Kernels steht in dieser Zeile zusätzlich smp.

Unter Suse Linux enthält auch der SMP-Kernel das NdisWrapper-Modul, obwohl es nicht funktioniert. Dadurch lässt sich eine WLAN-Karte einrichten, der Verbindungsaufbau klappt jedoch nicht. Unter Mandrake Linux enthält der SMP-Kernel das NdisWrapper-Modul gar nicht. In beiden Fällen lässt sich das NdisWrapper-Paket dennoch installieren, und danach steht auch das Kommandozeilenwerkzeug ndiswrapper zur Verfügung, funktioniert aber nicht.

Standard-Kernel unter Suse Linux

Wenn Sie unter Suse Linux den Standard-Kernel nachträglich installieren, brauchen Sie den SMP-Kernel nicht zu entfernen: Beide können parallel auf der Festplatte liegen. Im Boot-Menü stehen dann ebenfalls beide zur Auswahl, als Standard wählt der Boot-Manager stets den zuletzt installierten Kernel.

  1. Starten Sie Yast über System / YaST im Startmenü und geben Sie Ihr Root-Passwort ein.
  1. Klicken Sie auf Software installieren oder löschen.
  1. Geben Sie in der Suchmaske kernel ein und klicken Sie auf Suche.
  1. Markieren Sie unter den Ergebnissen die Einträge kernel-default und kernel-default-nongpl, wählen Sie Übernehmen und legen Sie auf Aufforderung Ihre Suse-DVD ein.
  1. Beenden Sie Yast und starten Sie das System neu. Es benutzt nun in der Vorauswahl im Boot-Menü den Standard-Kernel, der bisher verwendete SMP-Kernel steht weiterhin zur Wahl.

Standard-Kernel unter Mandrake Linux

Unter Mandrake Linux können sich ebenfalls mehrere Kernel gleichzeitig koexistieren. Die Standardauswahl behält der Boot-Manager jedoch auch dann bei, wenn Sie einen neuen Kernel eingerichtet haben. Deshalb empfiehlt es sich, nach der Installation des neuen Kernels den SMP-Kernel zu entfernen.

  1. Starten Sie das Mandrake-Kontrollzentrum über den Eintrag System / Einstellungen / Den Computer konfigurieren und geben Sie Ihr Root-Passwort ein.
  1. Wählen Sie den Punkt Betrachten installierbarer Software und installieren von Softwarepaketen.
  1. Geben Sie in die Suchmaske kernel ein und klicken Sie auf Suche.
  1. Unter den Ergebnissen aktivieren Sie den Eintrag kernel-2.6.11.6mdk-1-1mdk. Dann klicken Sie auf Installieren.
  1. Sie werden aufgefordert, Ihre Mandrake-DVD einzulegen, und das System installiert den neuen Kernel.
  1. Zurück im Kontrollzentrum wählen Sie Betrachten installierter Software und deinstallieren von Softwarepaketen.
  1. Geben Sie ins Textfeld smp ein und klicken Sie auf Suchen.
  1. Aktivieren Sie aus den Suchergebnissen den Eintrag kernel-smp-2.6.11.6mdk-1-1mdk und klicken Sie auf Entfernen.
  1. Beenden Sie das Kontrollzentrum und starten Sie das System neu. Beim Hochfahren lädt es den Standard-Kernel, und Sie können NdisWrapper wie beschrieben verwenden.

Notnagel oder Geniestreich?

Als das NdisWrapper-Projekt startete, entbrannte in der Linux-Welt eine Diskussion, ob dieser Weg der Entwicklung nativer Treiber im Wege stehe. Die Gegner argumentieren, selbst Benutzer mit Programmierkenntnissen verwenden aus Bequemlichkeit die Windows-Treiber, statt Linux weiterzuentwickeln, so dass es die Hardware direkt unterstützt. Sie möchten sich nicht dauerhaft auf die Hersteller verlassen, wie es NdisWrapper voraussetzt. Da diese die alleinige Kontrolle über ihre Software behalten, können die Linux-Entwickler nicht nachvollziehen, wie sich diese genau verhält, und eine Instabilität des gesamten System könnte die Folge sein.

Die NdisWrapper-Befürworter dagegen sehen als wichtigstes Ziel, dass möglichst viele Geräte unter Linux funktionieren. Auf welche Weise dies geschieht, erachten sie als zweitrangig.

Inzwischen haben die Distributoren NdisWrapper so weit in ihre Systeme integriert, dass auch Laien sie verwenden können. Zwar läuft auch damit nicht jede WLAN-Hardware unter Linux, aber die beeindruckende Länge der Liste unterstützter Geräte auf der NdisWrapper-Homepage enthält wohl die meisten handelsüblichen Karten, die Linux ansonsten nicht in Betrieb nehmen kann. (csc)

Infos
[1] NdisWrapper: http://ndiswrapper.sourceforge.net
[2] Von NdisWrapper unterstützte Geräte: http://ndiswrapper.sourceforge.net/mediawiki/index.php/List

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2018 COMPUTEC MEDIA GmbH | Last modified: 2007-04-05 11:10

Nutzungsbasierte Onlinewerbung

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]