ubuntuusers.de

ubuntuusers.deWikiLinux Wireless

Linux Wireless

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Wiki/Icons/Oxygen/network-wireless.png

Das Treiberprojekt Linux Wireless {en} fasst aktuelle bzw. aktualisierte Treiber für verschiedene WLAN-Chipsätze zusammen. Diese Zusammenfassungen werden regelmäßig aktualisiert - somit sind die enthaltenen WLAN-Treiber u.U. neuer als die in der jeweils aktuellen Ubuntu-Version (oder einer anderen Linux-Distribution) enthaltenen Kernelmodule.

Eine Übersicht der enthaltenen Treiber, der unterstützten Chipsatzvarianten und der möglichen Betriebsmodi sind in dieser Liste {en} aufgeführt. Durch die Installation werden z.B. Fehler älterer Treiber behoben oder die Hardwareunterstützung verbessert. Insbesondere bei Treiberproblemen oder unzureichender Hardwareunterstützung bietet sich die Installation an.

Vorbereitung

Da die Treiber nicht speziell auf Ubuntu zugeschnitten sind, müssen einige Vorarbeiten erledigt werden. Um die Treiber kompilieren zu können, werden zuerst das Metapaket build-essential und die passenden "Kernel-Header" benötigt [1]:

  • build-essential

  • linux-headers-... (... passend zur eigenen Kernelversion [4])

Installation über Terminal [3]:

sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential 

Treiber herunterladen

Die aktuellen Treiber können als Archivdatei von der Backports-Seite {dl} (stable) heruntergeladen werden.

Das Archiv befindet sich nun üblicherweise unter ~/Downloads. In das Verzeichnis wechseln und anschließend mit einem Archivmanager [5] oder über ein Terminal [3] entpacken:

cd ~/Downloads
tar jxvf backports-*.tar.bz2
cd backports-* 

Auswahl eines Treibers

Vor dem Erstellen und Installieren des Treibermoduls muss das entpackte Backports-Paket für den gewünschten Treiber vorkonfiguriert werden. Im Paket befinden sich entsprechende Skripte, die man mit dem Befehl make in Verbindung mit dem gewünschten Modul aufruft.

Genereller Aufruf:

make defconfig-<driver-name> 

Ohne Option meldet make einen Fehler und zeigt die mögliche Auswahl an. Ausgabe in diesem Fall:

| Your backport package isn't configured, please configure it
| using one of the following options:
| To configure manually:
|     make oldconfig
|     make menuconfig
|
| To get defaults for certain drivers:
|     make defconfig-alx
|     make defconfig-ar5523
|     make defconfig-ath10k
|     make defconfig-ath5k
|     make defconfig-ath6kl
|     make defconfig-ath9k
|     make defconfig-b43
|     make defconfig-b43legacy
|     make defconfig-brcmfmac
|     make defconfig-brcmsmac
|     make defconfig-carl9170
|     make defconfig-drm
|     make defconfig-ieee802154
|     make defconfig-iwlwifi
|     make defconfig-media
|     make defconfig-nfc
|     make defconfig-regulator
|     make defconfig-rtlwifi
|     make defconfig-wifi
|     make defconfig-wil6210

Beispiele

make defconfig-b43       # benötigte Treiber für Broadcom WLAN-Karten werden selektiert (Einzelauswahl)
make defconfig-rtlwifi   # benötigte Treiber für Realtek WLAN-Karten werden selektiert (Gruppenauswahl) 

Installation

Nun kann der konkrete Treiber gebaut und installiert werden [1].

make
sudo make install 

Hat man mehrere Versionen des Treiberarchivs heruntergeladen und entpackt, muss natürlich der komplette Verzeichnisname mit dem entsprechenden Datum angegeben werden!

Eventuell auftretende Warnungen (warning) beim Kompilieren können ignoriert werden, nur Fehler (error) dürfen nicht auftreten! Die Installation dauert einen Moment, da verschiedene aktualisierte WLAN-Treiber und Kernelmodule für das ieee80211-Subsystem {en} enthalten sind. Der Rechner sollte abschließend neu gestartet werden, um die älteren Treibermodule vollständig zu entladen und die neuen Treiber zu aktivieren.

Funktionstest

Anschließend kann das Kernelmodul getestet werden, in dem man es über den Befehl modprobe lädt, zum Beispiel:

modprobe rtl8192cu   # nur ein Beispiel für ein Kernelmodul! 

Mit dem Befehl lsmod kann man sich dann die aktiven Kernelmodule auflisten lassen, in der das neue Modul erscheinen sollte.

Anschließend kann mit den Wireless-Tools [7] geprüft werden, ob der Treiber funktioniert und eine Schnittstelle initialisiert wurde.

Beim Systemstart laden

Um das neue Kernelmodul bei jedem Systemstart automatisiert zu starten (Normalfall), muss der Treiber, z. B. rtl8192cu, einfach als weitere Zeile in der Systemdatei /etc/modules mir Rootrechten hinzugefügt werden[8].

Hinweis:

  • Nach einem Kernelupdate muss das Treiberpaket für den aktuellen Kernel erneut kompiliert werden!

  • Einige Treiber müssen nach der Installation über die Verwaltung eingeschränkter Treiber wieder aktiviert werden! Dazu muss im Auswahlfenster für den entsprechenden Treiber das Häkchen bei "Aktiviert" gesetzt werden.

  • Wer auch VirtualBox installiert hat, muß unbedingt dessen Module neu kompilieren und installieren (/etc/init.d/vboxdrv setup).

Problembehebung

Falsche Kanaleinstellung

Hinweis:

Die entsprechende Ubuntu-Version ist bei der Verwendung dieser Einstellungen zu beachten. Siehe dazu auch diesen Forenbeitrag.

Ab Ubuntu 9.04

Ab Ubuntu 9.04 erfolgt die Ländereinstellung über das Programm iw, welches zuerst installiert werden muss [1]:

  • iw (bis Ubuntu 11.10 in universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install iw 

sudo aptitude install iw 

Anschließend kann die Ländereinstellung gesetzt werden:

sudo iw reg set DE 

Weitere Informationen: Dokumentation zu iw {en} und Frequenzen_und_Kanäle.

Ubuntu 8.10

In Ubuntu 8.10 bzw. ab Kernel 2.6.27 sind die Funkkanäle 12 und 13 durch eine für Europa falsche Voreinstellung deaktiviert. Dieses Problem trifft für alle Treiber zu, die mit dem 802.11-Subsystem des Kernels arbeiten. Prüfen kann man das mit folgendem Terminalbefehl [3]:

iwlist chan 

Fehlen Kanal 12 und 13 in der Ausgabe für das 2,4GHz Frequenzband, schafft ein entsprechender Startparameter für das 802.11-Subsystem Abhilfe. Mit einem Editor [8] muss die Datei /etc/modprobe.d/cfg80211 erstellt und folgender Parameter eingetragen werden:

options cfg80211 ieee80211_regdom="EU"

Das läßt sich natürlich auch mit einem Terminal-Befehl [3] sehr rasch erledigen:

echo 'options cfg80211 ieee80211_regdom="EU"' | sudo tee /etc/modprobe.d/cfg80211.conf 

Sollte das nicht funktionieren, kann der Parameter auch ohne Anführungszeichen getestet werden:

options cfg80211 ieee80211_regdom=EU

Drei verschiedene Einstellungen sind möglich:

  • US für USA (Kanäle 1-11)

  • EU für Europa (Kanäle 1-13)

  • JP für Japan (Kanäle 1-14)

Nach einem Neustart des Systems stehen nun - unabhängig vom verwendeten Treiber - alle jeweils möglichen Funkkanäle zur Verfügung.

Realtek 8188CUS (8192) unter Ubuntu 13.04

Unter Ubuntu 13.04 gibt es mit dem gerade in USB-WLAN-Stick weit verbreiteten Chipsatz 8188CUS aufgrund eines Fehlers im Linuxkernel Probleme beim Kompilieren des Treibers. In diesem Fall gibt es ein inoffizielles Ubuntu-Paket zum herunterladen {dl}, der dann funktioniert. Eine Auflistung von betroffenen WLAN-Adaptern kann man sich auf Wikidevi erstellen. Ab Kernel-Version 3.8.5 soll das Problem nicht mehr bestehen.

Diese Revision wurde am 20. Juni 2014 15:01 von kmu-net.ch erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Netzwerk, Internet, WLAN