iw
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
iw ist ein Kommandozeilenwerkzeug zur Konfiguration von WLAN-Geräten. Es unterstützt bis auf wenige Ausnahmen alle standardmäßig im Kernel enthaltenen Gerätetreiber, die mit dem nl80211-Subsystem arbeiten.
Manuell installierte Gerätetreiber von Ralink, Realtek oder Broadcom sowie einige im sog. Staging-Zweig des Kernels enthaltene Realtek-Treiber werden hingegen nicht oder nur eingeschränkt unterstützt. Dann kann man iwconfig nutzen.
Praktische Anwendungsbeispiele sind beispielsweise die Konfiguration der Ländereinstellung, die Begrenzung der Sendeleistung oder die Suche nach verfügbaren WLAN-Netzwerken. Zur allgemeinen Netzwerkkonfiguration ist der Befehl ip besser geeignet, der nicht auf WLAN beschränkt ist.
Installation¶
Das Programm ist bei Ubuntu und den offiziellen Ubuntu-Varianten bereits vorinstalliert. Der Paketname lautet:
iw
Bedienung¶
Das Programm kennt mehrere Parameter und Optionen, die der nachfolgenden Tabelle zu entnehmen sind.
Generelle Syntax und Optionen | |
Befehl | Zweck |
iw list | Geräteeigenschaften abfragen |
iw dev | Eigenschaften und Name der Schnittstelle, z.B. wlan0 |
iw phy | Eigenschaften und Name der physikalische Schnittstelle, z.B. phy0 |
iw reg | Aufruf des sog. „Regulatory Agents“ zur Konfiguration der Regions- und Ländereinstellungen |
iw --version | zeigt nur Versionsinformationen zum Programm |
iw --debug | aktiviert Debugging zur Fehleranalyse (Funktion anscheinend fehlerhaft ❗) |
iw help | gibt eine Hilfe zum Programm und zur Syntax aus |
Anwendungsbeispiele¶
Alle Befehle werden in einem Terminal [1] ausgeführt. Manche benötigen Root-Rechte [2].
Hilfe zum Programm¶
Programmsyntax und mögliche Optionen abfragen:
iw help
Hardwareeigenschaften¶
Geräteeigenschaften auslesen:
iw list iw phy
Da die Ausgabe sehr lang sein kann, kann man diese mit grep filtern bzw. verkürzen:
iw list | grep phy
Die nachfolgend verwendeten Bezeichnungen für die WLAN-Schnittstelle und dessen physikalische Bezeichnung sind durch die tatsächliche verwendete Bezeichnung, wie z.B. wlan0
bzw. phy0
, zu ersetzen.
Verbindungsstatus¶
Informationen zur Verbindung, Übertragungsrate und Signalstärke abrufen:
iw dev wlan0 link
Mehr Details liefert folgender Befehl:
iw dev wlan0 station dump
Scan der WLAN-Umgebung¶
Ein manueller Scan zeigt alle WLAN-Netze im Empfangsbereich und deren Eigenschaften wie den verwendeten Funkkanal, die Verschlüsselungsmethode und die Empfangsqualität, und hilft so bei der Wahl der passenden Einstellungen für das eigene WLAN. Eine grafische Alternative dazu ist z.B. LinSSID.
sudo iw dev wlan0 scan
Sendeleistung des WLAN-Adapters¶
Die Sendeleistung in dBm kann auf zwei Arten konfiguriert werden. Die gesetzlichen Vorgaben des jeweiligen Landes zur maximal erlaubten Strahlungsleistung sind dabei zu beachten. Siehe dazu auch im Hauptartikel WLAN.
Unter Verwendung der Schnittstellenbezeichnung:
sudo iw dev wlan0 set txpower fixed 20
Unter Verwendung der physikalischen Schnittstellenbezeichnung:
sudo iw phy phy0 set txpower fixed 20
Optionen bei der Sendeleistung | |
Option | Auswirkung |
auto | automatische Auswahl bis zum möglichen Maximalwert (ohne Angabe deines Wertes) |
fixed | fest eingestellter Wert |
limit | Begrenzung auf einen Maximalwert, tatsächliche Leistung darf aber niedriger sein |
Power Management¶
Einstellungen auslesen:
iw dev wlan0 get power_save
Einstellungen des Power Management ändern:
sudo iw dev wlan0 set power_save on sudo iw dev wlan0 set power_save off
Ist das Power Management aktiviert, führt dies zu einer reduzierten Sende- und Empfangsleistung der WLAN-Karte.
Regionseinstellung¶
Über die Regionseinstellung werden die zulässige Sendeleistung und die in der Region erlaubten Frequenzen bzw. Funkkanäle der WLAN-Karte vorgegeben.
Ländereinstellung abfragen:
iw reg get
Ländereinstellung manuell ändern:
sudo iw reg set DE
Verwendet werden hierbei Ländercodes gemäß der Kodierliste ISO-Norm 3166. Standard ist in der Regel die Einstellung 00 (World), also eine globale Einstellung. Nicht bei allen WLAN-Adaptern lässt sich die Voreinstellung ändern, da die Ländereinstellung fest im Speicher des Gerätes voreingestellt sein kann.
Die Grundeinstellung befindet sich in der Datei /etc/default/crda. Allerdings muss der Wert erst noch festgelegt werden. Dazu bearbeitet man die Textdatei mit einem Editor [3] oder verwendet direkt sed und trägt den gewünschten Ländercode ein.
REGDOMAIN=DE
Eintrag mittels sed
ergänzen [2]:
sudo sed -i "s/REGDOMAIN=/REGDOMAIN=DE/g" /etc/default/crda
Um die Einstellung automatisch anzupassen oder die in der /etc/default/crda festgelegte Grundeinstellung zu überschreiben wenn ein WLAN-Adapter erkannt und initialisiert wird, kann alternativ eine udev-Regel /etc/udev/rules.d/regulatory.rules angelegt werden [3]. Folgender Inhalt ist einzufügen.
# WLAN-Regionseinstellungen festlegen KERNEL=="regulatory*", ACTION=="change", SUBSYSTEM=="platform", RUN+="/sbin/iw reg set DE"
Erweiterte Einstellungen können durch Erstellung einer eigenen Datenbank erreicht werden. Eine Anleitung dazu findet sich im Artikel iw/Reg-Database.
Ereignisse und Diagnose¶
Laufende Ereignisse abfragen (debugging):
iwevent iw event iw event -f # erweiterte Ausgabe mit Fehlermeldungen zum Verbindungsstatus iw event -t # erweiterte Ausgabe mit Fehlermeldungen und Zeitangaben (timing) iw event -r # erweiterte Ausgabe mit Fehlermeldungen und relativen Zeitangaben
Der laufende Vorgang kann mit Strg + C abgebrochen werden.
Problembehebung¶
Arbeitet der verwendete Treiber nicht mit dem nl80211-Subsystem, so erscheint bei einem Kommando mit iw folgende Fehlermeldung:
nl80211 not found.
In diesem Fall kann nur iwconfig verwendet werden.
Links¶
iw Manpage 🇬🇧
WLAN Übersichtsartikel