by Radosław Śmigielski
WiFi configuration of Raspberry Pi may be pain in the bad. Here is step by step guide with some examples. This configuration is dedicated to build-in WiFi interface.
root@pi15 /h/radek# rfkill list wifi
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no
root@pi15 /h/radek# nmcli radio wifi
disabled
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether b8:27:eb:ad:b7:60 brd ff:ff:ff:ff:ff:ff
root@pi15 /h/radek# grep WirelessEnabled /var/lib/NetworkManager/NetworkManager.state
WirelessEnabled=false
root@pi15 /h/radek# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
Successfully initialized wpa_supplicant
rfkill: WLAN soft blocked
rfkill: WLAN soft blocked
Below steps use NetworkManager which is enabled by default in recent systems.
root@pi15 /h/radek# nmcli radio wifi on
root@pi15 /h/radek# nmcli radio wifi
enabled
root@pi15 /h/radek# rfkill list wifi
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
root@pi15 /root# cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=PL
network={
ssid="wifi-a"
psk="My%SecretX2"
priority=10
}
network={
ssid="wifi-b"
psk="My%SecretX2"
priority=20
}
network={
ssid="wifi-c"
psk="My%SecretX2"
priority=30
}
systemctl stop wpa_supplicant.service
root@pi15 /root# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
...
wlan0: Trying to associate with 8a:7c:61:c2:e2:c9 (SSID='wifi-a' freq=2417 MHz)
wlan0: Associated with 8a:7c:61:c2:e2:c9
MBO: Disable MBO/OCE due to misbehaving AP not having enabled PMF
wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
wlan0: CTRL-EVENT-REGDOM-CHANGE init=COUNTRY_IE type=COUNTRY alpha2=DE
wlan0: CTRL-EVENT-DISCONNECTED bssid=8a:7c:61:c2:e2:c9 reason=15
wlan0: WPA: 4-Way Handshake failed - pre-shared key may be incorrect
wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="wifi-a" auth_failures=1 duration=10 reason=WRONG_KEY
...
systemctl enable --now wpa_supplicant.service
nmcli connection add type wifi con-name "wifi-a" ifname wlan0 ssid "wifi-a" wifi-sec.key-mgmt wpa-psk wifi-sec.psk ""My%SecretX2
nmcli connection modify <UUID_OF_WIFI_CONNECTION> \
ipv4.method manual \
ipv4.dns 192.168.14.1 \
ipv4.dns-search kresy.local \
ipv4.addresses 192.168.14.115/23 \
ipv4.gateway 192.168.14.1
nmcli connection modify <UUID_OF_WIFI_CONNECTION> \
ipv6.method manual \
ipv6.dns fd00:f00c::ffff:c0a8:e01 \
ipv6.dns-search kresy.local \
ipv6.addresses fd00:f00c::ffff:c0a8:e73/64 \
ipv6.gateway fd00:f00c::ffff:c0a8:e01
Enjoy!
tags: Raspberry Pi - IoT