iwd: improving on wpa_supplicant

Share your own howto's etc. Not for support questions!

iwd: improving on wpa_supplicant

Postby Head_on_a_Stick » 2019-12-27 12:41

The iNet Wireless Daemon (iwd) project aims to provide a comprehensive Wi-Fi connectivity solution for Linux based devices. The core goal of the project is to optimize resource utilization: storage, runtime memory and link-time costs. This is accomplished by not depending on any external libraries and utilizes features provided by the Linux Kernel to the maximum extent possible. The result is a self-contained environment that only depends on the Linux Kernel and the runtime C library.

https://iwd.wiki.kernel.org/

The iwd package can be used as a drop-in replacement for wpa_supplicant and works well with both NetworkManager and systemd-networkd. The versions in testing/unstable have a built-in DHCP client and so can be used as a standalone wirleless networking solution.

Usage

NetworkManager

Install the iwd package then create a file at /etc/NetworkManager/conf.d/wifi_backend.conf with this content:
Code: Select all
[device]
wifi.backend=iwd

Then reboot, iwd should be running instead of wpa_supplicant.

systemd-networkd

Disable wpa_supplicant and enable iwd instead:
Code: Select all
# systemctl enable iwd

To connect to the access point without NetworkManager run the interactive command line tool: https://wiki.archlinux.org/index.php/Iwd#iwctl

Standalone

To use iwd by itself (ie, without NetworkManager or systemd-networkd) edit /etc/iwd/main.conf and add this section:
Code: Select all
[General]
EnableNetworkConfiguration=true

Then edit the connection file at /var/lib/iwd/$ssid.psk (replace $ssid with the name of the access point) and add the IP address configuration, for example:
Code: Select all
[IPv4]
ip=192.168.1.51
gateway=192.168.1.254

Adjust the values according to the network in use (a 24-bit netmask is assumed), use ip r to list the current values.

I've backported the testing/unstable version to Debian buster, packages here: https://software.opensuse.org//download ... ackage=iwd

Once the newer package is installed delete the file at /usr/lib/modules-load.d/pkcs8.conf to avoid a unit failure for the module loading service on reboot.
Don't break DebianHow to report bugsDebian Reference Card

SharpBang GNU/Linux® — a pre-configured Openbox/Tint2 desktop running on Debian stable
User avatar
Head_on_a_Stick
 
Posts: 10939
Joined: 2014-06-01 17:46
Location: /dev/chair

Return to Docs, Howtos, Tips & Tricks

Who is online

Users browsing this forum: No registered users and 2 guests

fashionable