2013年5月31日

RaspberryPiをWiFiでつなぐ(2) 任意のAPに接続

前回はRaspberryPiの起動時に予め指定したデフォルトの暗号化されたWiFi APに接続できるようにした。今回はSSIDを指定して任意のAPに接続する。

方法はいたって簡単で、まず
  • 接続したいAPを記述したwap_supplicantファイル
  • それを指し示すinterfacesファイル
を作る。ファイルの置き場所はどこでもよいが、一応デフォルトのディレクトリに入れることにする。

注意:wpa_supplicantファイルは平文のPSKを含むので、必ずオーナをスーパーユーザにしてオーナ以外の読み出しを禁止すること。
pi@raspberrypi$ sudo cat /etc/wpa_supplicant/wpa_supplicant-my_ssid2.conf
network={
    ssid="my_ssid2"
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=TKIP
    group=TKIP
    psk="yyyyyyyy"
}

pi@raspberrypi$ ls -l /etc/wpa_supplicant/wpa_supplicant-my_ssid2.conf
-r-------- 1 root root 218 May 20 17:09 /etc/wpa_supplicant/wpa_supplicant-my_ssid2.conf
pi@raspberrypi$ sudo cat /etc/network/interfaces.my_ssid2
iface wlan0 inet dhcp
wireless-essid my_ssid2
wpa-conf
/etc/wpa_supplicant/wpa_supplicant-my_ssid2.conf

ifdownで現在の接続を終了する。
pi@raspberrypi$ sudo ifdown wlan0
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/80:1f:02:86:f6:ef
Sending on   LPF/wlan0/80:1f:02:86:f6:ef
Sending on   Socket/fallback
DHCPRELEASE on wlan0 to 192.168.0.1 port 67

まだデーモンプロセスが動いていると現在の接続を完全に終了できないので、それらを殺し、念のためifconfigでwlan0をディセーブルしてクリーンな状態にする。
pi@raspberrypi$ sudo kill `ps ax | grep wlan0 | grep -v grep| awk '{print $1}'`
pi@raspberrypi$ sudo ifconfig wlan0 down

あとはwlan0をもう一度イネーブルして、ifupの-iオプションで先ほどのinterfacesファイルを指定してやればOK。

pi@raspberrypi$ sudo ifconfig wlan0 up
pi@raspberrypi$ sudo ifup -i /etc/network/interfaces.my_ssid2 wlan0

次は、wlan0がAPに接続されていない時にスキャンで得られたAPと自分の知っているAPのリストを照合して自動的に候補のAPにつなぐこと。たぶんシェルスクリプトで可能だと思うが…。

0 件のコメント:

コメントを投稿