IWD (iNet Wireless Daemon) is a wireless daemon for Linux that aims to replace WPA supplicant.
iwd package and enable the
The command-line client iwctl(1) can be
used to add, remove, and configure network connections. Commands can be passed
as arguments; when run without arguments, it provides an interactive session. To
list available commands, run
iwctl help, or run
iwctl and enter
the interactive prompt.
By default, only the root user and those in the
wheel group have permission to
Configuration options and examples are described below. Consult the relevant manual pages and the upstream documentation for further information.
The main configuration file is located in
/etc/iwd/main.conf. If it does not
exist, you may create it. It is documented in
Network configuration, including examples, is documented in
iwd.network(5). IWD stores
information on known networks, and reads information on pre-provisioned networks
from network configuration files located in
/var/lib/iwd; IWD monitors the
directory for changes. Network configuration filenames consist of the encoding
of the SSID followed by
.8021x as determined by the
As an example, a basic configuration file for a WPA2/PSK secured network would
<ssid>.psk, and it would contain the plain text password:
By default, IWD will create and destroy the wireless interfaces (e.g.
that it manages. This can interfere with
udevd, which may attempt to rename
the interface using its rules for persistent network interface names. The
following messages may be printed to your screen as a symptom of this
[ 39.441723] udevd: Error changing net interface name wlan0 to wlp59s0: Device or resource busy [ 39.442472] udevd: could not rename interface '3' from 'wlan0' to 'wlp59s0': Device or resource busy
A simple fix is to prevent IWD from manipulating the network interfaces in this
way by adding
UseDefaultInterface=true to the
[General] section of
An alternative approach is to disable the use of persistent network interface
udevd. This may be accomplished either by adding
your kernel cmdline or by creating a symbolic link to
/etc/udev/rules.d/80-net-name-slot.rules to mask the renaming
rule. This alternative approach will affect the naming of all network devices.