RaspberryPi3とRaspbianのセットアップをしてみた。


![4P8A8996.JPG](https://qiita-image-store.s3.amazonaws.com/0/35303/e3965f71-041d-26f3-0779-c811b1c0fdf5.jpeg)

GWでRaspberryPi3をつかって遊んだのでそのインストレーションガイドを作成しました。お役立て下さい。

# ハードウェアで必要なもの

- Raspberry Pi 3 model B
	- 言わずもがなです。
- PC
	- 今回はMacbookPro(MBP) 13inch Early2015・OS X El Capitan(10.11.3)を用意しました。Macであればこの文書の方法は使えるのでMacbookAirでもなんでもいいです。
- MicroSD
	- 8GB以上あればいいです。
	- 今回は余裕を持って Trancend Premium 400x 32GB(SDHC Class10) を利用しています。
- SDカードリーダー
	- MicroSDにイメージを書き込むために必要です。
	- MBPの場合は本体にSDカードリーダーが付いているのでSDカード変換アダプタ経由で利用することができるので、別途で用意しなくても大丈夫です。
	- 今回は別途でLOASの`CRW-12M36BK`が手元にあったのでこれを利用しています。
- USB充電器とMicroUSBケーブル
	- RaspberryPiに給電するために必要です。
	- 今回は5V 2.1Aのものを使用しています。
- ディスプレイとHDMIケーブル
	- RaspberryPiに接続する画面です。
	- HDMIポートがあるテレビがある場合はそれで代用できますが、上下左右数ピクセルが切れてしまう可能性があるので注意して下さい
- USBキーボード・マウス
	- キーボードは必須です。日本語キーボードでも大丈夫ですが、今回はHHKB（USキーボード）を利用しています。キーボードレイアウトの設定は今回の記事に書いているので安心して下さい。
	- マウスはGUIでいじるときに必要になります。今回は必要無いように書きますが、あると便利かもしれません。
	- なお、Lenovoから出ている、トラックポイント付きキーボード`SK-8855`を持っていたので試した所、キーボードもマウスも使えることがわかりました。
- ネットワーク環境
	- 有線LANが確保出来る場合は一番楽です。イーサーネットケーブルも必要になるので確保して下さい。
	- 無線LANしか確保出来ない場合も、Raspberry Pi3であれば無線LAN接続できるので大丈夫です。

# Rasbian(OS)をダウンロード

公式サイトからRasbianをダウンロードします。

[Download Raspbian for Raspberry Pi](https://www.raspberrypi.org/downloads/raspbian/)

今回は`RASPBIAN JESSIE`のversion`March 2016`を選択しました。デスクトップが要らない、最小限の構成で組みたい人は`RASPBIAN JESSIE LITE`を選択して下さい。

`Download Torrent` `Download Zip`のどちらかでイメージを落として下さい。なお、`Download Zip`はhttp経由でダウンロードすることになりますが、滅茶苦茶遅かったので、Torrentで落とすことをおすすめします。

RaspberryPiには他にもWindows10 IoTやUbuntuの[イメージもあります。](https://www.raspberrypi.org/downloads/)

# MicroSDをフォーマットする

書き込むMicroSDをフォーマットします。ディスクユーティリティを開いたらMicroSDが接続されてる外部ディスクを選択し、「消去」をクリックして下さい。

![スクリーンショット 2016-05-05 11.52.58.png](https://qiita-image-store.s3.amazonaws.com/0/35303/c22d4ff1-c519-8596-87df-63e0d19cc6d2.png)

フォーマットを`MS-DOS(FAT)`、方式を`マスター・ブート・レコード`にして消去します。

![スクリーンショット 2016-05-05 11.53.11.png](https://qiita-image-store.s3.amazonaws.com/0/35303/d202de51-632c-336c-1f8c-7e203637e7af.png)

# MicroSDにRasbianイメージを書き込む

## デバイス名を確認する

### ディスクユーティリティを使う場合

先のディスクユーティリティの操作のままやる場合は、先ほどのウィンドウ右下に`装置`と書いてあるところの`disk4`とかいてあるのを調べます。`disk4` であれば`/dev/disk4`をメモっておきます。

### ターミナルを使う場合

ターミナルの場合は`diskutil list` で書き込むMicroSDのデバイスを確認します。容量が32GBであることはわかっているので、それを頼りに探します。

```
$ 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_CoreStorage Macintosh HD            250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +249.8 GB   disk1
                                 Logical Volume on disk0s2
                                 96BDA3EA-C7C8-418F-9498-1B119D6D8E86
                                 Unencrypted
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *32.2 GB    disk4
   1:                 DOS_FAT_32                         32.2 GB    disk4s1
```

## アンマウントし、イメージを書き込む

デバイス名（この場合は`/dev/disk4`）がわかれば、一旦アンマウントします。

```
$ diskutil unmountDisk /dev/disk4
Unmount of all volumes on disk4 was successful
```

アンマウントしたら`dd`コマンドでRaspbianイメージを書き込みます。この操作は5-20分くらいかかったりします。パスワードが要求されます。基本的にはいまログインしているユーザーのパスワードを入力しましょう。

```
$ sudo dd bs=1m if=/Users/admin/Downloads/2016-03-18-raspbian-jessie.img of=/dev/disk4
Password:
3847+0 records in
3847+0 records out
4033871872 bytes transferred in 511.636614 secs (7884252 bytes/sec)
```

# RaspberryPiを起動する

## 各種ケーブルの接続等を行う

先ほどイメージを書き込んだMicroSDを挿入します。RaspberryPiの裏面にカードスロットがあります。

![4P8A8986.JPG](https://qiita-image-store.s3.amazonaws.com/0/35303/86416a43-1f83-2223-7e44-81c6b29575ca.jpeg)

有線LANケーブル、USBキーボードを取り付けます。今回はHHKBを取り付けました。**有線LANがなく、無線LANしかない環境の場合は有線LANを取り付けなくても良いです。**

![4P8A8988.JPG](https://qiita-image-store.s3.amazonaws.com/0/35303/5daa1e1b-be61-dc60-4858-5604573cddc0.jpeg)

HDMIケーブルを取り付けます。PCのディスプレイまたはテレビ等に接続して下さい。ディスプレイがない場合は調達して下さい。（シリアルコンソールケーブルで通信する方法はありますが、今回は解説しません。ケーブルが無いので。）

![4P8A8989.JPG](https://qiita-image-store.s3.amazonaws.com/0/35303/cc398ec5-00e9-37c4-1c64-d7cea8080b76.jpeg)


## 電源を入れ、ログインする

HDMIポートの隣りにあるMicroUSBポートが電源ポートになっています。USB充電器を用意し、RaspberryPiと接続します。接続すると自動的に電源が入ります。

![4P8A8990.JPG](https://qiita-image-store.s3.amazonaws.com/0/35303/838d552f-bfda-c96a-9151-cdababb3bf6d.jpeg)

![4P8A8993.JPG](https://qiita-image-store.s3.amazonaws.com/0/35303/b61bc474-3748-687c-9c30-a368635727d9.jpeg)


電源が入って暫く経つと、デスクトップ画面が表示されます。Ctrl+Alt+F1を押してCLIモードに切り替えてください。

`RASPBIAN JESSIE LITE`のイメージを選択した場合はCLIでログインが要求されるので以下の通り入力してログインして下さい。パスワードはタイプしても表示されません。

- user: pi
- password: raspberry

# 必ずやる初期設定を行う

## ストレージ領域を広げる

イメージが書き込まれたばかりの状態のストレージのパーティション領域は最低限しか確保されてません。この状態で`apt-get upgrade`等を行うと、OSが壊れてデスクトップが表示されなくなったりします。なのでMicroSDの容量いっぱいまでパーティションを広げます。まずは`raspi-config`を行いましょう。

```
pi@raspberrypi:~ $ sudo raspi-config 
```

するとこんな画面が表示されます。(画面は説明用にSSHで接続してキャプチャしたので色味とか若干変わります。周りが真っ青な感じです。)

![スクリーンショット 2016-05-05 12.56.23.png](https://qiita-image-store.s3.amazonaws.com/0/35303/f2de472a-0300-79cf-ef59-f3293149e9fb.png)


これが表示されたら、`1 Expand Filesystem` を選択し、Enterを押下します。うまく行けばこんな感じの画面が表示されるのでEnterを押下しましょう。

![スクリーンショット 2016-05-05 12.59.25.png](https://qiita-image-store.s3.amazonaws.com/0/35303/c01ad2d0-2848-fa19-ace9-f148e93826bf.png)

## キーボードレイアウトを変更する

Raspbianの標準キーボードレイアウトはUKになっています。RaspberryPiがイギリス発の製品なので仕方ないですね。なので標準では`|`とか打てなくて困ったりします。キーボードレイアウトを適切なモノに変更しましょう。今回はHHKB（HappyHackingKeyBord）を使っているのでそれに合わせます。

`raspi-config`のはじめの画面の`5 Internationalisation Options`を選択し、Enterを押下します。

![スクリーンショット 2016-05-05 13.02.30.png](https://qiita-image-store.s3.amazonaws.com/0/35303/15391c1a-7fad-635e-7261-09aa4232112b.png)

画面が変わって、次に`I3 Change Keyboard Layout`を押下します。

![スクリーンショット 2016-05-05 13.03.36.png](https://qiita-image-store.s3.amazonaws.com/0/35303/ab9079e4-479f-73eb-3d21-14b2975e4575.png)

キーボードのモデルを聞かれるので、今回に合わせて`Happy Hacking Keybord`を選択します。

![スクリーンショット 2016-05-05 13.04.29.png](https://qiita-image-store.s3.amazonaws.com/0/35303/67a3ceb9-a052-1055-42dd-c7764db7a317.png)

次の画面で、キーボードのロケーションを聞かれます。今回はUSキーボードなので`English (US)`を選択します。

![スクリーンショット 2016-05-05 13.07.15.png](https://qiita-image-store.s3.amazonaws.com/0/35303/bf9b0562-e373-ac71-4397-10ae0eec301f.png)

次の画面で、オルタネートグラフィックキー (AltGr)の動作について聞かれます。気にせずDefaultを選択します。

![スクリーンショット 2016-05-05 13.09.01.png](https://qiita-image-store.s3.amazonaws.com/0/35303/0d35eebf-ca29-58cc-ceb6-e30033274a9a.png)

次の画面でコンポーズキー (Compose Key)の動作について聞かれます。気にせずDefaultを選択します。

![スクリーンショット 2016-05-05 13.09.12.png](https://qiita-image-store.s3.amazonaws.com/0/35303/72cc0962-4071-ccca-93f3-27b26ee4045b.png)


次の画面で Ctrl+Alt+BSでX ServerをTerminateするか聞かれるのでYesを選択します。

![スクリーンショット 2016-05-05 13.09.17.png](https://qiita-image-store.s3.amazonaws.com/0/35303/f2dd29c3-d585-a86a-801d-fcf669784078.png)

これでキーボードレイアウト設定は完了です。

## リブートする

パーティション設定をしたのでリブートしてパーティションの状態を最新化します。

`raspi-config` の最初の画面で`→`キーを押してFinishを選択します。

![スクリーンショット 2016-05-05 13.14.28.png](https://qiita-image-store.s3.amazonaws.com/0/35303/ffab568c-c852-b0af-a480-b4e28810df8b.png)

リブートするか聞かれるので、Yesを選択します

![スクリーンショット 2016-05-05 13.16.43.png](https://qiita-image-store.s3.amazonaws.com/0/35303/d3a1aaf6-93bf-31d7-c50c-91de9c5799c6.png)

するとリブートします。

## CLIでの無線LANの設定

[公式](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md)

デスクトップからの無線LANの設定は多分みなさん簡単にわかるので、CLIからの設定を解説します。

まず、`ifocnfig`でネットワークインターフェイスを確認します。

```
pi@raspberrypi:~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:10.136.177.7  Bcast:10.136.179.255  Mask:255.255.252.0
          inet6 addr: fe80::97f6:7f6:7264:aeba/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:134 errors:0 dropped:0 overruns:0 frame:0
          TX packets:131 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12718 (12.4 KiB)  TX bytes:17680 (17.2 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:200 errors:0 dropped:0 overruns:0 frame:0
          TX packets:200 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:16656 (16.2 KiB)  TX bytes:16656 (16.2 KiB)

wlan0     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet6 addr: fe80::ba27:ebff:fe14:94a8/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:75 errors:0 dropped:75 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:36692 (35.8 KiB)  TX bytes:4931 (4.8 KiB)
```

`wlan0`が無線LAN（WirelessLAN）ですね。多分どこかにあるであろう命名規則でそう決められてるのかもしれません（ソースがすぐには見つからなかったので割愛）。実際そうなので、インターフェイス名は`wlan0`と判断します。

インターフェイス名がわかれば無線LANをスキャンしましょう。

```
pi@raspberrypi:~ $ sudo iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: xx:xx:xx:xx:xx:xx
                    Channel:4
                    Frequency:2.427 GHz (Channel 4)
                    Quality=70/70  Signal level=-38 dBm  
                    Encryption key:on
                    ESSID:"SSIDhoge0"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                              18 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=0000000000000000
                    Extra: Last beacon: 80ms ago
                    IE: Unknown: 000C69636869695F656C655F3267
                    IE: Unknown: 010882848B961224486C
                    IE: Unknown: 030104
                    IE: Unknown: 2A0104
                    IE: Unknown: 32040C183060
                    IE: Unknown: 2D1AEE1117FFFF000001000000000000000000000000000000000000
                    IE: Unknown: 3D1604000000000000000000000000000000000000000000
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                       Preauthentication Supported
                    IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
                    IE: Unknown: 0B05000000127A
                    IE: Unknown: 4A0E14000A002C01C800140005001900
                    IE: Unknown: DD07000C4300000000
                    IE: Unknown: 07064A5020010D10
                    IE: Unknown: DD900050F204104A0001101044000102103B000103104700102880288028801880A8803495DB136A861021001852616C696E6B20546563686E6F6C6F67792C20436F72702E1023000F534B55313139303320526F75746572102400065254323836301042000831323334353637381054000800060050F204000110110009534B55313139303320100800020084103C000101
          Cell 02 - Address: xx:xx:xx:xx:xx:xx
                    Channel:5
                    Frequency:2.432 GHz (Channel 5)
                    Quality=48/70  Signal level=-62 dBm  
                    Encryption key:on
                    ESSID:"SSIDhoge1"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                              18 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=0000000000000000
                    Extra: Last beacon: 80ms ago
                    IE: Unknown: 000C303031443733333642453943
                    IE: Unknown: 010882848B961224486C
                    IE: Unknown: 030105
                    IE: Unknown: 32040C183060
                    IE: Unknown: 33082001020304050607
                    IE: Unknown: 33082105060708090A0B
                    IE: Unknown: DD270050F204104A0001101044000102104700109645515A98DF11DB878513782A500432103C000101
                    IE: Unknown: 050400010002
                    IE: Unknown: 2A0100
                    IE: Unknown: 2D1A6E100FFFFF000001000000000000000000000000000000000000
                    IE: Unknown: 3D1605050600000000000000000000000000000000000000
                    IE: Unknown: 7F0101
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
                    IE: Unknown: 0B0503001D127A
                    IE: Unknown: DD1E00904C336E100FFFFF000001000000000000000000000000000000000000
                    IE: Unknown: DD1A00904C3405050600000000000000000000000000000000000000
                    IE: Unknown: DD07000C4300000000
                    IE: Unknown: DD09000740010109000000
```

それぞれのAPのESSIDをみて、接続したいAPのESSIDがあるかチェックしましょう。なければ接続できないので…

接続したいAPがあることを確認したら、テキストエディタで接続情報を記録します。今回はviを使いましょう。

```
pi@raspberrypi:~ $ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf 
```

ファイルの中身が表示されます。何か書かれている場合も一緒で、末尾に次のように追記していきましょう。

```
network={
    ssid="接続したいAPのESSID"
    psk="接続したいAPのパスワード"
}
```

追記が完了して、少し待ってから`ifconfig`してみて、`wlan0`にIPアドレスが割り当ててあれば接続完了です。

```
pi@raspberrypi:~ $ ifconfig 
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx 
          inet addr:10.136.177.7  Bcast:10.136.179.255  Mask:255.255.252.0
          inet6 addr: fe80::97f6:7f6:7264:aeba/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1503 errors:0 dropped:0 overruns:0 frame:0
          TX packets:854 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:124416 (121.5 KiB)  TX bytes:135596 (132.4 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:200 errors:0 dropped:0 overruns:0 frame:0
          TX packets:200 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:16656 (16.2 KiB)  TX bytes:16656 (16.2 KiB)

wlan0     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:192.168.2.107  Bcast:192.168.2.255  Mask:255.255.255.0 ←ここがあれば成功
          inet6 addr: fe80::ba27:ebff:fe14:94a8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:406 errors:0 dropped:401 overruns:0 frame:0
          TX packets:54 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:196069 (191.4 KiB)  TX bytes:11576 (11.3 KiB)
```

もし、2,3分立ってもIPアドレスが割り当てられなかったら、インターフェイスを一旦再起動します。

```
pi@raspberrypi:~ $ sudo ifdown wlan0
pi@raspberrypi:~ $ sudo ifup wlan0
```

これで待ってもダメなら再起動します。

```
pi@raspberrypi:~ $ sudo reboot
```

これでもダメならまたScanしてちゃんと無線LANが飛んでいるか・認証情報が間違ってないか確認して下さい。

# おわりに

みなさん、無事インストレーション出来ましたでしょうか？ここからRaspberryPiで遊ぶスタート地点です。ここからセンサーやアクチュエータを接続してぜひ遊んで下さい。

ところで、センサーやアクチュエータの接続って難しいですよね。実際部品を選んで、コードとかブレッドボード買ってきてチクチク刺したりめんどくさいですよね。

そんなあなたに、素晴らしいキットがあります。[GrovePi+ スターターキット](http://akizukidenshi.com/catalog/g/gK-09168/)です。

![4P8A8997.JPG](https://qiita-image-store.s3.amazonaws.com/0/35303/03eeffde-2818-913c-b5c3-3c03be97db63.jpeg)

こんな感じにセンサーやLEDなどを簡単に接続してPython等の様々な言語から簡単にコントロールすることができます。興味のある方はぜひやってみてください。暇があればGrovePiの記事も書いてみようかと思います。

それでは良いRaspberryPiライフを！