RaspberryPi環境構築手順2018


# やること
[以前の記事が古いのでアップデート](https://qiita.com/harumasa/items/8220d01086eff267c10a)
マウス・キーボード・ディスプレイレスでRaspberry piにraspbianをインストールして、Macからvncで接続。
ネットワークとハードディスク(SDカード)のベンチマーク取得。
~~おまけでOSMCのヘッドレスインストール追加。~~
※RaspberryPiの環境構築ではないので、[ブログのほうに移動](https://dev.domus.jp/blog/?p=428)

# 用意
- RaspberryPi本体
- Mac
- microSD(16GB程度)とmicroUSBケーブル(2.4A対応のもの)
- LANケーブルと、Macをつなぐアダプタ(有ればでOK)

# 手順概要
- imgをダウンロード
- microSDにOSイメージを焼く
- 起動時にssh可能にするためsshファイルをtop階層に置く
- LANケーブルが無くて起動時にwifiで接続したい場合はwpa_supplicant.confファイルをtop階層に置く
- sshする
- 各種設定を行う
- 各種ベンチマークを測定してみる
- OSMCのヘッドレスインストール（おまけ）

# 手順詳細

### ソフトダウンロード〜sshまで

以下GUI版で説明。以前はtarでないと解凍できなかったが現在はunzipでないと解凍できなかった 

ダウンロードする
  - [raspbian-stretch GUI版](http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2018-06-29/)
  - [raspbian-stretch lite(CUI版)](http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/images/raspbian_lite-2018-06-29/)


```
wget http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2018-06-29/2018-06-27-raspbian-stretch.zip
```

解凍する

```
unzip zxvf 2018-06-27-raspbian-stretch.zip
```

microSDの位置を確認しunmount後Imageを焼く(以下は/dev/disk2の場合)

```
diskutil list
diskutil unmountDisk /dev/disk2
sudo dd if=~/Downloads/2018-06-27-raspbian-stretch.img bs=1m of=/dev/rdisk2
```

sshファイルをtop階層に置く

```
touch ssh
mv ssh /Volumes/NO\ NAME/
```

起動時にwifiで接続したい場合はwpa_supplicant.confファイルをtop階層に置く(DHCP限定)   

```
mv wpa_supplicant.conf /Volumes/NO\ NAME/
```

```conf:wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="SSID名"
    psk="パスワード"
}
``` 

microSDをMacから外し、Raspi本体につけて起動後sshしてみる(初期パスワード:raspberry)

```
ssh pi@raspberrypi.local
```

### 各種設定を行う
ipを確認してみる(ベンダIDはB8:27で始まる)

```
arp -a
```

[Githubに上げたansible](https://github.com/masato-haruta/raspiInitialSetting)で以下を設定する

- パッケージアップデート及び必要ソフトインストール
- raspi-configで設定が必要な項目を設定

GUIで作業する場合はvncを起動し、mac側でvnc://raspberrypi.local:5901に接続する

```
tightvncserver 
```

wicd-cursesで無線と有線を管理する(こちらが完了したら/etc/wpa_supplicant.conf内のnetwork以下を設定している場合は削除する)

```
sudo wicd-curses
```

[Shift + p]で有線設定(有線優先、有線をデフォルト、接続が切れたら自動的に再接続)後、[Shift + s]で保存
接続する無線のSSIDにカーソルを合わせて[→]で無線設定(WPA  1/2 (Hex [0-9/A-F])    vvvを選択しWPA  1/2 (Passphrase)に変更したらパスワード入力)後、[Shift + s]で保存したら[Shift + Q]で終了

### 各種ベンチマーク測定

- ネットワーク   
ベンチマークはiperf3が有名ぽいけど毎時１回かつ１週間とか可動させて、結果をGoogleDocsに記録したかったので自作した。
[RaspiSpeedTest](https://github.com/masato-haruta/raspiSpeedTest)でいくつかソフトを入れてGCPに登録できてるとSpredSheetにも記録可能

- ハードディスク
ベンチマークはUnixBenchが有名らしく、IO系の値(File Copy 1024 bufsize 2000 maxblocks
)を取得してみたものの、近年では2MB程度のサイズだとメモリやCPUにキャッシュされるのでディスク処理性能を測るには不適切で、ほぼCPUの処理性能に依存するらしいため、ddとhdparmでの計測をしてみた。

ディスク読み込みテストのためhdparmインストール

```
sudo apt-get install hdparm
```

計測対象を調べる

```
sudo fdisk -l
```

計測(Read)

```
sudo hdparm -t /dev/mmcblk0
```

Raspberry pi 3(MicroSD:)

```
 Timing buffered disk reads:  36 MB in  3.13 seconds =  11.48 MB/sec
```

Raspberry pi 3B+ (MicroSD:sundisk)

```
 Timing buffered disk reads:  74 MB in  3.08 seconds =  24.02 MB/sec
```

Raspberry pi 3B+ (MicroSD:toshiba)

```
 Timing buffered disk reads:  72 MB in  3.00 seconds =  24.00 MB/sec
```

計測(Write)

```
 time dd if=/dev/zero of=/tmp/hdparm_write.tmp ibs=1M obs=1M count=1024
```

Raspberry pi 3(MicroSD:)

```
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 88.6369 s, 12.1 MB/s
```

Raspberry pi 3B+(MicroSD:sundisk)

```
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 45.1418 s, 23.8 MB/s
```

Raspberry pi 3B+(MicroSD:toshiba)

```
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 82.1547 s, 13.1 MB/s

```

一応UnixBenchもやってみた

```
git clone https://github.com/kdlucas/byte-unixbench
cd byte-unixbench/UnixBench
./Run
```

[Raspberry pi 3(MicroSD:)の結果はこちら](https://qiita-image-store.s3.amazonaws.com/0/12994/988b42ed-051a-d15c-d355-c79cce1917b6.png)
[Raspberry pi 3+(MicroSD:)の結果はこちら](https://qiita-image-store.s3.amazonaws.com/0/12994/862644fa-d1be-8cb1-c1f0-3164ed8c2889.png)
[Raspberry pi 3+(MicroSD:)の結果はこちら](https://qiita-image-store.s3.amazonaws.com/0/12994/f5c2ba35-1d79-fb70-a9a4-b0fd8e863472.png)