Wi-Fi connectivity issues resolved by dropping wpa_supplicant in favour of iwd

jokeyrhyme@lemmy.ml to Linux@lemmy.ml – 74 points –

My desktop PC is the only machine in the house having Wi-Fi connectivity issues (connects fine, but drops out randomly after a few minutes or sometimes a few hours)

I think wpa_supplicant is getting confused and thinks signal strength is poor (I have a Netgear mesh, but this seems increasingly common, so it's weird for that to be the issue)

I did pick up a TP-Link USB Wi-Fi adapter, but can reproduce the same connectivity issues

The fix was switching away from wpa_supplicant in favour of iwd, which seems rock solid in comparison

I'm sure there's a way to fix wpa_supplicant, but it's man pages only seem to list the options without actually describing what they do, which seems sort of poor considering how old the project is 🤷

11

A somehow old (2021) but interesting article about why the community is moving from wpa-supplicant to iwd: https://www.linux-magazine.com/Issues/2021/243/iNet-Wireless-Daemon

Here is an excerpt of interest: "The description of the iwd project on www.kernel.org highlights simplicity as an important factor behind iwd's recent rise: "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 utilizing 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.""

ArchLinux and Ubuntu respectively tested iwd on July 2020 and in Ubuntu 20.10.

If you have an android phone it's likely using wpa_supplicant.

iwd is great. In fact I'd say take it a step further and get rid of the beast that is NetworkManager as well.

https://austindw.com/networkmanager-is-bloat/

Tbf you only need iwd, as systemd can take care of the rest. But it's not an option for me on desktop anyway because signal and vpn connection visibility are important for me and that's not possible without a GUI running

There are lightweight GUI options for that too. For iwd, you can use iwgtk. For VPN, that would depend on your VPN protocol/service. Some providers like Proton have their own client, others can use something like Wireguard Client (as an example) or something similar depending on your VPN setup.

I did actually do this already, separate from working on this issue, but can confirm the intermittent problems with the combination of wpa_supplicant and systemd-networkd

If you can, get yourself a wireless access point instead.

You can connect the computer by ethernet to the access point that then connects to the WiFi network.

By having the device separate you can have it situated away from the computer for better connection and the computer only sees a wired connection.

Plus they tend to be more stable than dongles.

Holy shit I think I have the same problem, mesh network and all. I assumed it was a driver issue; thanks for the pointer!

Thanks, I switched from unconfigured (but working because magic) networkmanager to pure wpa_supplicant on my NixOS system yesterday and I definitely noticed frequent reconnecting.