RaspberryPiセットアップでやることまとめ

# はじめに
RaspberryPiを新規購入orイメージを再作成するときに、いつもやっていることをまとめました。
機材の集め方については書いていません。
Raspbianを入れます。
うちはテレビがないので、シリアルアダプタ経由でRaspberryPiにつなぎます。

# 用意するもの
* RaspberryPi (今回はRaspberryPi2)
* microSDカード
* 電源ケーブル(USBmicroB)
* 無線LANドングル
* パソコン（SDカード作成、RaspberryPi操作用）
* FT232RLシリアルアダプタ（[これ](https://www.switch-science.com/catalog/1032/)）
* オスメスジャンパワイヤ3本
* USBmicroB-USBAケーブル1本 

# 準備
* パソコンに[Teraterm](https://osdn.jp/projects/ttssh2/)をインストール
* パソコンに[FT232RLドライバ](http://www.ftdichip.com/Drivers/VCP.htm)をインストール
    * [ここ](https://www.switch-science.com/catalog/1032/)にリンクがあるのでいつもここから辿ります。
* パソコンに[Win32DiskImager](http://sourceforge.net/projects/win32diskimager/)をインストール
* パソコンに[Raspbianイメージ](https://www.raspberrypi.org/downloads/raspbian/)をダウンロードしてzipを解凍
    * [Raspberrypi.org](https://www.raspberrypi.org/)のDownloadから辿ります

# やること
1. Win32DiskImagerを使ってRaspbianイメージをSDカードに書きます（[参考サイト](http://blog.boochow.com/article/288449481.html)）
1. RaspberryPiにSDカードをさして、FT232RLシリアルアダプタ経由でパソコンにつなぎます（[ここの手順](http://qiita.com/sh1k1ya/items/dfd096fabff601f5f6f4)が詳しいのでおすすめ）
1. 初期セットアップ画面の表示：`sudo raspi-config`　（※メニュー階層移動は左右キーを使う。）
    1. Expand Filesystemを設定
    1. Internationalisation Options
        1. Change Localeをja_JP.UTF8に設定
        1. Change Timezone  をTokyoに設定
        1. Change Keyboard Layout を日本語109に設定（失敗したので詳細はスキップ）
    1. Advanced option
        2. SSHをON
        3. SPIをON （センサー接続用）
        4. I2CをON （センサー接続用）
        5. SerialをON
        5. AudioはAuto
    6. 設定が終わったらFinishを選択してreboot
    7. ログインしてsshdの確認：`ps -ef |grep sshd`
    
1. 無線LANの設定 ([こじ研](http://www.myu.ac.jp/~xkozima/lab/raspTutorial1.html)を参照）
    1. /etc/network/interfacesを編集

        ```
        sudo vi /etc/network/interfaces
        ```
        ```
        (中略)
        iface wlan0 inet dhcp 
            wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
        ```


    1. /etc/wpa_supplicant/wpa_supplicant.confを編集


        ```
        $ sudo bash
        $ wpa_passphrase MYSSID MYKEY >> /etc/wpa_supplicant/wpa_supplicant.conf
        $ exit
        ```
        ```bash:/etc/wpa_supplicant/wpa_supplicant.conf
        ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
        update_config=1
        network={
                ssid="MYSSID"
                #psk="MYKEY"  <--これは手動で削除
                psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                scan_ssid=1   <--これは手動で追加（ステルス用）
        }
        ```

    1. 再起動 `sudo reboot`
    1. IPアドレスの確認 `ifconfig`
    1. 接続確認 
        2. (パソコンとRaspberryPiを同じルータにつなぐ）
        3. (パソコンから)`ping 192.168.xxx.xxx`

1. OSとファームウェアの更新

    ```
    sudo apt-get update
    sudo apt-get upgrade  
    ## sudo rpi-update　#ファームウェア更新 (2015/12/12現在、これを実行すると起動しなくなるので実行していません。）
    ```

1. avahiを入れる
    パソコンから、`ping raspberrypi.local` でつなげるようになります。
    Windowsパソコンには、[Boujour Print Service](https://support.apple.com/kb/DL999?locale=ja_JP&viewlocale=ja_JP)をインストールします。（ここにavahiの実装が含まれている。）

    ```
    #RaspberryPi側
    sudo apt-get avahi-daemon
    ```

1. Ctrl-Caps入れ替え

    ```
    sudo vi /etc/default/keyboard
    ```
    ```bash:/etc/default/keyboard
    #XKBOPTIONS=""
    XKBOPTIONS="ctrl:swapcaps"
    ```

1. RAMドライブ設定
    1. SWAP確認 `free -m`
    1. SWAP無効化
    
        ```
        #dphys-swapfileを削除（永久にoff)
        sudo apt-get remove dphys-swapfile
        ```
    1. FS定義追加

        ```
        sudo vi /etc/fstab
        ```
        ```bash:/etc/fstab
        proc            /proc           proc    defaults          0       0
        /dev/mmcblk0p1  /boot           vfat    defaults          0       2
        /dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
        # a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that
        # tmp files are on RAM drive
        tmpfs           /tmp            tmpfs    defaults,size=512m,noatime,mode=1777      0       0
        tmpfs           /var/tmp        tmpfs    defaults,size=512m,noatime,mode=1777      0       0
        tmpfs           /var/log        tmpfs    defaults,size=512m,noatime,mode=1777      0       0
        ```

    1. FSをマウントする
    
        ```
        sudo mount -a
        ```

    1. ディレクトリ自動作成スクリプトを作る
    FSの中身は電源を切ると毎回消えるため、起動時に必要なディレクトリを再作成するスクリプトを書きます。

        ```bash:/etc/rc.local
        # create directory at startup
        mkdir -p /var/log/apt
        mkdir -p /var/log/ConsoleKit
        mkdir -p /var/log/fsck
        mkdir -p /var/log/news
        mkdir -p /var/log/ntpstats
        chown root.ntp /var/log/ntpstats
        mkdir -p /var/log/samba
        chown root.adm /var/log/samba
         
        #  create empty file at startup
        touch /var/log/btmp
        touch /var/log/lastlog
        touch /var/log/wtmp
        chown root.utmp /var/log/btmp
        chown root.utmp /var/log/lastlog
        chown root.utmp /var/log/wtmp
        ````