RaspberryPi3 model BをMacbookAirでsetup、SSH接続、VNC接続

#目的
RaspberryPiを使用する為にHDMIケーブル、モニター、キーボード、マウスを専用で用意するのではなく、手持ちのMacbookAirのみでセットアップ、SSH接続、VNC接続で操作できないかと思い、実際に行なって手順を書き出してみました。
また、機器の接続には基本的に有線接続を使用しています。

今回、私の実際の作業を元に書いた為、環境等により内容が異なる部分があるかもしれませんが、何卒ご容赦下さいますようお願いします。
また、諸々について初心者の為、内容に誤り等あればご指摘下さい。


#1. 準備
1. RaspberryPi 3 model B
2. microUSBケーブル + アダプタ(5V,2.5A)
3. microSD 16GB(SDHC class10)
4. microSD Reader
5. RaspberryPi 3用のヒートシンク付きケース
6. USB - LANアダプタ
7. LANケーブル
8. MacBook Air(macOS Sierra)

※ 1〜7はAmazonで購入。8は所有していた物をを使用。
※ 最初「HDMI端子がある」という認識から[Thunderbolt - HDMI]の変換ケーブルも買ってしまいました。しかし、MacBookAirのThunderbolt端子は出力の為、これではRaspberryPi(本体)からMac(モニター)への出力はできないという事と、そもそも接続の方法が目的と異なる為、後から6と7を買いました。勿体無いことした。
※RaspberryPiのインターネット接続は、MacからiPhoneのテザリング(USB接続)を利用して、インターネット共有を使用して接続しています。


#2.　セットアップ前半
microSDへRaspbianの書き込みを行い、SSHを有効にします。

1. RaspberryPiのOS「Raspbian Strech With Desktop」のzipファイルを[こちらから]    (https://www.raspberrypi.org/downloads/raspbian/)ダウンロード。
本来unzipとかでzipを展開するようでしたが、私のMacではダウンロード後に自動で展開されました。
偶然そのような設定になっていただけかもしれませんので必要に応じて展開等行ってください。
<br/>

2. 適当なディレクトリにzipを展開したimgファイルを置いて、Terminalでファイルの場所まで移動します。
<br/>

3. microSDをMacに取り付け、Macのディスクユーティリティを起動してmicroSDを選択 、消去ボタンで消去します。消去の際に、「名前」はRASPBERRY PI3、「フォーマット」はMS-DOS(FAT)を指定。
<br/>

4. microSDのパスを確認します。Terminalに
`$ diskutil list`
と入力。私の場合は/dev/disk2でした。
※パスの確認を間違えないようにしてください。間違えると大変です。
<br/>

5. ディスクユーティリティでmicroSDを選択、マウント解除ボタンでマウントを解除します。
<br/>

6. microSDにRaspbianを書き込みます。Terminalにsudoによる管理者権限で
`$ sudo dd bs=1m if=2018-03-13-raspbian-stretch.img of=/dev/rdisk2`
と入力。上記で確認したmicroSDのパスの「/dev/disk2」を「/dev/rdisk2」とする事で、書き込みが高速になるようです。5分程で書き込み完了しました。
※パスの指定を間違えないようにしてください。間違えると大変です。
<br/>

7. RaspberryPi3はデフォルトでSSHが無効になっているようなので、RaspberryPiの/bootに空のSSHファイルを作成する事でSSHを有効にしました。Terminalに
`$ touch /Volumes/boot/ssh`
と入力して作成します。

#3.　セットアップ後半
MacとRaspberryPiを接続、インターネット共有、SSH接続、VNC接続を行います。

1. Macをインターネットに接続した状態にします。今回はiPhoneのテザリング(USB接続)を利用して、インターネット接続しています。
<br/>

2. RaspberryPiにmicroSDを取り付けます。続いて、MacのUSB - LANアダプタ - LANケーブル - RaspberryPiと接続します。電源が入ると基盤の赤いランプが点灯、緑のランプが点滅して起動しました。
<br/>

3. RaspberryPiをMacのインターネット共有を使用してインターネットに接続します。まず、Macの「システム環境設定」の「共有」画面から下記のチェックを行います。
    1. 「コンピューター名」がインターネットに接続しているMacの名前である。
    2. 「共有する接続機器」が「iPhone USB」である。
    3. 「相手のコンピュータでのポート」は今回RaspberryPiと接続しているポートのLANアダプタの項目にチェックを入れます。今回私が使用したのはELECOM EDC-FUA2でした。LANアダプタのドライバをインストールすると項目に「USB Ethernet」が表示されたので「USB Ethernet」にチェックを入れました。
    4. 「インターネット共有」にチェックを入れる。
    5. 「インターネット共有機能を開始してもよろしいですか？」と聞かれるので「開始」を選択。　　
 
4. RaspberryPiのIPアドレスを確認する為、brewでarp-scanをインストールします。Terminalに
`$ brew install arp-scan`
と入力して実行。
<br/>

5. RaspberryPIが接続されているネットワークアダプタを確認します。Terminalから
`$ ifconfig`
と入力して実行。
今回の私の環境では「bridge100」でした。
<br/>

6. RaspberryPiのIPアドレスを確認します。Terminalにsudoによる管理者権限で
 `$ sudo arp-scan -l --interface bridge100`
と入力して実行。
例).192.168.2.2 ~~~ Raspberry Pi Fondation
等と表示されます。IPアドレスは環境に応じて異なります。
<br/>

7. SSH接続します。Terminalで
`$ ssh pi@192.168.2.2`
と入力して実行。尚、パスワードは初期値で「raspberry」でした。
`pi@raspberrypi:~ $`
と表示されれば接続完了です。
<br/>

8. VNCをインストールします。Terminalにsudoによる管理者権限で
`pi@raspberrypi:~ $ sudo apt-get install tightvncserver`
と入力。
インストールが完了したらパスワードを設定します。
`pi@raspberrypi:~ $ vncserver`
と入力して、パスワードを決めて入力します。
すると
`Would you like to enter a view-only password (y/n)?`
と表示されます。これは表示のみで操作できないモードのパスワードの設定なのでnとしました。
さらに
`New 'X' desktop is rapberrypi:1`
と表示されました。これでvnc接続する際のRaspberryPi側の受付ポート番号は5901となります。（ポート番号：5900 + ディスプレイ番号1）
<br/>

9. MacからVNC接続を行います。
事前にポートが接続できる状態か確認しておきます。
`pi@raspberrypi:~ $ netstat -nlt`
でポート番号5901のStateがLISTENになっていれば接続できる状態です。
Macの標準機能でVNC接続を行います。
[Finder]-[移動]-[サーバへ接続]を選択して、「サーバアドレス」に
`vnc://192.168.2.2:5901`
と入力して、「接続」ボタンで接続。パスワードを入力するとGUI操作ができるようになりました。
<br/>

10. 補足となりますが、VNC接続した際に
    SSH is enabled the default password for the 'pi' user has not been changed.
    This is a security risk - prease login as the 'pi' user and run  Raspberry Pi Configuration to set a new password.
と表示されたので、
`pi@raspberrypi:~ $ passwd`
でパスワードを変更しました。

以上となります。
次回は、この環境からiPhoneのテザリング(wi-fi)を利用して、iPhoneからRaspberryPiへ直接VNCできる環境の手順を書き出してみます。

今後、RaspberryPiを利用してDeepLearningを行いたいと思います。