Connect to WiFi using nmcli
2 min read
These days SoC with WiFi chip are very cheap and there exists lots of headless Linux OS for these machines. For example, Orange Pi Zero costs less than 10 US dollars.
Connecting to WiFi has been a real pain becase you need a password to connect with most SSID. And WLAN cards do not work like ethernet cards do. So modifying only
/etc/network/interfaces is not enough.
Most Debian systems (may be others too) use
wpa_supplicant for WLAN authentication. You need to generate
wpa_passphrase for each network and configure them with
/etc/network/interfaces which is really confusing. For this purpose,
nmcli tool comes handy.
Simple do search of all available SSIDs by running the following command.
nmcli device wifi list
And here is the response.
* SSID MODE CHAN RATE SIGNAL BARS SECURITY MT7620_AP Infra 1 54 Mbit/s 100 ▂▄▆█ MYHOME Infra 2 54 Mbit/s 100 ▂▄▆█ WPA2 Minhaz+ Infra 11 54 Mbit/s 95 ▂▄▆█ WPA2 xiaomi-repeater Infra 1 54 Mbit/s 87 ▂▄▆█ ESP8266 Infra 2 54 Mbit/s 55 ▂▄__ WPA1 WPA2 LINK3 Infra 11 54 Mbit/s 12 ▂___ WPA1 WPA2 AAMRA-WIFI Infra 11 54 Mbit/s 12 ▂___ WPA1 WPA2
To connect to your desired network, simple use the following command.
$ nmcli device wifi connect MYHOME password 'p@55w0rd' Device 'wlan0' successfully activated with 'd54d566c-fa31-4a21-ae4b-a1279d10f3e3'.
nmcli is very handy if you need to switch to different SSIDs frequently. Here is a nice guide on
nmcli. Read it for more.