RaspberryPi(USB無線LAN子機付き)を持ち運んだ先で、自動でWiFiに接続されるようにしたい。
↓ 青く光るのが無線LAN子機
RaspberryPiの電源さえ入れれば、自宅にいるときは自宅のWiFiに、職場なら職場WiFiに、自動で繋がるようにする。
ーーー
仮に
自宅無線LAN → 192.168.3.***
職場無線LAN → 192.168.2.***
と仮定して設定する。
ーーー
まずは自宅無線LANのSSIDへの接続に使うパスワードを用意する。
SSID:JITAKU
パス:password
だとすると
# sudo -s
# wpa_passphrase JITAKU password
(wpa_passphraseコマンドを使ってpasswordを暗号化する)
psk=46808… という長い文字列が、暗号化されたパスワード。
ーーー
同じように、職場SSIDの分も用意する。
SSID:SYOKUBA
パス:password2
だとすると
# sudo -s
# wpa_passphrase SYOKUBA password2
これで、自宅と職場それぞれのSSIDと、それに対応するパスワード(psk)ができた。あとはこれをRaspberryPiの設定に埋め込めばいい。
ーーー
# vim /etc/wpa_supplicant/wpa_supplicant.conf
自宅と職場それぞれの設定を記載する。
proto
接続に使うプロトコル(接続方式)。WPA-PSK2を使うので「WPA2」とする。
key_mgmt
WPA-PSK2 で接続する場合であっても「WPA-PSK」とする(末尾に2は付けない)。
pairwise
「TKIP CCMP」としておけばOK。
group
「CCMP」としておけばOK。
#psk
行ごと消してOK(シャープでコメントアウトされている。備忘のためだけ。あるとパスワードが丸見えだから、消したほうがいいと思う)。
psk
6行目のSSIDに対応したパスワード。事前にwpa_passphraseコマンドで作っておいた文字列をコピペする。
id_str
設定を一意に識別するための文字列。複数WiFiに対応する際のキモ。このあと、/etc/network/interfaces を編集するときに使う。
ーーー
最後に、上記で作った id_str を無線LANのインターフェースに割り当てる。
# sudo -s
# vim /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.3.30
netmask 255.255.255.0
gateway 192.168.3.1
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
iface wlan_JITAKU inet static
address 192.168.3.31
netmask 255.255.255.0
gateway 192.168.3.1
iface wlan_SYOKUBA
inet static
address 192.168.2.31
netmask 255.255.255.0
gateway 192.168.2.254
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
ーーー
ここまでできたら、あとはRaspberryPiを再起動すれば、いる場所(自宅or職場)の無線LANに繋がる。
ーーー
2016/11/27追記
もっとわかりやすく結論だけまとめた。