I am exploring a few low-level tools for connecting to wireless networks, and I found the following tools (with useful documentation/tutorial links):
I cannot seem to find a thorough evaluation of these tools, or of similar tools. Perhaps someone can compare these tools in terms of reliability and user-friendliness? Which one is best for a Linux desktop? A link to an existing article is welcome since I cannot find much through a web-search.
Sorry if this question is too open-ended, but I cannot find a good comparison and I have received mixed reviews from individuals about which tool is the most reliable.
Here is a bit from my experience:
I have been using wpa_cli, and I have been pretty satisfied. It works out of the box on many Linux systems, but it doesn't seem to work when NetworkManager is installed. My main problem is that I now have over 100 wifi networks in my config, and there doesn't seem to be an easy way to add/remove a network by SSID. I have to use the network number that is assigned by wpa_supplicant, and it seems unreasonable to re-number or rearrange the networks. I also have to manually enter the SSID for new networks - perhaps something like tab-completion or a text-based selection menu would be nice. This has burned lots of my time when, for example, the ssid had some trailing whitespace.
Also, I have had issues where I need to manually set a specific configuration like
scan_ssid=1 for hidden networks, and
key_mgmt=NONE for unencrypted networks. I am worried that some other special case may pop up when connecting to a new wifi network, and I may not have time to peruse the
wpa_supplicant.conf for a solution. Thus, user-friendliness is a bit of a challenge with wpa_cli, but maybe there are features of the tool that I am not aware of.
I was advised that nmcli is the most user-friendly and does not sacrifice any reliability, even though it relies on NetworkManager as a dependency. I received another recommendation that iw is best for a Linux desktop since it is built in with all Linux distros, but my impression is that iw does not facilitate managing and automating configurations when there are lots of connections configured. The ArchWiki also says that iw only supports nl80211, but that may not be a realistic concern.
Since I cannot seem to find much comparison across these tools, any insight or references would be appreciated.