iwd
iwd (iNet Wireless Daemon) is a wireless daemon for Linux. It is written by Intel and aims to replace wpa_supplicant
. 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.
Potential benefits of iwd include:
- simplification of network management
- faster network discovery
- fast and reliable roaming
- using less system resources
- using features offered by the Linux kernel
- support for enterprise security methods like EAP
- support for kernel asymmetric key rings and Trusted Platform Modules (TPM)
- support for multiple clients
Installation
Install iwd
:
# apk add iwd
Usage (iwctl)
The iwd package provides the client program iwctl
, the daemon iwd
and the Wi-Fi monitoring tool iwmon
.
Begin by starting the client:
$ iwctl
To list all available commands:
[iwd]# help
Connect to a network
First, if you do not know your wireless device name, list all Wi-Fi devices:
[iwd]# device list
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.
IPV6
iwd supports IPv6, but it is disabled by default. To enable it, add the following to the configuration file:
Contents of /etc/iwd/main.conf
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.
Dedicated GUI (iwgtk)
iwgtk is a wireless networking GUI for Linux 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.
# apk add iwgtk
Usage as a Backend
iwd can be used as a replacement backend for NetworkManager. See the relevant NetworkManager section for more information.