Raspberry Pi Zero WのRaspbianでWi-Fiの設定
RaspbianをインストールしたRaspberry Pi Zero Wでディスプレイや外付けキーボードを利用せずにPCのみでWi-Fiの接続設定を行う手順のメモです。
使用したRaspberry Pi Zero WとRaspbianの情報は以下です。
$ cat /proc/device-tree/model
Raspberry Pi Zero W Rev 1.1
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
仕組み
RaspbianではSDカード直下にwpa_supplicant.conf
の名前でファイルがある場合raspberrypi-net-mods.service
によって/etc/wpa_supplicant/wpa_supplicant.conf
にコピーされます。
Wi-Fiの接続情報を記述したwpa_supplicant.conf
を置いたSDカードを差してRaspberry Piを起動することでヘッドレスでWi-Fiに接続することができます。
手順
手順は以下になります。
- PCでファイル
wpa_supplicant.conf
を作成する - Wi-Fiの接続情報を記述する
- PCにSDカードを差し
wpa_supplicant.conf
をSDカード直下にコピーする - SDカードをRaspberry Piに差して起動する
またSDカード直下にssh
またはssh.txt
の名前でファイルがある場合sshswitch.service
によってSSHが有効になります。
wpa_supplicant.confの作成
まずはPCでwpa_supplicant.conf
を作成します。
このファイルにWi-Fiの接続情報を記述するのですが以下に注意が必要です。
- ファイルの改行コードはLFで記述するようにします。
- Raspberry Pi Zero Wが対応している無線LANの規格は「IEEE 802.11 b/g/n 2.4 GHz」なので2.4GHzの周波数のSSIDを設定します。
以下はSSIDが「Wi-Fi-SSID」、パスフレーズが「password」の場合のWi-Fiの接続情報の記述例です。
パスフレーズを平文で記載することに抵抗がある場合はパスフレーズをハッシュ化して記載することもできます。パスフレーズをハッシュ化はこちらのサイトでブラウザ上で行うことができます。
パスフレーズをハッシュ化して記載した例は以下になります。平文のパスコードと同様にpskに設定しますがハッシュ化した場合はダブルクォーテーションで囲わないようにご注意ください。
接続情報を記述したらwpa_supplicant.conf
をSDカードの直下にコピーします。SSH接続を有効化する場合はSDカード直下にssh
またはssh.txt
の名前のファイルの作成も行います。
動作確認
それでは動作確認を行います。
SDカードをRaspberry Piに差して電源につないで起動するまでしばらく待ちます。
Wi-Fiの設定がうまくできていればRaspberry Piにpingが通ります。
ping raspberrypi.local
SSH接続の疎通は以下のコマンドで行います。
初期パスワード「raspberry」を入力してログインできることを確認します。
パスフレーズをハッシュ化する仕様について
参考までにパスフレーズをハッシュ化する仕様について記載します。
WAP2のパスフレーズは、以下の引数の鍵導出関数PBKDF2を用いてハッシュ化を行います。
DK = PBKDF2(HMAC−SHA1, passphrase, ssid, 4096, 256)
疑似乱数関数はHMAC-SHA1、ソルトにはSSIDを使用、ストレッチング回数は4096回、導出鍵のビット長は256(32バイト)です。
Powershellでハッシュ化する場合は以下で行うことができます。
利用される場合は、SSID(Wi-Fi-SSID)とパスフレーズ(password)をご自身のWi-Fiの接続情報に書き換えて実行してください。また、こちらのスクリプトではSSIDが8文字未満の場合はエラーになりますのでご注意ください。