macでraspberry piライフを再開する

# はじめに

raspberry piを使おうと思ったけど、前回使用したときに何やったか忘れていたので最初からやり直そうと思ったときの初期設定手順の備忘録です。

microSD初期化→OSインストール→ssh接続→wifi接続までできるようにします。

raspberry piにモニタもキーボードもマウスも接続せずにPCのみで設定を行ないます。

## 環境
mac: MacBook Pro (macOS Mojave 10.14.5)
pi: Raspberry Pi Zero WH
memory: microSD 8GB

## microSDのフォーマット

microSDをmacに接続し確認する。

```terminal
$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         200.0 GB   disk0s2
   3:       Microsoft Basic Data BOOTCAMP                50.8 GB    disk0s3

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +200.0 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            116.2 GB   disk1s1
   2:                APFS Volume Preboot                 45.8 MB    disk1s2
   3:                APFS Volume Recovery                509.7 MB   disk1s3
   4:                APFS Volume VM                      3.2 GB     disk1s4

/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        +24.3 MB    disk2
   1:        Apple_partition_map                         32.3 KB    disk2s1
   2:                  Apple_HFS Flash Player            24.2 MB    disk2s2

/dev/disk3 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        +24.3 MB    disk3
   1:        Apple_partition_map                         32.3 KB    disk3s1
   2:                  Apple_HFS Flash Player            24.3 MB    disk3s2

/dev/disk4 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        +16.5 MB    disk4
   1:        Apple_partition_map                         32.3 KB    disk4s1
   2:                  Apple_HFS Flash Player            16.4 MB    disk4s2

/dev/disk5 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *8.0 GB     disk5
   1:             Windows_FAT_32 boot                    268.4 MB   disk5s1
   2:                      Linux                         7.7 GB     disk5s2
```

この場合、disk5が対象。disk5をMS-DOS形式でRASPIという名前でフォーマットする。

```terminal
$ diskutil eraseDisk MS-DOS RASPI disk5
Started erase on disk5
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk5s2 as MS-DOS (FAT) with name RASPI
512 bytes per physical sector
/dev/rdisk5s2: 15196480 sectors in 237445 FAT32 clusters (32768 bytes/cluster)
bps=512 spc=64 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=411648 drv=0x80 bsec=15200256 bspf=1856 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk5
```

最後の行でdisk5の消去が完了したことがわかる。

## OS(raspbian)のインストール

公式サイトからraspbianをダウンロードする。

[RaspberryPi公式サイト](https://www.raspberrypi.org/downloads/raspbian/)

今回（2019年9月18日現在）はRaspbian Buster with desktop (2018-7-10 released, 1.1GB)を使用。

.zipファイルを展開し、.imgファイルを取得。

インストールの準備として一旦unmountしておく。

```terminal
$ diskutil unmountDisk disk5
Unmount of all volumes on disk5 was successful
```

OSをmicroSDへインストールする。
今回は.imgファイルはroot直下、microSDはdisk5だったので以下の通り。都度変更する。パスワードを入力するとインストールが開始する。

```terminal
$ sudo dd if=~/2019-07-10-raspbian-buster.img of=/dev/rdisk5 bs=1m
Password:
3604+0 records in
3604+0 records out
3779067904 bytes transferred in 731.829352 secs (5163865 bytes/sec)
```

完了するまで時間がかかる。今回は732秒かかった。

## インターネット、ssh接続の設定

mountしなおす。

```terminal
$ diskutil mountDisk disk5
Volume(s) mounted successfully
```

microSD内のファイル操作を行ないssh接続できるように3つの設定をする。

とりあえずmicroSD直下に入る。

```terminal
$ cd /Volumes/boot
```

### sshファイル作成

```terminal
$ touch ssh
```

### cmdline.txtへ追記

```terminal
$ sed -i "" -e "s/\$/ modules-load=dwc2,g_ether/" cmdline.txt
```

### config.txtへ追記

```terminal
$ echo "dtoverlay=dwc2" >> config.txt
```

## raspberry piへssh接続
microSDをmacから接続解除し、raspberry pi本体に挿し込みUSBでMacと接続する。

システム環境設定 > 共有 > インターネット共有 にて「RNDIS/Ethernet Gadget」を設定する。

raspberry piが起動したらssh接続する。

```terminal
$ ssh pi@raspberrypi.local
```

piユーザの初期パスワードは```raspberry```。

### 今後もssh接続する

今後も常にssh接続できるように設定する。

```terminal
pi@raspberrypi$ sudo raspi-config
```

raspberry piの設定画面が出てくるので```5 Interfacing Options -> P2 SSH```からSSHを有効にする。

設定を反映させるために再起動する。

```terminal
pi@raspberrypi$ sudo reboot
```

## インターネット接続設定

改めてraspberry piへssh接続する。

```terminal
$ ssh pi@raspberrypi.local
```

### Wi-fi設定

```terminal
$ echo "wifiのpassword" > pass.txt
$ sudo sh -c 'wpa_passphrase "wifiのアクセスポイント名" < pass.txt >> /etc/wpa_supplicant/wpa_supplicant.conf'
$ sudo wpa_cli reconfigure
Selected interface 'p2p-dev-wlan0'
OK
```

### bluetooth設定

todo

# さいごに

これで最低限の設定は完了する。あとはraspberry piの電源を入れるだけで同一LAN上のPCなどからssh接続して操作する。

# 参照

[Raspberry Pi Zero(W, WH)のセットアップ- Qiita](https://qiita.com/hishi/items/8bdfd9d72fa8fe2e7573)
[RaspberryPi Zero WH セットアップ - Qiita](https://qiita.com/ngyoi/items/e1ba06ec52feec820928)
[Raspberry Pi Zero WHの環境構築(Mac PC) - Hatena Blog](https://ushinji.hatenablog.com/entry/2019/08/12/231226)