Raspberry Pi メモ
## セットアップ

### 必要なもの
- 8GB以上かつClass10以上のMicroSDカード
- USB電源とMicroUSBケーブル
- USBに何かを接続するにはセルフパワーのハブ推奨
- EthernetケーブルとDHCP環境
- PCかMac

### セットアップ
#### OSダウンロード
http://www.raspberrypi.org/downloads/
初心者に優しそうな RASPBIAN をチョイス。Raspberry Pi向けのDebian。

#### OSイメージをSDカードに書き込む
http://www.raspberrypi.org/documentation/installation/installing-images/mac.md
http://www.raspberrypi.org/documentation/installation/installing-images/linux.md
ダウンロードしたzipの中身をSDカードに書き出す。Macの場合、以下のように実行。
※ /dev/disk2がSDカードのBSD名、環境で異なるので適宜読み替えてください
```
$ diskutil list # SDカードを探す
$ diskutil eraseDisk fat32 RASPBIAN /dev/disk2 # SDカードをFAT32でフォーマット
$ diskutil umountDisk /dev/disk2 # フォーマット後自動マウントされるのでアンマウント
$ dd if=2015-02-16-raspbian-wheezy.img of=/dev/disk2 # 結構長い、進捗はCtrl+T
```

#### 起動
1. EthernetケーブルをLANに接続し、SDカードを挿入して電源投入

1. 20秒ほど待ったらネットワークスキャンしてRaspberry PiのIPアドレスを探す (設定はDHCPがデフォルト)

1. SSHする
 - User: pi
 - Password: raspberry

1. 時刻設定 
 - ntpdの設定と、Raspbianは `ntpdate` が入ってないので `apt-get` で入れて初回の時計合わせを行う

1. Timezone設定
 - .barshrc に `export TZ=Asia/Tokyo` を追記

1. locale設定
`$ sudo locale-gen ja_JP.UTF-8`
`$ sudo dpkg-reconfigure locales # ja_JP.UTF-8を選ぶ`
※上記2つをやってもssh越しでシェルに日本語入れられないし、perlで警告が出るため、以下の3つを `~/.bashrc` に追記した。
`export LANGUAGE=ja_JP.UTF-8`
`export LC_ALL=ja_JP.UTF-8`
`export LC_TYPE=ja_JP.UTF-8`

1. SSH周りの設定
 - パスワード変更
 - 公開鍵の設置とパスワードログイン禁止
 - rootログイン禁止
  - rootのパスワードも変えておく
 - デフォルトのユーザ(pi)も消す方がよさそう
 - 必要に応じてクライアント側の `~/.ssh/config` に `ServerAliveInterval`を指定

1. 不要なものを消す
SDカードの容量は貴重なので、不要なパッケージを削除。
 - `$ sudo apt-get remove xserver* libx11*` などなど
 - このあとautoremoveしたらなんかrubyとかも消えました。1.9系だったし無問題です。

1. パーティション拡大
SDカードの空きを全て確保する。
`$ sudo raspi-config` の "Expand Filesystem" を選択

1. パッケージ周りを更新
`$ sudo apt-get update`
`$ sudo apt-get upgrade`
`$ sudo apt-get dist-upgrade`
2015/02半ば時点ではイメージのリリースから日が浅いせいか何もアップグレードされません

1. ファームウェア更新
`$ sudo rpi-update`

1. 放置時のサスペンドを防止
http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=35054 より
`/etc/kbd/config`に以下を設定
```
LANK_TIME=0
POWERDOWN_TIME=0
```
`$ sudo service kbd restart` でいいか不明 (念のため再起動した)

#### その他設定について
raspi-config で設定できる内容は大体 `/boot/config.txt` に保存される。
`/boot/`はFATなので大概のOSから書き替えられる。詳細は http://elinux.org/RPiconfig 参照。


#### (必要に応じて)無線LANを使えるようにする
今回はバッファローの WLI-UC-GNM2 ( http://buffalo.jp/product/wireless-lan/client/wli-uc-gnm2/ )という無線LANドングルを使用。市場価格1000円程度。
```
$ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 0411:01ee BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]
```

- APへの接続設定など
`wpa_passphrase` コマンドの出力結果を `/etc/wpa_supplicant/wpa_supplicant.conf` に追記して、 `/etc/network/interfaces` を修正したら当該NICを `ifup` する。
接続先アクセスポイントを複数登録する場合は、`/etc/wpa_supplicant/wpa_supplicant.conf` の `network` を列挙する。
なお、 `wpa_passphrase` に無線LANのパスワードを引数として渡す( `wpa_passphrase {ap_name} {passphrase} >> /etc/wpa_supplicant/wpa_supplicant.conf` )のは嫌なので、以下のようにテキストファイルに書いて渡した。
```
$ wpa_passphrase `cat wifi_setting.txt` >> /etc/wpa_supplicant/wpa_supplicant.conf`
```

--

#{14360}
#{14625}