Raspberry Pi 3を購入してからMacでssh接続するまでの道のり

# 突然ですが
Raspberry Pi3を購入してみました。
ラズパイにSORACOMをつなげて、AWS IoTを入れてみて色々やってみようというのがきっかけ。
その思いつきで購入してから準備が完了するまでの道のり記載してみます。

# 前提
* 色々設定済みのラズパイもありますが、素のRaspberry Pi3とOSインストール済みのSDカードを購入
    * [Raspberry Pi3 Model B ボード＆ケースセット (Element14版, Clear)](https://www.amazon.co.jp/gp/product/B01CSFZ4JG/ref=oh_aui_detailpage_o08_s00?ie=UTF8&psc=1)
    * [Raspberry Piスターターパック(Economy)](https://www.amazon.co.jp/Physical-Computing-Lab-Raspberry-Pi%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%91%E3%83%83%E3%82%AF/dp/B01NAKR4KU/ref=sr_1_2?ie=UTF8&qid=1483112272&sr=8-2&keywords=Raspberry+Pi%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%91%E3%83%83%E3%82%AF)
* 自宅には有線のキーボードやマウス、ましてやモニタもない状態からのスタート
* 自宅のネットワーク環境はポケットWifiのみ

# 自宅PCと何とか接続を試みる
本当に道のりが長かったので下記に項目別で記載してみます

## 本当に何も用意せずにやってみる
周辺機器が一切ないですが、自宅PC(Mac)でsshで接続すれば良いよねーと思い、色々と試してみました。
しかし、それが前途多難。。。そもそも周辺機器を揃えてからのssh接続という記事が多く＞＜
下記の記事は試してみましたが、ネットワークの設定の問題かうまくいかず。。。
> [Raspberry Piをモニタ等無しでMacから使えるようにする方法](http://labs.torques.jp/2014/08/17/3684/)

## モニタだけ買ってやってみる
とりあえず、モニタ繋げれば、ラズパイ3は無線LAN、Bluetoothを使えるのでとりあえずモニタを買ってみよう。
> [Elecrow3.5インチタッチパネル タッチスクリーンディスプレイ](https://www.amazon.co.jp/gp/product/B01LXM8NL4/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1)

これで何とかなると思い、いざモニタを接続してみることに！そしたら下記のような状態に。。。
![IMG_2209.JPG](https://qiita-image-store.s3.amazonaws.com/0/71637/299587a3-14ab-e405-fa64-5db2c99d3641.jpeg)

どうやらこのモニタを接続するだけでは使えず、設定が必要らしい。ということは周辺機器がなくてはダメかorz
自宅にはモニタもないので、とりあえず実家に帰省したタイミングでモニタ接続することを前提に準備を進める

# 周辺機器の用意
せっかく無線LAN、Bluetoothを接続できるので、最低限のものを用意することに。

* HDMI端子
* Bluetoothキーボード
* 有線マウス (モニタ接続しても諸々の設定は、マウス操作が必要そうなため)

とりあえずここまでくれば後は、接続していけば良さそうな予感。
![raspberrypi42_img12.png](https://qiita-image-store.s3.amazonaws.com/0/71637/bef3d1b9-7157-3e7c-a0de-8ff1774033d5.png)
しかし、なぜか上記のようにBluetoothアイコンが出てこない。もしかして購入したSDカードのせい？
というわけで、SDカードのセットアップから再度実施してみることにしました。。
マジで道のりが長い＞＜

# Raspbianの準備
今回は最新のRaspbian(Raspbian Jessie)を使用します。
> [Download Raspbian for Raspberry Pi](https://www.raspberrypi.org/downloads/raspbian/)

## 手順
* Raspbian Jessie(最新の2016-11-25)をDL
* SDカードをフォーマットするために[SD Card Formatter](https://www.sdcard.org/jp/downloads/formatter_4/)をインストール
    * SDカードをPCに接続
    * SD Card Formatterを起動
    * 画面に記載の通りやっていくだけ(数クリックで完了します)
* SDカードへの書き込みのために[Etcher](https://etcher.io/)をインストール
    * Etcherを起動
    * 上記でDLしたRaspbianを選択 (zipのままでOK)
    * SDカードを選択
    * Flashボタンをタップ
    <img width="800" alt="スクリーンショット 2016-12-31 2.49.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/71637/df22b11e-09cd-55fe-479a-d1a64769e48c.png">

    * 下記のようになったら完了
    <img width="799" alt="スクリーンショット 2016-12-31 2.54.49.png" src="https://qiita-image-store.s3.amazonaws.com/0/71637/4723975d-063b-74c6-7908-16e8016939ad.png">
* これで一通りの準備が完了なので、後は周辺機器との接続に移ります

# 周辺機器との接続
* TV <-> HDMI端子 <-> Raspberry Pi3
* 有線マウス(USB) <-> Raspberry Pi3
* 電源アダプタ <-> Raspberry Pi3
![IMG_6413.JPG](https://qiita-image-store.s3.amazonaws.com/0/71637/a23cb639-8c0e-c3bb-c1d7-6cf0e74a734b.jpeg)

## Bluetoothキーボードの接続
1. BluetoothキーボードをONにする
2. 右上のBluetoothアイコンをクリックし、「Add Device...」を選択。対象のキーボードを選ぶ。
![IMG_0070.JPG](https://qiita-image-store.s3.amazonaws.com/0/71637/e0c2cb9d-f104-5768-2687-a88ea3a79a64.jpeg)

3. コードを打てとあるので、キーボードで対象のコード打つ。
![IMG_1631.JPG](https://qiita-image-store.s3.amazonaws.com/0/71637/fada0779-fbc3-8f99-0a71-2b302f0a9ed8.jpeg)

4. 下記のように表示されれば成功！！
![IMG_5489.JPG](https://qiita-image-store.s3.amazonaws.com/0/71637/f11ce832-9051-0fcf-a361-18f31480745a.jpeg)


## Wifiの接続
右上の無線LANアイコンをクリックして、接続するWifiを選択。必要であればパスワードを入力
![IMG_4956.JPG](https://qiita-image-store.s3.amazonaws.com/0/71637/1c4a5aa4-4923-5378-2608-fb0d14c662e6.jpeg)

ここまでで、最低限のセットアップは完了！！ようやくたどりついた＞＜

# ラズパイのその他の設定
上記まででラズパイはある程度使えると思うのですが、自宅PCからssh接続したら日本語表示にしておくなどのちょっとした設定をしておく。
左上のラズパイアイコンをクリックして、「Preference -> Raspberry Pi Configuration」を選択Raspi-configを起動します
![IMG_3855.JPG](https://qiita-image-store.s3.amazonaws.com/0/71637/2a9bb061-ffe1-fd35-c81f-5d66a71f94f1.jpeg)

注意点としては、下記の3つの設定が完了してからrebootすること。なんか途中でやると文字化けすることがあるらしい＞＜

## System
* systemのExpand FilesystemをクリックしてOKを押す。これでSDカードの全容量を有効に使えます。最新のRaspbianだと起動時に自動で実行されているかもしれませんが念のため実行しておくようにした。
* ホスト名は好きな名前をつけておく
* パスワードも変更しておく (初期設定は「raspberry」になっている)
![IMG_7094.JPG](https://qiita-image-store.s3.amazonaws.com/0/71637/9fbfad33-0159-7818-4923-54e379d3507f.jpeg)

## Interfaces
* SSH接続を許可
* Serial接続を許可
* VNC接続を許可 (画像ではDisabledになっていますが、使用する人はEnabledにしておく
![IMG_0835.JPG](https://qiita-image-store.s3.amazonaws.com/0/71637/d0c3e474-ffa1-c32c-d122-b5ab817d2b03.jpeg)

## Localisation
* LocaleをJapanにセット
* TimezoneもJapanにセット
* keyboardも下記のようにセットしておく
![IMG_2239.JPG](https://qiita-image-store.s3.amazonaws.com/0/71637/21214588-de60-11b8-a1fa-e029d01d3dc7.jpeg)

ここまできたらrebootしておく。そうすると、表示が日本語になっているはず。

# 自宅PCからssh接続する
* ターミナルを以下のいずれかで起動
    * 左上にある黒い四角のアイコンをクリックする
    * 左上のRaspberry Piアイコン -> アクセサリ -> LXTerminalの順にクリック
* ifconfigを実行。ここで「wlan0」の「inetアドレス」を覚えておく
* 自宅PCのターミナルから接続。

```
$ ssh pi@192.168.0.10
pi@192.168.0.10's password: 

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: Sat Dec 31 15:14:38 2016 from 192.168.0.11

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

pi@darmaso-raspberry:~ $ 
```

これでモニタやらキーボードやらマウスやらがなくても大丈夫！！長かった。。。

# ラズパイのソフトウエアセットアップ
ここも必要であればやっておくで良いかもしれません(参考のリンクより抜粋)

* 日本語環境セットアップ
* tightvncサーバのセットアップ
* エディタ（vim・gvim）インストール・設定

とりあえず、現状のソフトウエアを最新版にアップデートしておくため、下記を一度実行しておくと良さそうですね！

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

ここまでくれば、本来やりたかった、SORACOMと接続してAWS IoTを導入とかができそう！！
それはまた別の記事にまとめてみようと思いますmm

## 追伸:Raspbian(jessie)の固定IPアドレス設定
* 設定する内容

```
設定したいインターフェース名：eth0
IPアドレス：192.168.0.10
サブネットマスク：255.255.255.0　(24bit)
デフォルトゲートウェイ：192.168.0.1
DNSサーバ：192.168.0.1
```

* /etc/dhcpcd.confの下の方に下記を追記

```
$ sudo vi /etc/dhcpcd.conf
・・・・・
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
```

# 固定IPアドレスの設定
* dhcpcd.confにネットワーク情報を追記

```dhcpcd.conf
# 追記 (下記には適当な数値を入れる)
interface wlan0
static ip_address=192.168.XX.YYY/24
static routers=192.168.XX.1
static domain_name_servers=192.168.XX.1
```

* rebootして固定したIPアドレスでログインできるか試してみる

```
$ ssh pi@192.168.XX.YYY
$ ifconfig
・・・・・
　　　　inetアドレス:192.168.XX.YYY
```
※IPアドレスの払い出しがバッディングする可能性があるので要注意

# 参考
* [Raspberry Pi 3でRaspbian Jessieをセットアップする方法](http://karaage.hatenadiary.jp/entry/2016/04/03/080000)
* [Raspbian(jessie)の固定IPアドレス設定方法](http://xn--u9j0md1592aqmt715c.net/raspbian-ipaddress-config/)