ラズパイで簡単にWiFi接続してみる

前回セットアップを完了したRaspberry Pi は、そのままでは無線LAN(WiFi)を使用することができません。

起動時に出力されたメッセージは下記のとおりです。

Wi-Fi is currently blocked by rfkill.
Use raspi-config to set the country before use.

実際に、 rfkill コマンドで確認すると下記のように表示されます。

pi@raspberrypi:~ $ sudo rfkill
ID TYPE DEVICE SOFT HARD
0 wlan phy0 blocked unblocked
1 bluetooth hci0 unblocked unblocked
pi@raspberrypi:~ $

そこで、ラズパイの設定コマンド(raspi-config)を使用して、無線LANで使用するカントリーコードを指定します。

pi@raspberrypi:~ $ sudo raspi-config

無線LANで使用するカントリーコードを指定するには、「5 Localisation Options」を選択します。

せっかくなので、ローケルとタイムゾーンの設定したいと思います。まずは、ロケールから

ロケールは、ユーザーが使用する言語や、国、文字コードを使用できるようにするための設定です。ここでは「ja_JP.UTF-8」を選択します。

また、ロケール設定は複数設定可能なので、デフォルト設定に先ほど選択した「ja_JP.UTF-8」を選択しておきます。

次にタイムゾーンを選択します。

タイムゾーンの選択では、まず地域として「Asia」を選択します。

次に都市として「Tokyo」を選択します。

最後に無線LANで使用するカントリーコードをしています。無線LANで使用する電波は国ごとに法規制されているため使用する国に合わせた設定が必要となっています。

もちろん、国内で使用しますので、ここでは「JP Japan」を選択します。

これらの設定を終え、最初の画面から「Finish」を選択すると再起動を促されますので、再起動します。

無事に再起動を終えたあと、再ログインで確認すると下記のように rfkill コマンドの結果が変わります。

pi@raspberrypi:~ $ sudo rfkill
ID TYPE DEVICE SOFT HARD
0 wlan phy0 unblocked unblocked
1 bluetooth hci0 unblocked unblocked
pi@raspberrypi:~ $

これで、無線LANを使用できるようになりました。さっそく、WiFiルーターに接続してみたいと思います。

皆さんはWiFi接続のWPS(Wi-Fi Protected Setup)をご存じでしょうか?Buffaloでは、AOSS(AirStation One-Touch Secure System)とも呼ばれています。今回はWPSを使用して接続したいと思います。

WPS接続では、よく見かける wpa_supplicant.conf を記述することなく簡単に接続することができます。まずは、現状の確認から

pi@raspberrypi:~ $ cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
pi@raspberrypi:~ $

wpa_supplicantの状態はどうでしょうか?

pi@raspberrypi:~ $ wpa_cli -i wlan0 status
wpa_state=DISCONNECTED
p2p_device_address=xx:xx:xx:xx:xx:xx
address=xx:xx:xx:xx:xx:xx
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
pi@raspberrypi:~ $

うーむ、見事に伏字ばかりですが未接続状態であることが確認できました。

ここで、WiFiルーターのWPSボタンを押して、すばやく下記のコマンドを入力します。

pi@raspberrypi:~ $ wpa_cli -i wlan0 wps_pbc
OK
pi@raspberrypi:~ $

残念ながら、接続時の状態を確認する術はwpa_cli のインタラクティブモードでなければ確認できません。しばらく待ってから

pi@raspberrypi:~ $ wpa_cli -i wlan0 status
bssid=xx:xx:xx:xx:xx:xx
freq=xxxx
ssid=xxxxxxxxx
id=0
mode=station
wifi_generation=5
pairwise_cipher=CCMP
group_cipher=TKIP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=xxx.xxx.xxx.xxx
p2p_device_address=xx:xx:xx:xx:xx:xx
address=xx:xx:xx:xx:xx:xx
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ieee80211ac=1
pi@raspberrypi:~ $

無事に接続していることが確認できました。wpa_supplicant.conf も確認してみます。

pi@raspberrypi:~ $ cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
	ssid="xxxxxxxxx"
	psk="xxxxxxxxxxxxxxxx"
	proto=RSN
	key_mgmt=WPA-PSK
	pairwise=CCMP
	auth_alg=OPEN
	pbss=2
}
pi@raspberrypi:~ $

wpa_supplicant.conf も無事に更新されているようです。次回からは、この設定でWiFiルーターに接続されます。

なお、無線LANのカントリーコードを設定するだけなら、下記のコマンドでも十分です。

pi@raspberrypi:~ $ sudo raspi-config nonint do_wifi_country JP
Linux

前の記事

Raspberry Pi のセットアップ