iwd is a new component aiming to potentially replace wpasupplicant in the future. It is currently available in what should be considered a 'tech preview' state since debian Buster / 10. Both ?ConnMan and NetworkManager has support for using iwd as a backend. Further information below will focus on using NetworkManager with iwd. (Please note that iwd heavily relies on linux features which means you need a recent kernel version.)
The iwd backend is available upstream since 0.11.x but disabled by default, both at build-time and run-time. The network-manager package has enabled the iwd backend at build-time since 0.11.4 (available in experimental). This means you can easily test using iwd backend just by enabling it at runtime yourself.
Enabling iwd backend
To enable the iwd backend you need to:
- Install iwd: apt install iwd
- Upgrade network-manager: apt install network-manager/experimental
configure NetworkManager to enable/use the iwd backend (instead of the wpasupplicant backend)
Append the following snippet in /etc/NetworkManager/NetworkManager.conf
As of right now the only known issue with iwd is the inability to connect to hidden SSIDs. Feedback about your success or failure with iwd is warmly welcome!
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