Raspberry Pi Zero (W) 事始め HW入手からSSH、ブラウザ環境

# Overview

Raspberry Pi Zero Wが発表になっていますが、いつまでたっても、主要な国内ストアで発売になりませんね。　海外ではちゃんと技適マーク付きで売っているのですが・・・。

幸いRaspberry Pi Zeroは売っていますし、ZeroとZero Wは共通のイメージで行けるようなので、先に事前準備をしていきましょう。

# hardwareの入手

* 日本だと、[Switch Science](https://www.switch-science.com/catalog/3200/) さん や [KSY](https://raspberry-pi.ksyic.com/) さんなどから入手したり、
* 海外だと、[Pimoroni](https://shop.pimoroni.com/collections/raspberry-pi-zero) などから入手できるかと。

# Raspbian の 用意

Raspberry Pi Zero (W)上で動かすLinux distributionです。
(私はRPi3では、Ubuntu Mate使っています)

## Download Raspbian image

本当はUbuntu Mateを個人的には使いたいのですが、Ubuntu MateはRaspberry Pi2/3しかサポートしていないので、RaspbianやNOOBSが基本的な選択肢になります。

> NOOBSはなんとFATの上にファイル書き込むをするというもので、(普通はext4とかを直接焼き込みますが、FATの上にimgをおいておいて、loopback mountしているのかと。。。)、手持ちのSamsungの32GBのmicro SDで起動すると、resizing時にエラーになるようで (手順の通りSDA (SD Assosication)からformatterをdownloadして焼きましたけど・・・)、Raspbianは、期待通りのimgが普通に入っていたので、raspbianで試します。

https://www.raspberrypi.org/downloads/
からRaspbianを選択してたどるか、 [ここ](https://downloads.raspberrypi.org/raspbian_latest) からダウンロードしましょう。

## Burn Raspbian image to microSDカードの初期化

以下、MacOSでの例です.

[ここ]
 (https://www.raspberrypi.org/documentation/installation/installing-images/mac.md) にもありますが、なんかごちゃごちゃしているので、やるべきことだけを書いておきます。

### まず、どこにメディアがあるのかを確認しておきましょう (重要)

```
$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
..snip..
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
..snip..
/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
..snip..
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *32.0 GB    disk3
   1:             Windows_FAT_32 NO NAME                 32.0 GB    disk3s1
```

私の場合は、上のように、/dev/disk3が、焼き込みたい先であることがわかります。

### 次にunmountを行います。

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

### イメージを焼き込みます (私の環境での例)

```
$ sudo dd if=2017-04-10-raspbian-jessie.img of=/dev/disk3 bs=1m
```

# Raspibianの設定

## ssh の 設定

[sshの設定覚書](http://qiita.com/hidenorly/items/eb0800515299bfe43ecb) などを参考にMac側の設定などは済ませておきましょう。

### sshdの設定

Raspberry Pi側で、簡単にはGUI loginして、

```
$ sudo leafpad /etc/ssh/sshd_config
```

なお、vimも入っていないので、

```
$ sudo apt-get install vim
```

など先に入れておいも良いですね。

```sshd_config
PermitRootLogin without-password

#RSAAuthentication yes				// RSAv1を非許可

#AuthorizedKeysFile  %h/.ssh/authorized_keys
AuthorizedKeysFile	%h/.ssh/authorized_keys // .ssh以下にloginしたいユーザー以下に鍵を置く意味

#PasswordAuthentication yes
PasswordAuthentication	no // 鍵のみにするために
```

### Raspberry PiのIP Addressの確認

```
$ ifconfig
```

で、Raspberry PiのIP addressを確認

### Raspberry Piのsshのauthorized_keysの設定

Macなどから

```
$ scp ~/.ssh/id_rsa.pub pi@xxx.xxx.xxx.xxx
```

や、USB経由などでid_rsa.pubをコピー


Raspberry Pi上で

```
$ cd /home/pi
$ mkdir .ssh
$ chmod 0700 .ssh
$ mv id_rsa.pub .ssh
$ cd .ssh
$ mv id_rsa.pub authorized_keys
$ chmod 0600 authorized_keys
```

みたいにしてログイン用の鍵の設定。

### authorized_keysのみでのloginを有効にする

Raspberry Pi上で
```
$ sudo systemctl restart ssh
```

### 実際のssh

```onMac
$ ssh pi@xxx.xxx.xxx.xxx
```

鍵のファイル名やポート番号を変更した場合は、以下のように

```onMac
$ ssh pi@xxx.xxx.xxx.xxx -p 10022 -i ~/.ssh/id_rsa
```

指定するのは秘密鍵

上のように毎回書くのが嫌な場合は、

```~/.ssh/config
Host rpi
    HostName raspberrypi.local
    User pi
    Port 10022
    Protocol 2
    IdentityFile ~/.ssh/id_rsa
    ServerAliveInterval 60
```

みたいにしておけば、

```
$ ssh rpi
```

だけでいけます。

## ちなみに

```
pi@raspberrypi:~ $ ruby --version
ruby 2.1.5p273 (2014-11-13) [arm-linux-gnueabihf]
pi@raspberrypi:~ $ python --version
Python 2.7.9
pi@raspberrypi:~ $ git --version
git version 2.1.4
pi@raspberrypi:~ $ node --version
v0.10.29
```

ってな感じで、とりあえず、色々と遊べそうですね。

## X環境で遊ぶ人向けに

* やはりパフォーマンスは普段使っている Raspberry Pi3と比べると段違いに遅いです。
    * BogoMIPSでは697.95とか出ています (armv6 rev 7 (v6l))
    * 特に最初から入っているChromiumでブラウジングする気になれないレベルです。。。

* というわけで、firefox　を installしましょう　 (これでもつらいけどまだなんとかなる・・・)
```
$ sudo apt-get install iceweasel
```

(```apt-get install firefox```　ではinstallできません. [logoの問題](https://medium.com/@mos3abof/how-to-install-firefox-on-debian-jessie-90fa135e9e9)とかあるそうです)