スカイラボ

~ いろいろと興味のあるものを ~

Mac OS X で Raspberry Pi Zero WH の初期セットアップ(モニター,キーボード不要)

2018年1月に「Raspberry Pi Zero WH」が発売されたので購入しました。スイッチサイエンスで2/2に注文して4日後には届いたので現状はそれほど入手困難ではないです。

f:id:goegoen:20180209203443p:plain

Raspberry Pi Zero W」との違いはGPIOピンがはんだ付けされているという点なので、セットアップなどは先人方の情報がそのまま役に立ちます。が、自分のメモも兼ねて流れを残しています。
今回の内容は Mac OS XRaspberry Pi Zero の OS 書き込み時に無線 LAN の設定+ ssh を有効化しモニターやキーボードが無い環境で Raspberry Pi を操作する方法です。

www.switch-science.com

環境情報

セットアップするためにラズパイ本体以外に準備したものは以下です。

項目 内容 備考
作業端末 Mac Book Pro (OS:High Sierra 10.13.3)
MicroSD 16GB 必要に応じてUSB変換アダプター
無線LAN ラズパイを接続する無線LAN環境
ラズパイOS RASPBIAN STRETCH LITE November 2017 ダウンロードサイト Download Raspbian for Raspberry Pi

OSのダウンロード

ダウンロードサイトからOSをダウンロードします。今回は CLI で利用するので「RASPBIAN STRETCH LITE」をダウンロードしました(zipは時間がかかるので、 µTorrent などでダウンロードすると速いです)
ダウンロードしたファイルのハッシュ値を確認することで正しくダウンロードが行えたか確認できます(ここでは Downloads ディレクトリにダウンロードしています)

$ cd ~/Downloads

$ shasum -a 256 ~/Downloads/2017-11-29-raspbian-stretch-lite.zip
e942b70072f2e83c446b9de6f202eb8f9692c06e7d92c343361340cc016e0c9f - 

$ unzip 2017-11-29-raspbian-stretch-lite.zip
Archive:  2017-11-29-raspbian-stretch-lite.zip
  inflating: 2017-11-29-raspbian-stretch-lite.img

MicroSD へ OS イメージの書き込み

MicroSD の接続

MicroSD を USB 変換アダプターに接続し、それを Mac Book へ接続します

認識確認

ターミナルを起動して MicroSD カードが認識しているか確認します(ここでは、 /dev/disk2 が SD カードです)

$ 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         121.1 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +121.1 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            80.4 GB    disk1s1
   2:                APFS Volume Preboot                 25.0 MB    disk1s2
   3:                APFS Volume Recovery                509.8 MB   disk1s3
   4:                APFS Volume VM                      2.1 GB     disk1s4

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.5 GB    disk2
   1:             Windows_FAT_32 NO NAME                 15.5 GB    disk2s1

フォーマット

MicroSDMS-DOS(FAT32) でフォーマットします。
以降の作業は誤ると OS 領域が破損しますので対象ディスクを誤らないように注意して実行します。

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

MicroSD のアンマウント

OSイメージ書き込み前に MicroSD をアンマウントします。(disk2 のマウントされている領域をアンマウントします。ここでは /dev/disk2s2 がマウントされているのでアンマウントします)

$ df -h |grep /dev/disk2
/dev/disk2s2                                         14Gi  1.1Mi   14Gi     1%       0                   0  100%   /Volumes/RASPBERRYPI

$ diskutil umount /dev/disk2s2
Volume RASPBERRYPI on disk2s2 unmounted

$ df -h |grep /dev/disk2
 -> 表示されないことを確認する

OSイメージの書き込み

フォーマットしたディスクにOSイメージを書き込みします。

$ sudo dd if=2017-11-29-raspbian-stretch-lite.img of=/dev/disk2 bs=1m
Password:
1772+0 records in
1772+0 records out
1858076672 bytes transferred in 216.856192 secs (8568244 bytes/sec)
      216.89 real         0.00 user        14.00 sys

ssh ファイルの作成

raspbian 起動時に ssh サービスが起動するようにファイルを作成します。

$ cd /Volumes/boot

$ touch ssh

無線 LAN 設定ファイル作成

raspbian 起動時に無線 LAN が起動するように設定ファイルを作成します。psk をハッシュ値で記載する場合は MacOS の場合以下のようなサイトでハッシュ値を出すのがお手軽です。
Wireshark · WPA PSK Generator

$ vi wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="SSIDを入力"
    psk=ハッシュ値(平文の場合は「"(ダブルクォート)」で囲む)
}

OS起動

MicroSD カードをアンマウントしてRaspberry Pi 本体にカードを挿入後、電源ケーブルを接続しブートさせます

$ cd /

$ diskutil umount /dev/disk2s1

疎通確認 & ssh 接続

ping で名前解決が行えているか確認し疎通が行えていることを確認後、ssh で接続する

$ ping raspberrypi.local

$ ssh pi@raspberrypi.local
 -> pi ユーザの初期パスワードは raspberry でログインできます

以上で初期セットアップが完了です。次回以降で固定IPアドレスの設定を行います。