Raspberry Pi 3 Model B+を購入してからヘッドレスでsshできるようにするまでの5ステップと、ハマりポイント

Updated: / Reading time: 6 minutes

購入直後のRaspberry Pi Model B+にRaspbian Stretch Liteをインストールして、ヘッドレスでssh接続するまでの手順を説明します。

背景

簡単なWebアプリケーションやちょっとしたジョブを稼働させたくて、Raspberry Pi 3 Model B+(以降、RaspberryPiと呼びます)を購入しました。以前にRaspberry Pi Model B+をセットアップしましたが、OSがバージョンアップしたため当時の手順は使えませんでした。

この記事では、RaspberryPiをディスプレイやキーボードを接続せずに、つまりヘッドレスでRaspbian Stretch Liteをインストールして、PCなどのsshクライアントからRaspberryPiに接続するまでの手順を説明します。

この記事の手順では、とりあえずRaspberryPiを起動してssh接続するまでなので、このままではインターネットに公開などできませんし、いくつかの設定作業が残っています。これらは少しの手作業とAnsibleを使った一括設定を行う予定ですが、別の記事で説明します。

前提

次の機材が必要となります。

  • Raspberry Pi 3 Model B+ RS版
  • microUSB電源 5V/3.0A
    • RaspberryPiの仕様は2.5A
    • 2.0Aでは起動しませんでした
  • microSD 16GB
    • microSD->SD変換アダプターも必要
    • 容量は、8GB以上が望ましいです
  • MacBookPro
    • 筆者はMacBookProを使用しましたが、microSDカードへの書き込みができるのであれば、Windows PCでも問題ありません

筆者はRaspberryPiとmicroUSB電源を秋葉原の秋月電子で購入しましたが、Amazonなどでも購入することができます。購入サイトによって価格が異なりますので注意が必要です。

上記の機材だけでも作業は可能ですが、トラブルに遭遇した時の原因調査に困るので、できれば次の機材も用意したほうがよいです。

  • USB有線キーボード
  • HDMIケーブル、ディスプレイ
    • テレビにHDMI接続できる場合が多いです

使用機材にMacBookProをあげた通り、PC側の作業手順はMacBookProを想定して説明します。Windows PCでも同様の作業はできますので、適宜読み替えてください。

手順

それでは、実際のセットアップ手順を説明します。

Raspbianをダウンロードする

Download Raspbian for Raspberry PiからRaspbian Stretch Liteをダウンロードします。

同ページにハッシュ値が記載されていますので、ダウンロードが終了したらダッシュ値が一致することを確認します。

$ openssl sha256 2018-11-13-raspbian-stretch-lite.zip 
SHA256(2018-11-13-raspbian-stretch-lite.zip)= 47ef1b2501d0e5002675a50b6868074e693f78829822eef64f3878487953234d

microSDにRaspbianをインストールする

zipファイルを展開します。

$ unzip 2018-11-13-raspbian-stretch-lite.zip
Archive:  2018-11-13-raspbian-stretch-lite.zip
  inflating: 2018-11-13-raspbian-stretch-lite.img

microSDのマウント・ポイントを確認します。

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *121.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         120.5 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +120.5 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume OSX                     114.0 GB   disk1s1
   2:                APFS Volume Preboot                 22.4 MB    disk1s2
   3:                APFS Volume Recovery                514.7 MB   disk1s3
   4:                APFS Volume VM                      2.1 GB     disk1s4

/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.9 GB    disk2
   1:             Windows_FAT_32 boot                    46.0 MB    disk2s1
   2:                      Linux                         15.9 GB    disk2s2

容量を見ると、/dev/disk2がmicroSDのマウント・ポイントだとわかります。

microSDをFAT32でフォーマットします。

NOTE: 当然ですが、microSDの内容は消去されます。また、デバイスの指定を間違えるとどえらいことになるので、要注意です。

$ diskutil eraseDisk FAT32 RPI /dev/disk2
Started erase on disk2
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk2s2 as MS-DOS (FAT32) with name RPI
512 bytes per physical sector
/dev/rdisk2s2: 30673616 sectors in 1917101 FAT32 clusters (8192 bytes/cluster)
bps=512 spc=16 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=411648 drv=0x80 bsec=30703616 bspf=14978 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk2

microSDをアンマウントします。

$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

microSDにRaspbianイメージを書き込みます。この作業は数分かかります。応答が返ってこなくてもしばらく放置しましょう。

$ sudo dd if=2018-11-13-raspbian-stretch-lite.img of=/dev/disk2 bs=1m conv=sync
1780+0 records in
1780+0 records out
1866465280 bytes transferred in 702.735738 secs (2655999 bytes/sec)

事前設定(SSH有効化、Wi-Fi設定)を行う

NOTE: これらの作業は、ディスプレイと有線キーボードを使用するのであれば、RaspberryPiの起動後にraspi-setupコマンドで行うことができます。この記事では、ヘッドレス作業のため、RaspberryPi起動前に行います。

microSDのルート・フォルダに移動します。

$ cd /Volumes/boot/

SSH機能を有効化するため、sshファイルを作成します。これは空ファイルでよいです。

$ touch ssh

Wi-Fiを設定するため、wpa_supplicant.confファイルを作成します。

$ cat wpa_supplicant.conf 
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="{SSID}"
    psk="{暗号キー}"
}

暗号キーは、Wireshark · WPA PSK GeneratorなどでSSIDとパスフレーズから生成できます。ルーターによっては、PSK設定項目があることがあるので、その場合はそこに設定されている値を使用します。

RaspberryPiを起動する

microSDを取り出す準備をします。

$ cd
$ diskutil eject /dev/disk2
Disk /dev/disk2 ejected

コマンドが成功したら、microSDをPCから実際に取り出します。

RaspberryPiにmicroSDを挿入して、電源に接続します。RaspberryPiに電源スイッチはなく、電源に接続すると自動的に起動します。

NOTE: HDMIケーブルやUSBキーボードなど他の機器を接続する場合、まず電源ケーブル以外の機器を接続して、最後に電源ケーブルを接続します。

PCからRaspberryPiにssh接続する

電源に接続して数分で起動が終了します。設定に問題がなければ、RaspberryPiが無線LANに接続されているはずです。ルーターのDHCP機能などで割当IPアドレスリストを見ると、IPアドレスが増えていることがわかると思います。

PCからRaspberryPiにssh接続します。初期ユーザーはpi、パスワードはraspberryとなっています。

$ ssh pi@raspberrypi.local

Linux raspberrypi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Dec 19 05:55:53 2018 from 192.168.3.2
pi@raspberrypi:~ $

macOSやWindowsでもBonjourがインストールされていれば、raspberrypi.localでRaspberryPiを発見することができます。これで接続できない場合は、ルーターのDHCP機能などでIPアドレスを調べてください。

ハマりポイント

microSDのフォーマットはFAT32でなければならない

例えばディスク・ユーティリティなどでexFATでフォーマットしてしまうと、RaspberryPiは起動しないようです。その場合、FAT32でフォーマットしなおしてください。

電源が不足していると起動しない

Raspberry Pi 3 Model B+の仕様によると、5V/2.5Aの電源が必要となります。試しに手元にあった5V/2.0A(スマホ充電用)の電源をRaspberryPiに接続してみましたが、起動しませんでした。同様の問題が報告されています。

microSDの相性が悪い

microSDの相性が悪いと起動しないようです。筆者はこの問題に遭遇したことはありません。

所感

とりあえず、RaspberryPiを使えるように最低限のセットアップを行いました。この手順が手作業なのは仕方ありませんが、次のOSセットアップやソフトウェア・セットアップは可能な限り自動化する予定です。

参考リンク