created: 2022-10-08T01:08:36.995Z

RaspberryPiで無線LANのSSID/Passを複数設定する

実家にラズパイを持って行ったときにも自動的にwifiをつかんで欲しくて。

設定ファイル

Raspberry Pi Imager を使ってイメージを作った場合だと、/etc/wpa_supplicant/wpa_supplicant.conf に設定ファイルが置いてある。

cat /etc/wpa_supplicant/wpa_supplicant.conf

中身はこんな感じ。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
	ssid="Buffalo-G-xxxx"
	psk=xxxxxxxxxx39a58ea0802a58c9217f52bfd421f3afd8813b4e4860b3ec
}

設定

こういうコマンドで設定する書式が出力される。

$ wpa_passphrase {{ wifiのssid }} {{ wifiの平文パスワード }}

出力

network={
    ssid="{{ wifiのssid }}"
    # psk="{{ wifiのパスワード }}"
    psk="{{ 暗号化されたwifiのパスワード }}"
}

そのまま書き込んでしまう。

$ wpa_passphrase Buffalo-G-xxxx xxxxxxxx \
    | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf

priority を定義はオプショナルなはずだが、設定しないとなぜかうまいこと接続できなかったので設定した。

network={
	ssid="Buffalo-G-xxxx"
	priority=0  
	psk=xxxx
}
network={
	ssid="Buffalo-G-oooo"
	priority=1 # 数値が大きい方が優先される
	#psk="..."
	psk=oooooooo
}

通常は network ブロックで定義された一番強いシグナルがデフォルトで接続されます、priority= で挙動を変えることができます。

確認

接続しているSSIDを確認。

$ wpa_cli status
$ wpa_cli -i wlan0 status | grep ^ssid
ssid=Buffalo-G-oooo

参考