Raspberry Pi 3 Model B 設定個人的備忘録

#流れ
1. Raspberry Pi のOSインストール, 基本設定
2. VNC, Wi-Fi設定など

#準備 : ハードウェア編
* PC
* Raspberry Pi 3 Model B
* USB-ACアダプタ : 電流容量 2.5[A]
* Micro USB : 電流容量 2.5[A]
* micro SD : 8[GB]以上
* SDカードアダプタ : (必要に応じて)
* LANケーブル
* 無線LANルータ

#準備 : ソフトウェア編
以下のソフトウェアを適宜ダウンロード, インストールしてください. 一部バイナリファイルが用意されているものもあるので, インストールしたくない, またはインストール出来ないという方はそちらでも構いません.

* SDFormatter
 - https://www.sdcard.org/jp/downloads/formatter_4/
* Raspbian　: OSはここからダウンロード
 - http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/
* Win32DiskImager : バイナリファイルあり
 - https://sourceforge.net/projects/win32diskimager/files/Archive/
* PiFinder : 必要に応じて. SSH接続はデフォルトで拒否されるようになったのでほとんど役に立たない.
 - https://github.com/adafruit/Adafruit-Pi-Finder/releases/tag/3.0.0
* VNC-Viewer : ホスト側(PC側)に必要
 - https://www.realvnc.com/download/viewer/


#Raspberry Piの起動, 設定
 * LXTerminal (場合によっては名前が異なるが, アイコンに>_の文字がついてるやつ) を利用
 * `sudo rpi-update && sudo apt-get dist-upgrade && sudo apt-get update && sudo pt-get upgrade -y`
 * ファームウェアの更新  
`sudo rpi-update`
 * リポジトリ (アップデート可能なソフトウェアの一覧表) の更新  
`sudo apt-get update`
 * アップデート可能なソフトウェアのダウンロードと更新  
`sudo apt-get upgrade -y`

これで, Raspberry Piのソフトウェアはすべて最新版になります.

#VNCのオプション
##電源ONの時に自動起動する設定
次のコマンドを実行してください
 `pi@raspberrypi:sudo systemctl start vncserver-x11-serviced.service`  

##画面サイズ, 画質などの設定
初期状態では, 表示される画面は非常に小さいです. ホストPCの画面サイズを確認してフルスクリーンにするもよし, ちょっと小さめにしてホストPCの作業をしやすくするもよしです.
1. Raspberry Pi のターミナルを立ち上げる
2. `pi@raspberrypi:vncserver -geometry (画面横幅)x(画面縦幅)`でサイズ変更
3. `vncserver:(数字)`と出力されるので, その数字を把握しておいてください
4. 一旦VNCを終了します
5. 前回VNC接続に使用したIPアドレスに加えて,`:(数字)`を入力すると, 画面サイズが変わっています

以上で画面サイズの変更が完了しました.


#音の出力 : イヤホンジャック
イヤホンジャックを途中まで差し込むと, ブブブッという音が聞こえてくると思いますが, 無視して奥まできっちり差し込んでください. すると, 今度はザーッという音が聞こえてくると思います. 以下ではこの症状に対する対処法を記します.(どうも最新版のRaspbianでは最初からノイズが出ないようになっているようです, 必要な時は以下を参照してください

1. 以下のコマンドを入力  
 `sudo leafpad /boot/config.txt` 
2. テキストファイルの編集
 * 以下の文章を追加します  
  `disable_audio_dither=1`
 * もし上の文章の部分がすでにコメントで記述されている場合は, 行頭の#を削除してください.
3. 再起動  
 `sudo reboot`  

以上でイヤホンジャックから音を出力する際のノイズは消えました.

#無線LAN, Wi-Fiの設定
##インフラストラクチャーモード
* この設定ではより設定が簡単な, GUIを利用します
* SSIDを表示しないモード(ステルスモード)にしている場合は一旦解除しましょう. 
* 後で再度設定を行えば, ステルスモードをONにしても問題なく動作します.
1. VNCを使ってRaspberry PiのGUIを表示します.
2. コンピュータが2台つながったようなアイコンをクリックし, 接続したいWi-FiのSSIDを選択, パスワードを入力します.
3. 問題なく動作します
4. ステルスモードを有効化するために, 以下のコマンドを入力, 実行してください
 - `pi@raspberrypi:sudo nano /etc/wpa_supplicant/wpa_supplicant.conf`  
すると, 以下の様な文字が表示されます.
 - `ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev  
update_config=1  
country=GB`  
`network={`  
`ssid=(接続したSSID)`  
`key_mgmt=(パスワードの種類)`  
`(その他pskなど, いろいろな情報が表示される)`    
}'
 - この`{}`の中に, 次の行を書き加えてください　
 - `scan_ssid=1`
 -  `ctrl+X`キー, `y`キー, `Enter`キーを押して保存してください　
 -  `sudo ifdown wlan0` , `sudo ifup wlan0` の順にコマンド実行

WPA2-Enterpriseの場合の設定

* ```network = {
 ssid = "<SSID名>"  
 scan_ssid = 1  
 key_mgmt=WPA-EAP  
 pairwise=CCMP TKIP  
 group=CCMP TKIP  
 eap=PEAP  
 identity="<割り当てられたユーザー名>"  
 password="<割り当てられたパスワード>"  
}  
```  
うまくいかない場合は, 大抵は前述の設定ファイルにミスがあるが, 接続試行さえしてくれない場合は次のコマンドを試してみること.

 - `sudo ifconfig wlan0 down` のあとに `sudo ifconfig wlan0 up`
 - `sudo ifdown wlan0` のあとに `sudo ifup wlan0`

バックアップ

 *  `/etc/wpa_supplicant/wpa_supplicant.conf`  を外部に保存しておけば、あとで必要なときにファイルまるごとコピペで済む 

# Python Version Update
デフォルトではいっているPythonのバージョンをアップデートします
1. Python3  
 * `sudo apt-get install build-essential libc6-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev`
 * `cd /usr/src/`
 * `sudo wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz && sudo tar -zxvf Python-3.5.2.tgz`
 * `cd Python-3.5.2`
 * `sudo ./configure`
 * `sudo make -j4`
 * `sudo make install`
2. Python2
 * `sudo wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz && sudo tar -zxvf Python-2.7.12.tgz`
 * `cd Python-2.7.12`
 * `sudo ./configure`
 * `sudo make -j4`
 * `sudo make install` 

#参考文献等
1. 準備～インストールまで  
 * https://www.raspberrypi.org/documentation/setup/  
 * https://www.raspberrypi.org/documentation/installation/
2. Wi-Fiのセットアップ
 * http://www.freebsd.org/cgi/man.cgi?query=wpa_supplicant.conf&sektion=5&apropos=0&manpath=NetBSD+6.1.5  

3. VNC画面サイズ変更
 * https://www.raspberrypi.org/documentation/remote-access/vnc/

4. 公式ドキュメント
 * https://www.raspberrypi.org/documentation/
 * https://github.com/raspberrypi/documentation

* イヤホンジャック : https://github.com/raspberrypi/firmware/issues/380
* アドホックモードの設定(Windows10)
  - http://answers.microsoft.com/en-us/windows/forum/windows_10-networking/how-do-i-set-up-an-ad-hoc-wifi-network-in-windows/0caa92d8-e02f-4e7f-aa5c-0abf10ed2039?auth=1