iwd
iNet Wireless Daemon (iwd) project aims to provide a comprehensive Wi-Fi connectivity solution for Linux based devices. iwd provides a self-contained environment that only depends on the Linux Kernel and the runtime C library.
Prerequisites
- Ensure that you have working wireless drivers.
- iwd requires D-Bus service to be running.
Installation
Install iwd package and iwgtk package for the optional GUI utility iwgtk using the command:
# apk add iwd iwgtk
iwgtk

iwgtk is a wireless networking GUI utility for iwd with supported functionality similar to that of iwctl
. Features include viewing and connecting to available networks, managing known networks, provisioning new networks via WPS or Wi-Fi Easy Connect, and an
indicator (tray) icon displaying connection status and signal strength.
Network management mode
Next, choose one among the three modes listed below on how Network management will done with iwd before proceeding further.
Standalone mode
To have iwd do all network management on its own upon connecting to a wi-fi network, requires openresolv package, so install it first:
# apk add openresolv
Then edit the configuration file /etc/iwd/main.conf and set it as follows:
Contents of /etc/iwd/main.conf
To test openresolv package, issue the command:# resolvconf -u
to update the nameserver information in /etc/resolv.conf file.
iwd as a networkmanager backend
NetworkManager can be used for network management, with iwd configured as a wireless backend.
iwd with ifupdown-ng
iwd can delegate the responsibility dealing with IP address assignment (either static or DHCP) to ifupdown-ng. To do this edit the /etc/network/interfaces file. For example, if you are using DHCP on the wlan0 interface:
Contents of /etc/network/interfaces
Configuration
Service configuration
iwd
service can be managed using standard OpenRC commands. Once iwd service has been fully configured and tested, then add the iwd
service and disable the networking
boot service:
# rc-update add iwd boot # rc-update del networking boot
To proceed with the configuration of iwd, ensure that wpa_supplicant
service is stopped before starting iwd service:
# rc-service wpa_supplicant stop # rc-service iwd start
Connection management
iwctl
tool can be run both in interactive and non-interactive mode. The non-interactive commands can be issued from the shell by suffixing iwctl
like $ iwctl device list
or $ iwctl known-networks list
.
The example below shows the step-by-step procedure to configure iwd in an interactive mode. Begin by starting the iwctl
as follows:
$ iwctl
The prompt should display:
[iwd]#
To list all available commands:
[iwd]# help
To connect to a network
To list all Wi-Fi devices:
[iwd]# device list
If your wireless adapter is not listed, refer to Wifi troubleshooting page.
If the device or its corresponding adapter is turned off, turn it on:
[iwd]# device device set-property Powered on
[iwd]# adapter adapter set-property Powered on
Then, to initiate a scan for networks (note that this command will not output anything):
[iwd]# station device scan
You can then list all available networks:
[iwd]# station device get-networks
Finally, to connect to a network:
[iwd]# station device connect SSID
If a passphrase is required, you will be prompted to enter it. Alternatively, you can supply it as a command line argument:
$ iwctl –passphrase passphrase station device connect SSID
- iwd automatically stores network passphrases in the /var/lib/iwd directory and uses them to auto-connect in the future.
- If you run diskless Alpine, be sure to commit:
# lbu add /var/lib/iwd && lbu commit -d
- To connect to a network with spaces in the SSID, the network name should be double quoted when connecting.
- iwd only supports PSK pass-phrases from 8 to 63 ASCII-encoded characters.
Disconnect from a network
To disconnect from a network:
[iwd]# station device disconnect
Show device and connection information
To display the details of a WiFi device, like MAC address:
[iwd]# device device show
To display the connection state, including the connected network of a Wi-Fi device:
[iwd]# station device show
Manage known networks
To list networks you have connected to previously:
[iwd]# known-networks list
To forget a known network:
[iwd]# known-networks SSID forget
- signal strength level
- security features
- maximum rate
- channel utilization
- time since the last connect.
Troubleshooting
Resolve wireless driver issues first, if your wireless device is not detected, when the below command is issued:
$ iwctl device list Devices -------------------------------------------------------------------------------- Name Address Powered Adapter Mode -------------------------------------------------------------------------------- wlan0 50:91:e3:71:83:d2 on phy0 station
"The name net.connman.iwd was not provided by any .service files"
If iwctl
commands fail with the message The name net.connman.iwd was not provided by any .service files Failed to retrieve IWD dbus objects, quitting...
.
The above error means that the iwd
daemon is not started. Start the iwd daemon
"ip: ioctl 0x8913 failed: No such device"
The above error message may occur whenever the networking service gets loaded by openrc after iwd. Refer to Service configuration section.
Loss of connectivity due to changes in interface names
Whenever system wakes up from sleep/suspend, the wireless interface name may change from wlan0
to wlan1
, wlan2
and so on resulting in loss of connectivity. If you expereince this issue, if eudev is used as device manager refer to predictable network interface names section.