MacでRaspberryPi入門

よくRaspberryPi(以下ラズパイ)のセットアップをするけど、その度に調べるのも馬鹿らしくなってたので備忘録としてここに残します。

# 1. OSのダウンロードから

[ここ](https://www.raspberrypi.org/downloads/)からダウンロードしていきます。
ダウンロードできる種類は2つ

- [NOOBS](https://www.raspberrypi.org/downloads/noobs/)
- [Raspbian](https://www.raspberrypi.org/downloads/raspbian/)

NOOBSは色々なOSがインストール時に選べますが、基本的にRaspbian一択になるので今回はRaspbianをインストールする手順を示します。

ダウンロードページ
![Raspbian.png](https://qiita-image-store.s3.amazonaws.com/0/202715/f82cd6ba-71fb-e01d-f3c4-3ed5568742cf.png)

左のDESKTOPは既に色々とインストール済みのOS
右のLITEは基本的なものだけしかインストールされていないOS
結局アップデートする際に色々とダウンロードするので、ここは潔くDESKTOPの方をダウンロードを選択。

5GB程度のサイズなので１時間程度掛かります。気長に待ちます。

# 2. microSDカードに書き込み

OSのダウンロードが済んだら、早速microSDカードに書き込み
用意するmicroSDカードは最低でも8GBを準備しましょう。正直8GBでもカツカツですが...
書き込む前にフォーマットをしなければなりません。~~いつもここでどうするか調べてしまう~~
ディスクユーティリティで「消去」→「フォーマット(MS-DOS)」で済みますが、ここはカッコよくターミナルからやっていきます。

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

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +500.1 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Main_Memory             189.8 GB   disk1s1
   2:                APFS Volume Preboot                 21.2 MB    disk1s2
   3:                APFS Volume Recovery                520.8 MB   disk1s3
   4:                APFS Volume VM                      3.2 GB     disk1s4

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *16.0 GB    disk2
   1:                 DOS_FAT_32 ELECOM USB              16.0 GB    disk2s1
```

手元にmicroSDがなかったのでUSBメモリに代役になってもらいましたが、メモリを接続した状態で`diskutil list`を実行すると、`/dev/disk2`にマウントされていることが確認できます。(他に接続されているメモリがあると、disk2ではない可能性があるためきちんと確認しましょう)


確認が済んだら、次はフォーマットです。
**なおこの作業で指定先を間違えるとパソコンのデータが全部消える可能性があるので確認は怠らないようにしましょう!**

```console
$ diskutil unMountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
$ diskutil eraseDisk MS-DOS [デバイス名] /dev/disk2
```
この操作でフォーマットが完了していると思います。
ddコマンドはマウントされていると出来ないので再度アンマウントし、いよいよ書き込みをします。

```console
$ diskutil unMountDisk /dev/disk2
$ sudo dd if=/Users/[ユーザ名]/Downloads/2017-09-07-raspbian-stretch.img of=/dev/rdisk2 bs=1m
```

ここで重要なのがdiskではなくrdiskである点です。
なぜかは分かりませんが、書き込みスピードが上がるそうです。
また、末尾に`bs=1m`とすることで更に上がります。やって損はないでしょうから忘れずに書きましょう。

実行中は特に何も表示されないので、進捗を確認したかったら`Ctrl + T`で確認できます。

書き込みが完了したら、ラズパイにHDMIケーブルでモニターと繋いでmicroSDカードをセットして電源を入れてみましょう。
起動画面が確認できたら、インストールの完了です！

## バックアップ方法

```console
$ sudo dd if=/dev/disk2 of=~/バックアップ名.img
```

いつデータが飛ぶかわからないのでこまめなバックアップは重要です。
Linuxにはddコマンドというものがあってこれでバックアップを作ります。


# 3. 不要なソフトウェアをアンインストール！

デフォルトの状態だと、使わないであろうOfficeソフトやよくわからないソフトがあります。しかもこれらがメモリをかなり圧迫していて邪魔で仕方がありません。
ですのでこれらをアンインストールしてデータ容量に余裕を持たせようと思います。

ではラズパイの画面の上部にあるターミナルを起動しましょう！

```console
$ sudo apt-get purge wolfram-engine
$ sudo apt-get purge sonic-pi
$ sudo apt-get purge scratch*
$ sudo apt-get purge libreoffice*
$ sudo apt-get clean
$ sudo apt-get autoremove
```

この作業で1GB程度ディスク容量が増えると思います。
あと各個人の作業環境に合わせていらないと思ったソフトウェアをアンインストールしちゃいましょう！
もし間違えてアンインストールしてしまったら`sudo apt-get install [ソフトウェア]`で再度インストールできます。

これらの作業が終わったらアップデート、アップグレード！

```console
$ sudo apt-get update
$ sudo apt-get upgrade
```

これでセットアップは完了です！

# 4. ssh接続でMacから操作

せっかくMacがあるので、Macからリモートで操作していきます~~一々ディスプレイを用意するのが面倒~~
お馴染みラズパイのコンソールから始めます。

```console
$ sudo raspi-config
```
![raspi-config.png](https://qiita-image-store.s3.amazonaws.com/0/202715/71426f5d-6b52-e662-4050-580a836e2d89.png)

上記のコマンドを入力すると上の画像のような画面になります。
この中の`7 Interfacing Options`を選びます。

<img width="553" alt="InterfacingOption.png" src="https://qiita-image-store.s3.amazonaws.com/0/202715/42ac36f1-75f1-11be-eff4-d0b48590db37.png">

更にその中の`P2 SSH`を選択しEnable、つまりsshを許可します。
これでssh接続が可能になりました。

# 5. IPアドレス固定化

ssh接続が可能になったからと言って、毎日ラズパイのIPアドレスを調べるのは馬鹿げてます。
ですのでここはIPアドレスを固定し、いつも同じコマンドでアクセスできるようにします。
この作業をする前にラズパイの右上の無線アイコンからWi-Fiを登録しときます。

前回と同様にコンソールから以下のコマンドを実行します。色々と出てきますが`wlan0`の`inet`と`netmask`に注目。

```console
$ ifconfig
.
.
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.15  netmask 255.255.255.0  broadcast 192.168.11.255
.
.
```
今回の結果ですと、

- inet : 192.168.11.15
- netmask : 255.255.255.0

となっています。

inetはそのままIPアドレスで、netmaskはネットワークアドレスがどこからどこまでなのかを示す指標です。netmaskを2進数に直し1となっている範囲がネットワークアドレスです。
このnetmaskよりネットワークアドレスが192.168.11.0であることがわかります。
ネットワークアドレスより下のビットが今回自由に使えるアドレスだと思ってください。

では固定化していきます。

```console
$ sudo vi /etc/dhcpcd.conf
```
上記のコマンドでファイルがコンソール上に展開されます。そのファイルの末尾に以下の記述を追加してください。アドレス等の具体的な値については各個人の環境によって変更してください。今回は固定するアドレスを`192.168.11.10`としています。

```
interface wlan0
static ip_address=192.168.11.10
static routers=192.168.11.1
static domain_name_servers=192.168.11.1
```
記述後、`Ctrl + X` + `y + Enter`で書き込み完了です。
ラズパイを再起動するとアドレスが固定化できていることが確認できます。

Macのターミナルから

```console
$ ssh pi@192.168.11.10
```

でリモートでアクセスできるようになりました。