Iwd: Difference between revisions
Prabuanand (talk | contribs) (rephrased sentence) |
Prabuanand (talk | contribs) (updated an alternate solution) |
||
Line 125: | Line 125: | ||
To start the iwd service immediately issue the command: {{cmd|# rc-service iwd start}} | To start the iwd service immediately issue the command: {{cmd|# rc-service iwd start}} | ||
Once iwd service has been fully configured and [[Configure_Networking#Connectivity_testing|tested]], | Once iwd service has been fully configured and [[Configure_Networking#Connectivity_testing|tested]], add the {{ic|iwd}} service and disable the {{ic|networking}} boot service:{{cmd|<nowiki># rc-update add iwd boot | ||
# rc-update del networking boot</nowiki>}} | |||
== iwgtk == | == iwgtk == | ||
Line 146: | Line 143: | ||
=== "ip: ioctl 0x8913 failed: No such device" === | === "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|Service configuration]] section. | |||
== See also == | == See also == |
Revision as of 18:10, 30 March 2025
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. iwd is supported since v3.10 of Alpine Linux.
Prerequisites
- Ensure that you have working wireless drivers.
- iwd requires D-Bus service to be running.
Installation
Install iwd package using the command:
# apk add iwd
Next decide if you want to use iwd in Standalone mode, or with NetworkManager, or with ifupdown-ng. Choose one among the three options and then proceed to service configuration.
Standalone mode
To have iwd do most networking configuration 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.
Use iwd as a networkmanager backend
NetworkManager can be configured to manage Network configuration for iwd. Since wpa_supplicant is the default backend in NetworkManager, it must be replaced by iwd.
Use iwd with ifupdown-ng
ifupdown-ng can be used to manage Network configuration for iwd. Refer to ifupdown-ng configuration section.
Configuration
Start iwd service first to proceed with the configuration:
# rc-service iwd start
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
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.
ifupdown-ng configuration
If ifupdown-ng is used for network configuration management with iwd, edit the /etc/network/interfaces file based on instructions in Network configuration page.
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 when using ifupdown-ng. To avoid this issue, create and add the following two files. The /etc/iwd/main.conf file should have:
Contents of /etc/iwd/main.conf
If mac address of wlan0
interface is "50:91:e3:71:83:d2", then file /etc/udev/rules.d/70-persistent-net-wlan0.rules should be as follows:
Contents of /etc/udev/rules.d/70-persistent-net-wlan0.rules
The commandcat /sys/class/net/wlan0/address
shows the mac address of your wireless interface wlan0
.
For the above changes to take immediate effect, reload Udev rules:
# udevadm control --reload-rules # udevadm trigger
A reboot is usually necessary for the changes to fully take effect.
Service configuration
To start the iwd service immediately issue the command:
# rc-service iwd start
Once iwd service has been fully configured and tested, add the iwd
service and disable the networking
boot service:
# rc-update add iwd boot # rc-update del networking boot
iwgtk

iwgtk is a wireless networking GUI 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.
To install the iwgtk package:
# apk add iwgtk
Troubleshooting
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.