Netzwerk - IWD

IWD statt wpa_supplicant

Intels iNet wireless daemon (iwd) schickt den WPA-Supplicant in den wohlverdienten Ruhestand. Nur ein Zehntel so groß und viel schneller, ist iwd der Nachfolger.

Weiterführende Informationen bietet das Arch Linux wiki bzw. das debian wiki.

Wer möchte, kann iwd als Ersatz für wpa_supplicant nutzen, entweder eigenständig oder in Verbindung mit dem NetworkManager.

IWD installieren

Anmerkung:
Unter debian ist es leider nicht möglich den NetworkManager (standalone) ohne wpa_supplicant zu installieren.

Möchte man dieses so gibt es zwei Möglichkeiten, wobei die zweite Möglichkeit die sinnvollere und einfachere ist.

  1. NetworkManager aus den Sourcen installieren
  2. Den wpa_supplicant.service nicht starten bzw. maskieren, da dieser ja mit installiert wird, so man apt nutzt.

Möchte man iwd nutzen ohne NetworkManager zu installieren, so muss man sich darüber keine Gedanken machen

Weiterhin machen wir darauf Aufmerksam, dass siduction systemd nutzt. Wir werden also nicht darauf eingehen, wie iwd ohne systemd konfiguriert wird!

Vorgehensweise bei installiertem NetworkManager

Jetzt einfach die folgenden Befehle als root im Terminal ausführen, um iwd zu nutzen:

~# apt update
~# apt install iwd
~# systemctl stop wpa_supplicant.service
~# systemctl mask wpa_supplicant.service
~# systemctl stop NetworkManager.service
~# touch /etc/NetworkManager/conf.d/nm.conf
~# echo -e '[device]\nWiFi.backend=iwd' > /etc/NetworkManager/conf.d/nm.conf
~# touch /etc/iwd/main.conf
~# echo -e '[General]\nEnableNetworkConfiguration=true \n\n[Network]\nNameResolvingService=systemd' > /etc/iwd/main.conf
~# systemctl enable -now iwd.service
~# systemctl start NetworkManager.service

Schauen ob es geklappt hat

~$ cat /etc/NetworkManager/conf.d/nm.conf
[device]
WiFi.backend=iwd
~$ cat /etc/iwd/main.conf
[General]
EnableNetworkConfiguration=true

[Network]
NameResolvingService=systemd

Jetzt ist man in der Lage im Terminal mit dem Befehl iwctl eine interaktive Shell zu starten. Die Eingabe von “help” gibt alle Optionen aus um WiFi Hardware anzuzeigen, zu konfigurieren und sich mit einem Netzwerk zu verbinden. Auch kann man nmtui oder nmcli im Terminal bzw. den NetworkManager in der graphischen Oberfläche benutzen.

Hinweis:
Es ist möglich, dass nicht freie Firmware von einem USB-Stick oder via LAN installiert werden muss!

WiFi Verbindung mit IWD

Der schnellste und einfachste Weg iwd zu nutzen ist eine Konsole zu öffnen und diesen Befehl einzugeben (Vorrausgesetzt man nutzt den NetworkManager.service):

~$ nmtui

Dies sollte selbsterklärend sein!

WiFi Verbindung mit nmcli

Eine WiFi Verbindung mit nmcli aufbauen

Ich beschreibe hier nur kurz den schnellsten Weg ein Netzwerk mit Hilfe des NetworkManagers in der Kommandozeile einzurichten.

Um eine Verbindung aufzubauen, vorausgesetzt man hat alle Informationen, reicht jener Einzeiler. Alle anderen Informationen zu nmcli finden sie auf folgender Seite, Network Manager im Terminal

~$ nmcli dev WiFi con "ssid" password password name "name"

(ssid bezeichnet den Namen des Netzwerkes)

Zum Beispiel:

nmcli dev WiFi con "HomeOffice" password W1rkl1chS3hrG3h31m name "HomeOffice"

WiFi Verbindung mit iwctl

Eine WiFi Verbindung mit iwctl einrichten, ohne den NetworkManager

Als erstes sollte die Hilfe zu iwctl aufgerufen werden, um zu sehen was alles möglich ist.

Dafür geben wir im Terminal den Befehl iwctl ein, dann am Eingabe-Prompt help.

iwctl help

Um heraus zu finden welche WiFi Schnittstelle wir nutzen geben wir folgenden Befehl ein.

[iwd]# device list
                     Devices                                *
-------------------------------------------------------------
  Name    Address             Powered   Adapter   Mode
-------------------------------------------------------------
  wlan0   00:01:02:03:04:05   on        phy0      station

In diesem Falle ist es wlan0 und es läuft (Powered on) im station mode.

Nun scannen wir nach einem aktiven Netzwerk

[iwd]# station wlan0 scan
[iwd]# station wlan0 get-networks

Jetzt können wir uns zu unserem Netzwerk verbinden.

[iwd]# station wlan0 connect SSID

(SSID bezeichnet den Namen des Netzwerkes)

Es wird noch das Passwort abgefragt und wir sollten mit unserem Netzwerk verbunden sein, dies können wir mit “station list” oder “station wlan0 get-networks” Nachprüfen.

[iwd]# station list
               Devices in Station Mode
---------------------------------------------
  Name         State          Scanning
---------------------------------------------
  wlan0        connected

Das ganze kann mit folgendem Befehl abgekürzt werden, so man alle nötigen Informationen hat!

iwctl --passphrase passphrase station device connect SSID

Zum Beispiel:

~$ iwctl --passphrase W1rkl1chS3hrG3h31m station wlan0 connect HomeOffice

Grafische Konfigurationsprogramme

Zurück zum wpa_supplicant

(Vorausgstezt NetworkManager und wpa_supplicant sind installiert)

~# systemctl stop iwd.service
~# systemctl mask iwd.service
~# systemctl stop NetworkManager.service
~# mv /etc/NetworkManager/conf.d/nm.conf /etc/NetworkManager/conf.d/nm.conf~
~# systemctl unmask wpa_supplicant.service
~# systemctl enable --now wpa_supplicant.service
~# systemctl start NetworkManager.service

Jetzt wird wpa_supplicant für die Verbindung mit der WiFi-Hardware benutzt.

Zuletzt bearbeitet: 2021-07-23