[[Vorlage(Archiviert, "Wird nicht mehr weiterentwickelt")]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Paketen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(3)]] Bei NdisWrapper handelt es sich um ein Werkzeug, welches die Windowstreiber für ältere WLAN-Karten und WLAN USB-Sticks nutzt, um diese unter Linux zum Laufen zu bringen. Ndiswrapper benötigt sowohl eine Treiberdatei mit der Endung '''.inf''' als auch alle dazugehörigen Dateien (z.B. mit der Endung '''.sys''') in demselben Verzeichnis. Es funktionieren nur ältere Treiberversionen für Windows 95/98/2000 und Windows XP, die für die verwendete Systemarchitektur in der passenden 32-bit- oder 64-bit-Variante vorliegen müssen. = Installation = Zunächst müssen folgende Pakete installiert [1] werden: {{{#!vorlage Paketinstallation dkms ndiswrapper-utils-1.9 ndiswrapper-common ndisgtk, universe ndiswrapper-dkms, universe gksu, universe bis [:16.04:] }}} Ist am betroffenen PC keine Internetverbindung zum Herunterladen der ndiswrapper-Pakete vorhanden, können die Pakete von der Ubuntu-Installations-CD verwendet werden. Die '''.deb'''-Installationspakete[1] befinden sich im Verzeichnis '''/pool/main/n''' und müssen nur nacheinander doppelt angeklickt werden. Das Paket '''ndiswrapper-dkms''' ist leider nicht auf CD enthalten, kann aber so wie alle anderen Pakete auch direkt vom [packages:ndiswrapper-dkms:Server] {dl} heruntergeladen werden. Auf zusätzlich benötigte abhängige Pakete mit dem roten Punkt ist dabei zu achten. {{{#!vorlage Warnung Das Paket '''ndiswrapper-dkms''' ist nur für den jeweiligen zur Ubuntu-Version zugehörigen Kernel aufbereitet. Bei Ubuntu 16.04-[:LTS:] also für den 4.4-Standardkernel. Bei höheren Kernelversionen wird das Modul dann nicht mehr über [:DKMS:] für den verwendeten Kernel, also z.B. 4.8.x oder höher, gebaut und installiert. Entweder bleibt man beim jeweiligen Standardkernel, oder ist gezwungen die Installationspakete aus den Quellen der entsprechenden Ubuntu-Version manuell zu installieren, sollte man aus anderen Gründen eine aktuellere Kernelversion benötigen. }}} = Installation des Windows-Treibers = {{{#!vorlage Warnung Für 32-bit-Systeme muss natürlich ein 32-bit-Treiber, für 64-bit-Systeme ein entsprechender 64-bit-Windows-Treiber verwendet werden }}} Wenn das Treiberpaket als '''.exe'''-Datei vorliegen, muss diese zunächst über ein Windowssystem, mit Hilfe eines der Programme [1] ... {{{#!vorlage Paketinstallation cabextract, universe unshield, universe }}} oder mit Hilfe von [:Wine:] extrahiert werden (Pseudoinstallation). Einige Pakete können ggf. auch direkt mit einem [:Archivmanager:] entpackt werden. Wurde das Windows-Archiv mit wine entpackt, sind die Dateien in dem verborgenen Ordner '''$HOME/.wine/drive_c/Programme/NAME_DES_TREIBERS''' zu finden. Nach der Installation der Pakete klickt man unter ''"System -> Systemverwaltung -> Windows WLAN Treiber"'' auf ''"Neuen Treiber installieren"''. Nach der Auswahl der entsprechenden '''.inf'''-Datei des Windowstreibers sollte der Treiber in der Liste auftauchen und darunter auch ''"Hardware verfügbar: Ja"'' stehen. Alternativ startet man das Programm im Terminal mit{{{#!vorlage Befehl gksu ndisgtk }}} Alternativ kann man die Installation im Terminal [2] durchführen, wie weiter unten beschrieben. == Treiber wird nicht gefunden == Sollte die '''.inf'''-Datei nicht gefunden werden, hilft es, den Treiber auf ein externes Medium zu entpacken, z.B. einen USB-Stick. Dann erneut ''"System -> Systemverwaltung -> Windows WLAN Treiber"'' aufrufen und bei Laufwerk ''"USB-Stick"'' wählen, hier die entsprechende '''.inf'''-Datei wählen. {{{#!vorlage Hinweis `ndisgtk` findet den Windows-Treiber nicht, wenn sich im Pfad Ordnernamen mit Leerzeichen befinden. }}} = Installation des Treibers (im Terminal) = Manchmal funktioniert der Weg über `ndisgtk` nicht. Man kann aber ohne Weiteres auf das Terminal ausweichen:{{{#!vorlage Befehl sudo ndiswrapper -i /PFAD/WINDOWSTREIBER/DATEINAME.inf }}} Man sollte jetzt einen Blick in '''/etc/ndiswrapper/''' werfen. Dort sollte nun ein neuer Ordner erscheinen, der den Namen der bei der Installation verwendeten '''*.inf''' Datei trägt und die Treiber- und Firmwaredateien sowie die durch Ndiswrapper angelegten Konfigurationsdateien enthält. {{{#!vorlage Befehl ls -rl /etc/ndiswrapper/*/* }}} Mit folgendem Befehl lässt man sich den Status des Treibers anzeigen.{{{#!vorlage Befehl ndiswrapper -l }}} Die Ausgabe sollte etwa so aussehen: {{{ TREIBERNAME driver present, hardware present }}} Damit das Modul beim Systemstart oder beim Hinzufügen der Hardware automatisch geladen wird, muss noch eine entsprechende Aliastabelle für die verwendeten Geräte-ID anlegt werden.{{{#!vorlage Befehl sudo ndiswrapper -ma }}} Jetzt kann man das Modul `ndiswrapper` laden [5]. {{{#!vorlage Befehl sudo modprobe -v ndiswrapper }}} Die Karte sollte jetzt funktionieren und kann benutzt werden. = Fehlersuche = Zur Kontrolle und Fehlersuche bei Problemen. Versuch, den Ndiswrapper manuell zu laden:{{{#!vorlage Befehl sudo modprobe -v ndiswrapper }}} Dabei werden ggf. Fehler angezeigt. Erfolgt keine Rückmeldung, wurde das Modul in den Kernel eingebunden. Möglicherweise wird das Modul aber nicht gefunden. Die Ausgabe sieht dann etwa so aus: {{{ FATAL Module Ndiswrapper not found. }}} Es wurden nicht alle erforderlichen Programmpakete installiert, wahrscheinlich fehlen die Pakete '''dkms''' und '''ndiswrapper-dkms'''. Das passiert vor allem nach einem Systemupgrade von einer früheren Ubuntuversion. Ndiswrapper und alle benötigten Pakete dann manuell und nach Möglichkeit über Kabelverbindung nachinstallieren wie im ersten Abschnitt beschrieben. Den Versuch anschließend wiederholen. Anschließend kann überprüft werden, ob eine Schnittstelle initialisiert wurde:{{{#!vorlage Befehl iwconfig }}} Wenn nicht, das Kernel-Log auf Fehlereinträge hin auslesen:{{{#!vorlage Befehl dmesg | egrep 'ndis|wlan' }}} == Typische Fehler == === Falsche Treiberversion === Es wurde unter einem 64-bit-Systemkern ein 32-bit-Windows-Treiber installiert, oder umgekehrt. Den Treiber deinstallieren und einen zur Systemarchitektur passenden Treiber verwenden. {{{ ndiswrapper version 1.57 loaded (smp=yes, preempt=no) usbcore: registered new interface driver ndiswrapper ndiswrapper (check_nt_hdr:150): kernel is 64-bit, but Windows driver is not 64-bit;bad magic: 010B }}} (hier wurde ein 32-bit-Treiber unter einem 64-bit-Systemkern verwendet. === Ungeeigneter Treiber === Diverse Meldungen „unknown symbol“. Die verwendete Treiberversion ist nicht für Ndiswrapper geeignet. Ndiswrapper kann einige Eigenschaften des Windows-Treibers nicht implementieren. Die Geräteinitialisierung scheitert oder es funktioniert einfach nicht. Dieses Problem tritt meistens bei der Verwendung neuerer Windows7- oder Vista-Treibern auf. Beispiel: {{{ ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisAllocateNetBufferAndNetBufferList' ndiswrapper (import:233): unknown symbol: NDIS.SYS:'NdisMIndicateReceiveNetBufferLists' usw. ... }}} Den Treiber deinstallieren und nach Möglichkeit eine ältere Version für Windows-XP/2000/98 verwenden. === Ndiswrapper wird nicht geladen === Ndiswrapper startet u.U. nicht automatisch beim Systemstart. Seit Ubuntu 11.10 wird die benötigte Konfigurationsdatei nicht mehr im entsprechenden Ordner angelegt, kann aber einfach manuell kopiert werden. Dann wird die WLAN-Karte oder der WLAN-Stick auch bei Systemstart direkt erkannt. Alias-Tabelle prüfen:{{{#!vorlage Befehl cat /etc/modprobe.d/ndiswrapper }}} Hier werden die vom Ndiswrapper benötigten Geräte-IDs abgelegt welche in der '''*.inf'''-Datei der installierten Windows-Treiber enthalten sind. Konfigurationsdatei kopieren, sollte diese fehlen:{{{#!vorlage Befehl sudo cp /etc/modules.conf /etc/modprobe.d/ndiswrapper.conf }}} Ndiswrapper notfalls in die Liste der bei Systemstart zu ladenden Module eintragen:{{{#!vorlage Befehl echo ndiswrapper | sudo tee -a /etc/modules }}} = Deinstallation eines Treibers = Installiert man über Ndiswrapper einen neuen Treiber, ist es eventuell vonnöten, den alten zu deinstallieren. Zuerst fragt man den Namen des, bzw. der installierten Treiber ab:{{{#!vorlage Befehl sudo ndiswrapper -l }}} Den Namen des Treiber verwendet man anschließend zu Deinstallation:{{{#!vorlage Befehl sudo ndiswrapper -r NAME_DES_TREIBERS }}} Fehlerhafte Treiber, unvollständige Installationen oder leere Installationsverzeichnisse unter '''/etc/ndiswrapper''' und '''/etc/modprobe.d/ndiswrapper''' müssen ggf. noch manuell gelöscht werden. = Konfiguration der Karte = Wenn der Treiber erfolgreich geladen wurde, kann an dieser Stelle auf der [:WLAN:Übersichtsseite] mit der [:WLAN#Konfiguration:Konfiguration] fortgefahren werden. = Ndiswrapper aus den Quellen kompilieren = == Vorbereitung == Damit das Unterfangen gelingt, benötigt man das folgende Paket [1]: {{{#!vorlage Paketinstallation build-essential }}} Außerdem wird das Paket '''linux-headers''' passend zur eigenen Kernel-Version und -Architektur (`-generic`, `-386`, `-generic-pae` usw.) benötigt. Dieses Paket lässt sich über den folgenden Befehl installieren: {{{#!vorlage Befehl sudo apt-get install linux-headers-$(uname -r) }}} Im Terminal: {{{#!vorlage Befehl sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential }}} Vorhandene Ndiswrapper-Version deinstallieren, dabei auch '''ndiswrapper-dkms''' deinstallieren, falls dies verwendet wurde: {{{#!vorlage Befehl sudo apt-get remove --purge ndiswrapper-common ndiswrapper-utils-1.9 ndiswrapper-dkms sudo rm /lib/modules/$(uname -r)/kernel/ubuntu/ndiswrapper/ndiswrapper.ko }}} = Links = * [sourceforge:ndiswrapper:Ndiswrapper Homepage] {en} - mit Wiki und FAQ ## * [http://ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_openwiki/Itemid,33/id,list/ Ndiswrapper Kartenliste] {en} - Karten, die bereits mit Ndiswrapper laufen * [ubuntu_doc:community/WifiDocs/Driver/Ndiswrapper:Ndiswrapper im Ubuntu.com-Hilfe-Wiki] {en} * [iawm::][https://web.archive.org/web/20061113195848/http://blog.4mms.org/linux/netgear-wg511-unter-ubuntu-mit-wpa WLAN mit WPA] {de} - Mini HowTo für die Einrichtung von Ndiswrapper und wpasupplicant für WLAN mit WPA unter Ubuntu # tag: Hardware, Netzwerk, WLAN