Raspberry Piの初回設定は簡単なのですが、運用時にディスプレイもキーボードも接続せず、wifiで運用する想定であれば初回設定時にケーブルをいくつも接続することはとても億劫です。
ディスプレイもキーボードもLANケーブルも接続しないで初回設定を行う方法について、インターネット上でggると色々と関連する情報が出てきますが、いまいちまとまりが無いためまとめました。
ちなみに下記前提となります。
- Raspberry Piにはwifiが使用可能なモデルか、wifiドングルが刺さっている
- wifiが標準搭載なのはPi3かPiZeroWです。
- Amazon.co.jp:Raspberry Pi 3
- Amazon.co.jp:Raspberry Pi Zero W Starter Kit
- それ以外のモデルの場合、下記の様なUSBのWifiドングルが必要です。
- Amazon.co.jp:BUFFALO 11n対応 11g/b 無線LAN子機 親機-子機デュアルモード対応モデル WLI-UC-GNM2
- wifiルータはDHCPでIPアドレスを配布している
- Raspberry Pi以外にPCがある
- OSはRaspbian
イメージをSDカードに書き込む
イメージファイルのダウンロード
Raspberry Pi公式サイトから書き込みたいイメージのzipファイルをダウンロードして展開します。
ディスプレイもキーボードも使用しない場合はデスクトップ環境が不要でしょうから、RaspbianはWITH DESKTOP
ではなくLITE
でよいでしょう。
イメージファイルをSDカードへ書き込む
基本的には公式に書いてある通りです。
上記のWindowsの場合はWin32DiskImagerを使用した方法が書かれていますが、私はDD for Windowsの方が楽なので(インストーラでインストールしないでよいため)こちらを使用しています。参考程度に使い方を記載します。
ダウンロードページからzipファイルをダウンロードし、展開してDDWin.exe
を実行します。
そして書き込むイメージファイルと書き込み先のSDカードを選択して書込
をクリックします。SDカードの容量に対してイメージのサイズが小さい場合警告が出ましたが無視して大丈夫です。
<a href="http://www.si-linux.co.jp/techinfo/index.php?DD%20for%20Windows" target="_blank">capture at DD for Windows</a>
wifiの設定ファイルとsshdの有効化
ここが重要です。電源以外のケーブルを接続しないということは何らかの手段でRaspberry Piと通信することになりますが、ここではsshとします。起動時にsshで接続できるということは、
- wifiに接続されている
- sshdが起動している
ということになりますが、どちらもデフォルトでは有効になりません。これらを有効にしていきます。
wifiの設定ファイルをSDカードへ配置する
SDカードの/boot(macであればbootという名前のディスクがFinderに表示され、Windowsだとbootという名前のドライブとして認識されると思います)にwpa_supplicant.conf
という名前のファイルを、下記のような内容で作成します。環境により多少記述内容に差がありますが、最近の家庭用ルータであれば概ねこれだけで大丈夫だと思います。改行コードがLFになるように、何らかのエディタで作成しましょう。
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="<SSID>"
psk="<WPA2のPSK>"
proto=WPA2
scan_ssid=1
}
SSIDとPSK(パスフレーズ)はルータで設定されている内容を入力します。
WPA2のPSKはベタ書きでもよいのですが、暗号化した状態が好ましいです。Raspberry Piにはwpa_passphrase
というコマンドがあり、このコマンドでPSKを暗号化できるのですが、そもそもこの時点ではRaspberry Piが起動していないため使用できません。
代わりに、WPA key calculationにSSIDとPSKを入力してCalcurate
をクリックすることで暗号化された文字列を生成できるため、それをwpa_supplicant.conf
に記載する方法もあります。
OS起動時にsshdを起動させるためのファイルをSDカードへ配置する
デフォルトではsshdが起動しないのですが、こちらも/boot以下にssh
という名前の空ファイルを作成することでsshdが有効な状態で起動します。非常に簡単ですね。/bootにカレントディレクトリを移動してから、macであれば
touch ssh
Windows(PowerShell)であれば
New-File ssh
で完了です。
Raspberry PiのIPアドレスを調べる
前の工程まででDHCPによりIPアドレスを取得し、sshdが起動していたとしても、IPアドレスがわからなければsshで接続ができません。 Raspberry Piに割り当てられたIPアドレスを調べるには、
- ネットワーク内から頑張って探す
- ルータの設定画面でDHCPのリース状況や接続中のクライアントを探す
あたりの手段が考えられます。前者の場合基本的にMACアドレスのVendor code(MACアドレスの前半分)がb8:27:eb
のものを探していきます。下記のような調べ方があります。
macの場合
brew install arp-scan sudo arp-scan -l
linuxの場合
# RHEL系であればapt-getでなくyum apt-get install arp-scan sudo arp-scan -l
Windowsの場合
ExPing等もありますが用意するのが面倒なので、PowerShellですと下記のような感じですかね…
foreach($i in 1..254){ ping 192.168.1.$i -n 1 -w 1 | Out-Null } arp -a
ルータでMACアドレスによる接続制限をしている場合、一時的にMACアドレスの制限をしないように設定変更する必要があるかもしれません。
また、Raspberry Piと通信できることが前提であるため、前工程であるwifiの有効化とsshdが問題なく起動している必要があります。
あとはsshするだけ
前の工程でIPアドレスまで判明するので、あとはsshで接続するだけです。
Raspberry Piでsshする際は、デフォルトではID/Passwordでの認証となり、デフォルトのIDはpi
、パスワードは`raspberryです。
まとめ
これで電源以外のケーブル類を用意することなくRaspberry Piにsshでログインできますね! 本体とSDカードとUSBケーブルだけ買えばRaspberry Piが使えますよ! ちなみにSDカードは下記の東芝製が相性も良く安価なためお勧めです。
あとは必要に応じて諸々の設定を行っていく流れとなります。