Size: 4105
Comment: Add snippet to /etc/NetworkManager/conf.d/iwd.conf instead of /etc/NetworkManager/NetworkManager.conf
|
← Revision 22 as of 2022-08-08 08:13:29 ⇥
Size: 4106
Comment: formatting
|
Deletions are marked like this. | Additions are marked like this. |
Line 27: | Line 27: |
* configure NetworkManager to enable/use the IWD backend (instead of the wpasupplicant backend), see code snippet below. Create /etc/NetworkManager/conf.d/iwd.conf with the following contents: |
* Configure NetworkManager to enable/use the IWD backend (instead of the wpasupplicant backend), see code snippet below. * Create /etc/NetworkManager/conf.d/iwd.conf with the following contents: |
Line 34: | Line 33: |
* Stop NetworkManager.service and disable ```wpa_supplicant.service```, then restart NetworkManager.service |
* Stop NetworkManager.service and disable ```wpa_supplicant.service```, then restart NetworkManager.service |
Contents
Intro
iwd is an alternative to wpasupplicant. IWD itself is considered stable since debian Bookworm / 11, is supported as backed by both ConnMan and NetworkManager, however the NetworkManager backend is considered in an experimental state (as of NetworkManager v1.32.12).
Further information below will focus on using NetworkManager with IWD. (Please note that IWD heavily relies on linux features which means you may benefit from using a more recent kernel version.)
Please consider reading the Upstream Wiki for more in-depth and up to date information.
Prerequisites
The IWD backend is available in upstream NetworkManager but disabled by default, both at build-time and run-time. The network-manager package has enabled the IWD backend at build-time, but depends on runtime-competing daemon pkg:wpasupplicant. This means you can test using IWD backend by enabling it at runtime yourself.
Enabling IWD backend
To enable the IWD backend, you need to:
Install iwd: apt install iwd
Configure NetworkManager to enable/use the IWD backend (instead of the wpasupplicant backend), see code snippet below.
- Create /etc/NetworkManager/conf.d/iwd.conf with the following contents:
[device] wifi.backend=iwd
Stop NetworkManager.service and disable wpa_supplicant.service, then restart NetworkManager.service
sudo systemctl stop NetworkManager sudo systemctl disable --now wpa_supplicant sudo systemctl restart NetworkManager
Please also refer to the upstream IWD information page on NetworkManager.
Connecting through iwctl
Interactive mode
Start the interactive mode:
$ iwctl
To list the help menu:
[iwd]# help
To get the wireless device name:
[iwd]# device list
Sample output:
Devices -------------------------------------------------------------------------------- Name Address Powered Adapter Mode -------------------------------------------------------------------------------- wlan0 0c:98:e6:b2:ad:d5 on phy0 station
Network scanning:
[iwd]# station wlan0 scan
To list available networks:
[iwd]# station wlan0 get-networks
To connect:
[iwd]# station wlan0 connect "SSID"
Then enter the passphrase when prompted.
Connection stat:
[iwd]# station wlan0 show
To disconnect:
[iwd]# station wlan0 disconnect
Command line arguments
Without entering the interactive mode, the above command can be executed from shell as follows:
$ iwctl device list $ iwctl station wlan0 scan $ iwctl station wlan0 get-networks $ iwctl --passphrase "mysecret" station wlan0 connect "SSID" $ iwctl station wlan0 show $ iwctl station wlan0 disconnect
Known issues
As of 2021-10-02 the following issues with using IWD as backend for NetworkManager are:
NetworkManager does not reconnect a connection dropped by the other side
connections created with WPA-Supplicant are not reused with IWD
Pease also refer to the NetworkManager issue tracker.
Feedback about your success or failure with IWD is warmly welcome! Please file a bug report.
Troubleshooting
If you're having problems getting wifi working in NetworkManager with the IWD backend enabled, please make sure the IWD service is running. See systemctl status iwd