Raspberry Piの初回設定は簡単なのですが、運用時にディスプレイもキーボードも接続せず、wifiで運用する想定であれば初回設定時にケーブルをいくつも接続することはとても億劫です。

ディスプレイもキーボードもLANケーブルも接続しないで初回設定を行う方法について、インターネット上でggると色々と関連する情報が出てきますが、いまいちまとまりが無いためまとめました。

ちなみに下記前提となります。

イメージを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に記載する方法もあります。


Sponsored Link


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カードは下記の東芝製が相性も良く安価なためお勧めです。

あとは必要に応じて諸々の設定を行っていく流れとなります。