Raspberry piをインストールして設定してみよう


#はじめに

この記事は、[春のIoTリレーハンズオン@関西](http://www.slideshare.net/ichiroohkini/jawsugiot-iot)の一環として開催される[＜日本橋買い物ツアー＞](https://kansaiouchihack.doorkeeper.jp/events/39575)のハンズオン用資料として作成します。

当日の地図は[こちら](https://umap.openstreetmap.fr/ja/map/iot_76687#18/34.65822/135.50601)。

本ハンズオンでは、Raspberry pi（以降、ラズパイ）を設定し、使えるようになるまでの手順をまとめます。
セットアップは、USBシリアル変換ケーブルを使ってRasbianの設定を行う方法を採用します。

#\[Step 1.\] 必要な機材の準備

まずは必要なものを準備します。以下のものをご用意ください。

1. PC(Windows/Mac※)
2. RaspberryPi 2 Model B
3. micro SDカード(8GB以上推奨)
4. micro SDカードリーダー
5. Wi-Fiドングル
6. USBシリアル変換ケーブル
7. micro USBケーブル
8. USB ACアダプタ

※Linuxでも可能ですが、以降ではWindowsとMac向けにのみ記載します。

#\[Step 2.\] OSイメージのダウンロード

次に、[本家のダウンロードサイト](https://www.raspberrypi.org/downloads/)から必要なOSイメージをダウンロードします。

多数のイメージが公開されていますが、今回は、[Rasbian](https://www.raspberrypi.org/downloads/raspbian/)を選択します。「RASPBIAN JESSIE」をダウンロードください。
ダウンロードしたイメージがZIPの場合は、ツールで解凍しておいてください。

#\[Step 3.] OSイメージをSDカードに書き込む

micro SDカードリーダーをPCに接続し、SDカードを差し込みます。SDカードリーダーとSDカードが認識されているかを確認ください。認識されていない場合は、micro SDカードリーダーの説明書を参考にドライバーのインストールや初期設定を行ってください。

次に、OSイメージをSDカードに書き込みます。
OSイメージをSDカードへ書き込む方法はいくつかありますが、ここではWindows/Macについてそれぞれ１例を挙げておきます。

##Windowsの場合
1. [Win32 Disk Imager](https://osdn.jp/projects/sfnet_win32diskimager/)をダウンロードし、インストールします。
2. アプリを起動すると以下の画面が出ますので、"Image File"に先ほどダウンロードしたOSイメージを、"Device"にはSDカードが刺さっているドライブを指定します。<Font color="red">Deviceは間違わないようにご注意ください！</Font>

![w32image.jpg](https://qiita-image-store.s3.amazonaws.com/0/51272/d4f0cd4f-2bff-4c76-35c7-43fea60d9054.jpeg)
3. Writeボタンを押して書き込みを開始します。書き込みにある程度時間がかかりますので、完了するまで待ちます。

##Macの場合
1.[ApplePi Baker](http://www.tweaking4all.com/hardware/raspberry-pi/macosx-apple-pi-baker/)をダウンロードし、インストールします。
2. アプリを起動すると以下の画面が出ます。SDカードが認識されていると、"Pi-Crust"に表示されますので、選択します。<Font color="red">選択先は間違わないようにご注意ください！</Font>
![スクリーンショット 2016-03-15 23.58.15.png](https://qiita-image-store.s3.amazonaws.com/0/51272/4d78c9fd-a708-1244-b8a2-e305431c4d49.png)  
3. "Pi-Ingredients"の"..."ボタンを押して、先ほどダウンロードしたOSイメージを選択します。"Pi-Crust"で選択しないとボタンが有効にならないので注意ください。
4. Restore Backupボタンを押して書き込みを開始します。書き込みにある程度時間がかかりますので、完了するまで待ちます。

#[Step 4.] USBシリアル変換ケーブルの設定

***（注）Raspberry pi 3の方は、この記事の最後の方にある「私のラズパイ、Raspberry pi 3なんですが。」を先にご覧ください。***

まずはUSBシリアル変換ケーブルの設定を行います。
使用するUSBシリアル変換ケーブルに対応するドライバーをインストールしてください。

|製品名|Winドライバ |Macドライバ|
|---|---|---|
|[PL2303HX内蔵USBシリアル変換ケーブル](http://www.amazon.co.jp/dp/B018LT4WKK)|[PL2303 Windows Driver Download](http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41)|[PL2303 Mac OS X Driver Download](http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41)|
|[FTDI USBシリアル変換アダプター](https://www.switch-science.com/catalog/1032/)|[Virtual COM Port Drivers](http://www.ftdichip.com/Drivers/VCP.htm)|[Virtual COM Port Drivers](http://www.ftdichip.com/Drivers/VCP.htm)|

＜参考＞PL2303(HXがついてない)は、Windows8や10のドライバーがないので注意ください。Windows8や10で使用される場合はPL2303HXDとHXDがついているものを購入ください。Macについては、PL2303も使用できます。
（追記１）PL2303HXDですが、Windows8、10をサポートしているはずなのですが、うまく動かないようなので、FTDIのものを選ぶのをお勧めします。
（追記2）PL2303HXDですが、Windows8、10での対処法についての情報を以下にまとめました。
[Windows8/10でPL2303HDXのドライバーが動作しない場合の対応方法について](http://qiita.com/lutecia16v/items/1b1eef3cb1fc2b7c067c)

つぎに、ケーブルをラズパイのGPIOに接続します。
GPIOとは以下のようにピンが並んでいる部分のことです。
![2016-03-16 00-39-15.642.jpg](https://qiita-image-store.s3.amazonaws.com/0/51272/92b2148b-2110-a4c1-8843-f3740b604a6b.jpeg)
左上から、右、次の列の左、右、、、の順で１、２、３、、、と番号がついています。
つまり、
(1) (2)
(3) (4)
(5) (6)
...

となっています。
接続に必要なのは次の３本です。

|GPIOピン番号|名称|接続先|※|
|---|---|---|---|
|6|Ground|GND|黒|
|8|TXD(UART)|RX|白|
|10|RXD(UART)|TX|緑|
※PL2303HX内蔵USBシリアル変換ケーブルの場合の線の色

ケーブルによっては４本線が出ているかもしれませんが、残りの１本（5Vの電源線、赤い線の場合が多い）は使用しません。
あと、RXとTXがひっくり返って接続されている（一般的にクロスといいます）のにも注意ください。

#[Step 5.] Rasbianの起動とログイン

さぁ、次はラズパイを起動してみましょう。
まず、OSイメージを書き込んだSDカードをラズパイに差します。その後、mirco USBケーブルをUSB ACアダプタを差し、ラズベリーパイに接続すれば起動が開始されます。

次に、シリアルからのログインです。

##Windowsの場合
いくつか方法がありますが、ここでは[TeraTerm](https://osdn.jp/projects/ttssh2/)を使用した例で説明します。
1. TeraTermをインストールします。
2. デバイスマネージャーを開き、"ポート(COMとLPT)"の項目を確認します。USBシリアル変換ケーブルが認識されていると、この項目に表示されます。そこにあるシリアルポート(COMXXという形式、XXは数字）を覚えておきます。
3. TeraTermを起動します。何も設定されてない場合は、"新しい接続"のダイアログが表示されます。もし、設定される場合は、メニューの"ファイル(F)"から"新しい接続(N)..."を選択すると同じダイアログが表示されます。
![new_con.jpg](https://qiita-image-store.s3.amazonaws.com/0/51272/e8f11c03-1f98-0408-40dc-03366be9bd06.jpeg)　　
4. "シリアル"を選択し、"ポート(R)"で先ほどデバイスマネージャーで確認したシリアルポートを選択して、ＯＫボタンを押します。
5. 次に、通信速度の設定をします。メニューの"設定(S)"から”シリアルポート(E)..."を選択しすると、"シリアルポート設定"のダイアログが表示されます。この中の、ボー・レートを115200に設定して、ＯＫボタンを押します。
![brate.jpg](https://qiita-image-store.s3.amazonaws.com/0/51272/240c6b9a-a46b-70ab-6f80-7a1f0aec8d80.jpeg)
6. 起動ログもしくは、ログインプロンプトが表示されれば成功です。
##Macの場合
1. ターミナルを起動します。
2. "ls /dev/tty.*"と入力します。 USBシリアル変換ケーブルが認識されていると、/dev/tty.usbXXXというファイルが見つかると思います。（XXXはケーブルによって異なります）
3. "screen /dev/tty.usbXXX 115200"と入力します。
4. 起動ログもしくは、ログインプロンプトが表示されれば成功です。

ログインIDとパスワードはデフォルトで以下になります。

ログインＩＤ：pi
パスワード：raspberry

#[Step 6.] 初期設定
基本、この状態でも普通に使用できます。
以下にいくつかの設定方法を記載しますので、好みに応じて設定してみてください。
##設定ツールの起動
コマンドを入力して、設定ツールを立ち上げます。
 > $ sudo raspi-config

以下のような画面が表示されます。
![raspi-config.jpg](https://qiita-image-store.s3.amazonaws.com/0/51272/0b1a28a6-4ff9-af5d-9f9c-2c56ac83e136.jpeg)

上下キーでメニューの選択、TABキーで\<Select\>/\<Finish\>/メニューの項目の選択が行え、Enterキーで決定となります。
終了は、\<Finish\>を選択してEnterキーを押します。

##ファイルシステムの拡張
SDカードの容量によっては、OSイメージをコピーしただけだと、SDカードのすべての領域が使えない状態です。すべての領域をできるようにするために、
 > "1 Expand Filesystem"

を選択してください。その後、再起動を行います。

##ユーザーパスワードの変更
ユーザpiのパスワードを変更したい場合は、
 > "2 Change User Password"

を選択して変更してください。

##タイムゾーンの変更
タイムゾーンでは時間帯の指定を行います。デフォルトではUTC（協定世界時）となっており、日本標準時(JST)と9時間の差があります。
タイムゾーンを日本標準時にするには、
 > "5 Internationalisation Options"

を選択し、以下の画面を表示します。![raspi-config-2.jpg](https://qiita-image-store.s3.amazonaws.com/0/51272/63fd6523-6602-3742-ca9c-d59d873ed2c9.jpeg)

次に、
 > "I2 Change Timezone"

を選択し、"Asia" -> "Tokyo"を選択してください。

##Wifi設定の変更
Wifiで使用できるチャンネルは国によって異なります。そのため、Wifiを使う予定のある人は、以下の設定を行っておいてください。

 > "I4 Change Wi-fi Country

を選択し、"JP Japan"を選択してください。

その他の項目については、必要に応じて設定ください。
ロケールを変更することで、エラー表示等を日本語で表示させることも可能ですが、別途フォントのインストールが必要なため今回は行いません。
どうしてもという方は、[Raspberry Pi 2の文字コードを変更する（日本語の設定）](http://wide-snow.hatenablog.com/entry/2015/08/30/190500)等のサイトを参考にトライしてみてください。

#[Step 7.] Wifi設定

この状態でも、EthernetにケーブルをつなげればDHCPでIPを取得して接続できます。
ここでは、Wifiの設定方法について簡単に記載します。
WPA2-PSKとWEPの２通りの方法を記載しますので、接続するアクセスポイントに合わせて設定してください。

## WPA2-PSKの場合

想定するWifiの条件は以下です。SSIDおよびパスフレーズは適宜読み替えてください。

|項目名|想定値|
|---|---|
|セキュリティ|WPA2-PSK|
|ステルス機能|オフ|
|IP割り当て|DHCP|
|SSID|sample|
|パスフレーズ|samplepasswd|

まず、Wifiアダプタが認識されているか確認します。Wifiアダプタをラズパイに差して、

 > $ iwconfig

と打って、以下のようにwlan0が表示されれば、Wifiアダプタは認識されています。ただし、まだ通信はできません。
![image](https://qiita-image-store.s3.amazonaws.com/0/51272/d19bfa9e-cacd-6b99-3dd2-19609a88f0cd.png)


以下のコマンドを実行します。

 > $ wpa_passphrase sample samplepasswd

すると以下のような文字列が出力されます。
 > network={
   　　ssid="sample"
   　　#psk="samplepasswd"
   　　psk=528c5d46ff88fa51740bca0173a86e94dd45f1b9af2043448f40f649accbc0a5
}

この情報をコピーしておきます。

次に、/etc/wpa_supplicant/wpa_supplicant.confをスーパーユーザ権限で編集して、上記でコピーした値を追加します。

 > $ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

もしくは、

 > $ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

とすると以下の画面が表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/51272/5a89456a-ced9-96c2-b0e4-01ff1fa43bec.png)

この最後にコピーした値を追加します。

![image](https://qiita-image-store.s3.amazonaws.com/0/51272/3fb36745-e6da-2d4f-2ad7-0b4076edd24e.png)

6行目にコメントでパスフレーズが書かれていますので、実運用ではこの行は削除した方がセキュリティ的によいです。

この後、再起動すればwifiが有効になっているはずです。

## WEPの場合

WEPはセキュリティが低いので、出来れば避けたいですが、PocketWifi等でWEPが必須の場合があるので記載しておきます。
想定するWifiの条件は以下です。SSIDおよびパスフレーズは適宜読み替えてください。

|項目名|想定値|
|---|---|
|セキュリティ|WEP|
|ステルス機能|オフ|
|IP割り当て|DHCP|
|SSID|sample|
|パスフレーズ|samplepasswd|

/etc/wpa_supplicant/wpa_supplicant.confをスーパーユーザ権限で編集します。

 > $ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

もしくは、

 > $ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

とすると以下の画面が表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/51272/5a89456a-ced9-96c2-b0e4-01ff1fa43bec.png)

この最後に以下の内容を追加します。

> network={
  　　scan_ssid=1
  　　key_mgmt=NONE
  　　ssid="sample"
  　　wep_tx_keyidx=0
  　　wep_key0="samplepasswd"
}

この後、再起動すればwifiが有効になっているはずです。

#その他の情報
###SDカードがうまく認識しない。
[SDカードフォーマッター](https://www.sdcard.org/jp/downloads/formatter_4/)を使ってフォーマットしてみるといいかもしれません。

###私のラズパイ、Raspberry pi 3なんですが。
[「ターミナルだけを使ってRaspberryPi 3にシリアルUSB変換ケーブルで接続する(モニタ・キーボード不要)」](http://qiita.com/Ichiro_Tsuji/items/5c20370d42fe2d07a7b6)を先にご覧になって、USBシリアル変換ケーブルをつかえるように設定してください。