Raspberry Pi2 model B インストール〜初期設定メモ with Mac [2016年版]




説明画像や行間の詳細解説が必要な場合は、こちらの<a href="http://www.meguroman.com/raspberry-pi-2-install-and-initial-setting/">引用元</a>をご覧ください。



Raspberry Pi2 model Bの開封から初期設定までのメモです。知人に見せたところ、Qiitaにアップしてといわれたので、挙げてみました。少しでも参考にして頂ければ嬉しいです。

## 事前準備

### 必要機材を揃える

- HDMI接続のディスプレイ  
  HDMI接続できる機器なら、TVでもプロジェクターでも何でもOKです。
- [microSDHCカード](http://www.amazon.co.jp/gp/product/B00BUL0210/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00BUL0210&linkCode=as2&tag=meiwafcoffici-22)  
  海外のサイトなども見ましたが、Transcendの上記カード16GBが一番実績ありました。
- [無線LAN USBアダプタ](http://www.amazon.co.jp/gp/product/B00ESA34GA/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00ESA34GA&linkCode=as2&tag=meiwafcoffici-22)  
  省電力で利用実績のあるPLANEXさんのものを選びました。
- 給電用のmicro USBケーブルとコンセントアダプタ  
  1A以上供給できるコンセント-USB変換アダプタが必要です。
- 基本的にキーボードだけでも操作できるようにできていますが、USBマウスもあるとGUIでのインストールや設定も楽に操作できそうです。
  


### OS(Raspbian)をmicro SDカードに焼く

公式サイトからNOOBSという簡単OSインストールツールをダウンロードしてきます。

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

あとはこれをダウンロード、解凍して、[MS-DOS（FAT）形式でフォーマット](http://syusyunote.com/mac-hdd-fat32-format/)されたmicroSDHCカードにコピペしてあげます。
（解凍したNOOBSフォルダの**中身**をコピーですので注意してくださいね。）

## Raspbianインストールと初期設定

事前準備が整ったら、いよいよRaspbianのインストールをしていきます。

### インストール (ネットワーク無し環境で）

まずはOS Raspbianをインストールして初期設定をしていきます。
無線LANの接続設定が完了するまではネットワーク接続無しの状態でインストールを進めていくことになります。

####インストール手順

- まずは、ラズパイ本体にキーボード、無線LAN USBアダプタ、NOOBSをコピーしたmicroSDHCカード、HDMI接続ディスプレイを接続し、**"最後に"電源のmicroUSBケーブルを接続します。**
- NOOBSが起動し、OSインストールを促されますので、Rasbianを選択して、「install」ボタンを押してOSインストールを開始します。
- しばらくたつと、`OS(es) installed`という表示でOSインストールが完了しますので、`OK`を押すと、自動的に再起動がはじまります。  

####Rasbberry Pi Configurationの初期設定

- 再起動後は一気にGUIのデスクトップ画面が起動します。この画面で`Menu > Preferences > Rasbberry Pi Configuration`を起動し、初期設定メニューを表示してください。MenuはキーボードのWindowsマークを押すと表示されますので、マウスが無い方は試してみてください。  

- Rasbberry Pi Configurationで以下のように設定を行っていきます。
	- `System`タブの設定  
		- Filesystem  
		`Expand Filesystem`を押して、SDHCカードの全ての領域をラズパイが使用できるようにします。ただ、NOOBSを使用している場合は初期状態でこの設定が行われている状態になりますので、ボタンはグレーアウトしています。
		- Password  
		ラズパイはIDとパスワードの初期設定がすべて共通ですので、セキュリティのためにもパスワードは独自のものに変更したほうが良いです。
		- Boot  
		電源投入後はGUI画面でなく、コマンドライン（黒い画面）で操作するCLIが選択されるように`To CLI`に変更します。
	- `Localisation`タブの設定  
		- Locale  
		US（アメリカ）のen（英語）で文字コードはUTF-8を使用するように設定します。エンジニアたるもの英語設定でLinuxを扱えるようにならなければ！という意気込みを込めています。自信はありません。
		- Timezone  
		AsiaのTokyoを選択します。
		- Keyboard Layout  
		使っていたのがDellのWindows用USBキーボードでしたので、たぶんこれだ！という勘でJapanのJapanese(OADG 109A)を選択しています。下のType hereというところで試し打ちできますので、記号など怪しいなと思う文字を実際に打ってみてください。
- 最後に右下のOKボタンを押すと、再起動(reboot)をするように促されますので、再度OKを選択し、設定変更を実行します。  
- CLI（黒い画面）で再度起動し、ログインのためのユーザーIDとパスワードを確認される画面が起動してきます。ラズベリーのアイコンがなぜ4つ並んでいるのかは分かりませんが、設定変更したパスワードを使ってログインしてみてください。  
- これで一通りの基本設定は完了になります。

### GUIとCLIのインターフェース切り替え
CLIの黒い画面で起動するように設定しましたが、GUI画面が使いたい時には、`startx`コマンドでGUIが起動できます。

反対に、GUI画面からCLIに戻りたい場合は、GUIの`Menu > Shutdown > Exit to command line`と選択していきます。  

### 無線LAN設定

ラズパイ本体で操作する最後の設定は無線LANをつなぐことです。ラズパイがネットワークに繋がってしまえば、あとはMacなど別の端末からsshでラズパイに接続して操作することができるようになりますので、最後のひと踏ん張りです。

まず大前提である無線LAN USBアダプタがきちんとRaspbina OSに認識されているかを確認します。

```Bash
$ lsusb
Bus 001 Device 004: ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
```

僕が今回使用する上述の`PLANEX Wireless Adapter`が表示されていますので、問題なくアダプタが認識はされているようです。

次に、`wpa_supplicant.conf`ファイルに、自宅のWiFiのSSIDとパスワードを追記します。パスワードが平文で直打ちだとセキュリティ上なんかあれなので、以下の`wpa_passphrase`コマンドを使って暗号化した状態で設定ファイルにWiFiパスワードを記載します。
（下記のYOUR_SSID、YOUR_PASSPHRASEの部分はもちろんあなたのお宅のWiFiのSSIDとパスワードに書き換えてくださいね。）

```Bash
$ sudo sh -c 'wpa_passphrase YOUR_SSID YOUR_PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'
```

すると以下のように`wpa_supplicant.conf`に`network={}`の部分が追記されます。ただ、`#psk=YOUR_PASSPHRASE`のところに平文のパスワードがコメントアウトで書かれていて、これでは暗号化した意味が無いので、この行は削除してください。

```Bash:/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="SSID"
        #psk=YOUR_PASSPHRASE  <- この行を削除
        psk=konna_kanzino_as7aas7d6fa987s6fa9sd6fasd7f6a9sfsa
}
```

あとは`sudo reboot`でOS再起動し、ネットワークの設定変更を反映すると、WiFiに接続していることが確認できるはずです。wlan0のinetにローカルIPアドレスが振られていれば完了です！

```Bash
pi@raspi01:~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr us:da:yo:55:13:e5
          inet6 addr: uson::oado:c26c:c9ba:7847/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

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:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr aa:ba:ka:da:54:a5
          inet addr:192.168.11.40  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::b963:a915:a354:dae8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3538 errors:0 dropped:26 overruns:0 frame:0
          TX packets:1103 errors:0 dropped:1 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:788328 (769.8 KiB)  TX bytes:155691 (152.0 KiB)
```

### ssh設定

普通にサーバーにログインする場合と同じようにMac側からsshログインできます。これでようやくMacなどの端末からアクセスできるようになりますね。USB接続で使った有線キーボードとMacのキーボードの打感の違いΣ(ﾟДﾟ)を噛みしめてください。

```Bash
$ ssh pi@192.168.11.40
The authenticity of host '192.168.11.40 (192.168.11.40)' can't be established.
RSA key fingerprint is 98:eb:fb:96:0c:fc:1c:f2:5b:c9:4d:97:77:48:12:7a.
Are you sure you want to continue connecting (yes/no)? yes

pi@192.168.11.40'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: Wed Dec 30 21:32:08 2015
pi@raspi01:~ $
```

毎回パスワードをうつのが面倒くさいので、ssh-copy-idを使って、手元端末の公開鍵をラズパイに登録すると、次回からパスワード入力を省略できるようになるので便利です！

```Bash
$ brew install ssh-copy-id

$ ssh-copy-id -i ~/.ssh/id_rsa.pub pi@192.168.11.40
/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
pi@192.168.11.40's password:

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'pi@192.168.11.40'"
and check to make sure that only the key(s) you wanted were added.


$ ssh pi@192.168.11.40

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: Wed Dec 30 21:44:08 2015 from 192.168.11.9
pi@raspi01:~ $
```

さらに、ログインのたびにラズパイのIPアドレスを打ち込むのも面倒なので、手元端末の`~/.ssh/config`ファイルにラズパイのログイン情報を登録します。

```Bash:~/.ssh/config
# Raspberry Pi
Host pi
HostName 192.168.11.40
port 22
User pi
```

そうすると、`ssh pi`と打ち込むだけで簡単にラズパイにログインできるようになりますので、とってもオススメですよ！

```Bash
$ ssh pi

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: Wed Dec 30 21:48:21 2015 from 192.168.11.9
pi@raspi01:~ $
```

最後に、無線LANの設定によってssh接続の反応が時々悪くなる問題の対応として、無線LANのパワーマネジメント機能をOFFにする設定を行います。
（sshを普通に使っていて、しばらく何も入力をしないで放置すると、次回の入力時に入力が10秒ぐらい待たされてイライラしてしまうアレのことです。）

```Bash
sudo vim /etc/modprobe.d/8192cu.conf
```

最初は`8192cu.conf`ファイルがありませんので、新規作成になります。

```8192cu.conf
# power management off
options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1
```

ファイルを作成したら再起動しましょう。これで快適なssh接続を行えるようになります！

```Bash
sudo reboot
```



### パッケージ類のアップデート
ひとまずOSインストール、初期設定、ssh接続ができましたので、最後にOSのアップデートをしてラズパイの初期設定をしめくくりましょう。

[apt-getコマンドを順にたたいてRasbianを最新の状態にして、再起動してあげます。](http://denshikousaku.net/raspberry-pi-update-and-upgrade)

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

$ sudo reboot
```

ちなみに、`sudo rpi-update`というRaspberry Piのfirmwareのアップデートコマンドも合わせて実行すると説明されているブログがいくつもあったので、その通り実行したところ、Raspbian OSを再起動するとブート時に以下のエラーが発生して起動できなくなってしまいました。原因は海外サイトを見ても、SDカード起因説や電源供給起因説など諸説ありますが、はっきりした結論は出ていないようでした。`sudo rpi-update`を実行される場合は自前にバックアップを取るなど、注意して実行したほうが良さそうです。

```Boot message
[608344.356884] mmcblk0: error -110 transferring data, sector 4484523, nr 5, cmd response 0x900, card status 0x200b00
[608344.356919] end_request: I/O error, dev mmcblk0, sector 4484523
```


## ディスプレイ無しでラズベリーパイを起動、Macからssh接続する

ssh接続もできるようになりましたので、あとはラズパイ本体からたくさん生えているコードを、電源以外すべて引き抜いて運用できるようにします。

まずは、`sudo halt`コマンドをsshから入力し、Raspbian OSを停止させます。この状態で電源をコンセントから抜くことができますので、HDMIケーブル、キーボードのUSBコードを引き抜きます。

これでラズパイ本体にはmicroSDHCカード、無線LAN USBアダプタ、電源コードのみの接続になりますので、非常にスッキリした状態になります。ラズパイくんも喜んでいますね＼(^o^)／

あとは、再度電源をコンセントに接続します。ディスプレイがありませんので、ラズパイ本体の様子をみて起動状態を把握するしかありませんが、最初はオレンジ色と黄色のランプが両方共に点滅している間はOSが立ち上がっている状態です。


だいたい10〜20秒ぐらい経過するとオレンジ色のランプのみの点滅・点灯になります。

基本的にこの状態でssh接続可能になっていますので、Macなどの端末からssh接続を試みて下さい。

ということで、これにてラズベリーパイ焼き上がりです！

## 最後に

こんなに小さいのにパワフルに稼働してくれるRaspberry Pi 2 model Bがやってきていろいろとやりたいことが膨らんでいます。

皆様もぜひ、ラズベリーパイ初めてみてください！