SDB:Wireless-Ndiswrapper
Getestet mit openSUSE | Empfohlene Artikel | Verwandte Artikel | |||
|
Inhaltsverzeichnis
Warum (und warum nicht) NDISwrapper
Einige Anbieter geben keine Spezifikation der Hardware heraus oder unterstützen keine Linux-Treiber für ihre WLAN-Netzwerkkarten. Das NDISwrapper-Projekt implementiert die Programmierschnittstellen (API) und NDIS (Network Driver Interface Specification) API des Windows-Kernel in den Linux-Kernel. Ein Windows-Treiber für eine WLAN-Netzwerkkarte ist dann mit dieser Implementierung verbunden, so dass der Treiber so läuft, als ob er unter Windows laufen würde, ohne binäre Emulation.
Bitte beachten Sie, dass Sie die originalen WLAN-Treiber (wie b43, ath9k, usw.) verwenden, der vom Kernel unterstützt wird, wenn immer es möglich ist. NDISwrapper funktioniert durch die Verbindung des Windows-Treibers mit dem Kernel-Raum; für Kernel Entwickler: das ist eine Verletzung der GPL Lizenz des Kernels.
Überdies funktioniert NDISwrapper nicht mit den Standard-Kernel-Eigenschaften, wie 4K Stacks, und beschränken den Anwender auf den reinen Binärtreiber im Kernel Raum, den der Anwender nicht modifizieren oder beheben kann. Weiterhin funktioniert NDISwrapper überhaupt nicht ohne Windows-Treiber, die 1. nicht verteilbar und 2. nicht Open Source sind.
Ergänzend, weil der NDISwrapper an den Kernel gebunden ist, haben Bugs im Windows-WLAN-Treiber das Potential Kernel abstürze zu verursachen, obwohl die gleichen Bugs in Windows keine Probleme verursachen könnten. Es ist also ein Stabilitätsproblem zu berücksichtigen. Ein weiteres Problem ist, wenn Sie einem Kernel-Bug begegnen, das in einem "oops" endet, weil die meisten Kernel Entwickler Sie fragen werden, das Problem zu reproduzieren, ohne den Kernel zu verderben, indem Sie ihn ohne nicht-GPL-Treiber laden.
Wie erhält man NDISwrapper
Von der openSUSE CD/DVD
Ndiswrapper ist auf Ihrer openSUSE Installations-CD/DVD enthalten. Nutzen Sie den Softwaremanager YaST und stellen Sie sicher, dass folgende Pakete installiert sind:
- ndiswrapper
- ndiswrapper-kmp-[default|smp|xen]
- wireless-tools
Wählen Sie das passende Kernel Modul-Paket (kmp) für Ihre Architektur. Um herauszufinden, welches Kernel Modul Sie verwenden, geben Sie folgenden Befehl in der Konsole ein:
Vom Repository Wireless (WLAN)
Sie können die letzte Version von NDISwrapper vom Repository:Wireless-Treiber erhalten.
- Bitte prüfen Sie zuerst, welche Kernel-Version auf Ihrem Rechner läuft:
- Dann verschaffen Sie sich Root-Rechte mit:
- In Abhängigkeit von Ihrer openSUSE Version und der letzten Kernel-Version müssen Sie das richtige Repository wählen:
Bestands-Kernel
Wenn Sie Ihren Kernel nicht aktualisiert haben, sind das die richtigen Repositorys, die Sie hinzufügen müssen:
kernel 2.6.37. i386 or x86_64 GNU/Linux (openSUSE 11.4)
kernel 2.6.34. i386 or x86_64 GNU/Linux (openSUSE 11.3)
Aktuellste Kernel-Versionen
Wenn Sie Ihren Kernel auf die neueste Version mit YAST per Online Update aktualisiert haben, müssen Sie stattdessen folgende Repositorys hinzufügen:
openSUSE 11.4: shell|$ sudo zypper ar http://download.opensuse.org/repositories/driver:/wireless/11.4-update/ ndiswrapper}}
openSUSE 11.3:
- Nachdem Sie die Repositorys hinzugefügt haben, können Sie sie installieren:
Wenn Sie einen "Desktop" Kernel verwenden:
Wenn Sie einen "Standard"-Kernel verwenden:
Wenn Sie einen "pae" Kernel verwenden:
Aus dem Quellcode
Sie können ebenso die neueste Version von der Ndiswrapper Seite herunterladen und kompilieren .
Beschaffung der Windows-Treiber
Auf den Ndiswrapper-Seiten unter Dokumentationkönnen Sie eventuell heraus bekommen, ob Ihre spezielle Hardware mit Ndiswrapper funktioniert.
Von Ihrer Windows-Partition
Wenn Sie ein Dual-Boot-System besitzen und Ihre Karte funktioniert unter Windows, besteht auch eine Möglichkeit darin, Ihre Treiber von der Windows-Partition zu übernehmen. (Wenn Ihre Windows-Installation 32-Bit-System ist, dann sind auch die Treiber 32 Bit bzw. 64 Bit bei einem 64-Bit-System.)
Im Windows-System gehen Sie zum Geräte-Manager und suchen Sie Ihre Wireless-Karte unter "Network adapters", führen einen Rechts-Klick darauf aus und gehen zu Properties->Driver->'Driver Details...'. Jetzt sollten Sie den Pfad zur *.sys-Datei finden, gewöhnlich im Verzeichnis: C:\windows\system32\drivers\.
Nun nutzen Sie die Windows-Suchfunktion, um die passende *.inf-Datei zu finden. Sie ist nicht mehr als eine einfache Textdatei mit einer Liste aller geforderten Treiberdateien. So eine einfache Suchfrage in Windows würde sein:
Alle Teile des Dateinamens: | *.inf |
Ein Wort oder Begriff innerhalb der Datei: | <the *.sys path found above> |
Siehe in: | örtliche Festplatte (C:) |
Diese Suche könnte eine Weile dauern! Wenn Sie die Datei gefunden haben, schauen Sie in die *.inf-Datei mit einem Texteditor und prüfen Sie, ob Sie noch mehr Dateien finden müssen. Wenn Sie Glück haben, ist alles in einem einzigen Verzeichnis. (zum Beispiel: C:\Programmdateien\Atheros\Treiber\) Kopieren Sie alle diese Dateien an einen gemeinsamen Ort oder auf einen externen USB-Datenspeicher, der auch für Ihr Linux-System zugänglich ist.
Mit einer Treiber-Installations-Software
Es gibt mehrere Orte, wo Sie versuchen können, Ihren Treiber zu finden:
- Die Installations-CD, die Sie mit ihrer Hardware erhalten haben;
- Die Support-Webseite Ihres PC- oder Karten-Herstellers;
- Durchsuchen Ihrer *.sys-Datei mit Google;
Wenn Sie Glück haben, können Sie die geeignete *.inf-Datei und die mit Ihr verbundenen Dateien sehr leicht finden. Manchmal müssen Sie eine *.cab-Datei entpacken, die Ihren Treiber enthält. Sie können versuchen, diese *.cab-Datei mit cabextract (ein Kammandozeilenwerkzeug) zu entpacken.
Sie können cabextract erhalten durch:
Noch einmal, wenn Sie alle Ihre Dateien gefunden haben, kopieren Sie sie an einen Ort, auf den Sie unter LINUX Zugriff haben.
Verfahren mit Mehrfach-*.inf-Dateien
Wenn es zwei oder mehr .inf-Dateien gibt, bedeutet das, dass Treiber für verschiedene Windows-Versionen vorhanden sind.
Zum Beispiel:
bcmwl5a.inf und bcmwl5.inf
Der erste ist für win98 und der zweite für Win2K, Me und XP. So kann es sein, dass der Treiber für win98 funktioniert und der für XP nicht.
Hier gilt ausprobieren.
Treiber Installation
- Öffnen Sie ein Konsolenfenster und erlangen erweiterte Nutzerrechte (Root-Rechte) mit dem su Kommando. Danach wird nach Ihrem Passwort gefragt:
- Haben Sie Root-Rechte, geben Sie z. B. ein:
Natürlich müssen Sie darauf achten, dass Sie den aktuellen Pfad zu Ihrer .inf-Datei eingeben.
cd '/home/Unterordner/.../Ordner in dem die .inf-Datei enthalten ist'
und danach können Sie den Treiber installieren, indem Sie den .inf-Dateinamen eingeben:
- Wenn alles gut geht, geben Sie ein:
- Wenn Sie einen passenden/kompatiblen Windows-Treiber installiert haben, Ndiswrapper wird etwas ähnliches wie das Folgende anzeigen:
<Treiber-Bezeichnung> : Treiber installiert
Treiber (xxxx:xxxx) vorhanden (anderer Treiber: <ursprünglicher-Treiber-Name>)
Während <Treiber-Bezeichnung> den Namen des mit Ndiswrapper installierten Windows-Treibers zeigt, ist <ursprünglicher-Treiber-Name> die Bezeichnung des ursprünglichen Linux-Treibers, der überschrieben wurde.
blacklist <ursprünglicher-Treiber>
wobei <ursprünglicher-Treiber> ist der aktuelle Name des Treibers, der auf die schwarze Liste gesetzt wird.
- Wenn Ndiswrapper sagt "ungültiger Treiber", dann müssen Sie ihn deinstallieren und es mit einem anderen versuchen.
- Um einen Treiber zu deinstallieren, müssen Sie folgendes eingeben:
- Eine zusätzliche Prüfung besteht darin, in
zu schauen, ob ein Verzeichnis benannt, wie der installierte Treiber, vorhanden ist.
USB-WLAN-Stick
Wenn Sie einen USB-WLAN-Stick benutzen, gibt es einen zusätzlichen Schritt, den Sie ausführen müssen, um den Treiber vernünftig zu installieren. Sie müssen Ndiswrapper die Vertreiber-ID und die Produkt-ID Ihres USB-WLAN-Sticks mit der -d Option zur Verfügung stellen. Schauen Sie unter YAST Hardware Information Kategorie USB nach. Alternativ können Sie eingeben:
Damit sollten es möglich sein, zwei vierstellige Nummern wie 168c und 0013 zu erhalten.
Um die USBIB mit dem Treiber zu verbinden, geben Sie ein:
Werfen Sie einen Blick auf den Befehl:
um den Treiber erfolgreich zu laden/zu verbinden.
Wenn es funktioniert, können Sie den Alias für Ndiswrapper in die modules.conf mit
schreiben.
Laden Sie Ndiswrapper mit folgendem Befehl:
Danach können Sie ihn mit YAST konfigurieren.
Konfigurieren Sie Ihre Karte mit YaST
Wenn Sie das Problem haben, dass Ihre WLAN-Karte vom (K)NetworkManager nicht erkannt wird, müssen Sie zusätzliche Schritte ausführen, um Ihre Karte zu konfigurieren.
Es sind eine Vielzahl von Konfigurationen möglich:
- Starten Sie YaST's Netzwerkkonfiguration: Netzwerkgerät → Netzwerk Karte
- Gehen Sie zum "Übersicht" Reiter
- Wähle den: "Hinzufügen" Knopf in der unteren Hälfte
- Wähle:
- Vorrichtungstyp: "Wireless"
- Konfigurations-Name: "0" (oder was auch immer :))
- Hardware Konfigurations-Name: "statisch-0"
- Modul Name: "ndiswrapper"
- Options: "" (bleibt leer)
- Nicht "PCMCIA" oder "USB" auswählen
- ... und schließlich "Weiter"
- Auf dem nächsten Bildschirm wählen Sie DHCP in "Hostname und Server-Name" und in "fortgeschritten → DHCP Optionen", dann Klick "Weiter"
- Im "Wireless-Netzwerk-Kartenkonfiguration"-Fenster wähle (= behalte die Standardeinstellung):
- Operations Modus: "durchgeführt"
- Netzwerk Name (ESSID): "" (bleibt leer)
- Authentifizierungs-Modus: "Offen"
- Eingabe Typ: "Passphrase"
- Verschlüsselungs-Schlüssel: "" (bleibt leer)
- .. . und schließlich "Weiter"
- Der Kwallet-manager könnte öffnen -- geben Sie ihm Ihr Passwort und ignorieren Sie das Öffnen (es macht nichts)
- Ignorieren Sie die Warnung, dass "die Verschlüsselung auf eigenes Risiko erfolgt"
- zurück in der "Netzwerk-Karten-Konfigurationsübersicht wähle "Weiter".
Ihre Karte ist konfiguriert.
Sie könnten nun den Netzwerkmanager in Ihrer Taskleiste öffnen und einen der gefundenen Netzwerke auswählen. Wenn die LAN-Verbindung noch besteht, müssen Sie diese Verbindung unterbrechen.
Wenn Ihre SSID (WLAN-Name) nicht angezeigt wird, können Sie einen eigenen speziellen im Netzwerkmanager auswählen.
Hardware spezifische Informationen
Atheros
Wenn Sie eine auf Atheros basierende Karte besitzen, ist es empfehlenswert, es zuerst mit madwifi zu versuchen. Wenn Sie madwifi nicht zum Laufen bekommen, Ndiswrapper macht meistens den Job auch, obwohl Sie einige kleinere Probleme erfahren könnten. Schauen Sie auch auf SDB:Atheros madwifi nach mehr Informationen.
Bemerkung: Nach anfänglichen Versuchen nach dieser Anleitung auf einem IBM t43p, zeigte sich, dass es nicht mit der Standardeinstellung von Ndiswrapper funktionierte. Der Autor musste die letzte stabile Version (1.43 stabil) herunterladen und folgende Schritte ausführen: compile / make / make install. Schließlich musste die Zeile "modprobe ndiswrapper" am Beginn von /etc/rc.d/network eingefügt werden, um WLAN beim Booten starten zu können.
Weitere Bemerkung: Vergessen Sie nicht, wenn Sie Ihr openSUSE aktualisieren, besitzen Sie bereits den neuesten Kernel. Sie müssen dann Ndiswrapper erneut kompilieren.
Für den AR5005G (häufig verwendeter Laptop) werden Sie die neuesten Windows-Treiber benötigen. Wenn Sie Zugang zu der Windows-Installation haben, können Sie die Treiber von C:\Program Files\Atheros\Driver kopieren.
Sie können ebenso versuchen, den Treiber von der Windows-Treiber-CD extrahieren oder den 32bit Atheros-NDIS-Treiber von hier herunter zu laden. (Es gilt als die letzte Möglichkeit, wenn es keinen anderen Weg gibt, an die Treiber heranzukommen. Wenn Sie die 64bit-Version verwenden, brauchen Sie auch die Treiber für 64 bit.
Broadcom
openSUSE 11.2
Der Treiber für den Broadcom-WLAN-Adapter kann von der offiziellen Webseite http://www.broadcom.com/support/802.11/linux_sta_SUSE.php herunter geladen werden.
Laden Sie die Tar-Datei herunter und entpacken sie mit
Installieren Sie Kernel-Entwicklungsumgebung:
Wechseln Sie in das Verzeichnis als Root, make und installiere den Treiber:
- cd hybrid-portsrc-x86_32-v5.60.48.36
- make
- make install
- depmod
Prüfen Sie, ob der Treiber installiert ist:
- modprobe -l
Nun können Sie den Treiber laden und versuchen zu verbinden:
Wenn etwas schief geht, gehen Sie bitte zu Wlan-Probleme und prüfen, ob Sie einen Bug-Report an Bug-Report senden wollen.