[超初心者向け]RaspberryPiにOS(Raspbian)をインストールして起動し、vimやScratchが使えるようになるまで

#**本手順のRaspbianのバージョン**
**[Release date:2017-01-11]**で確認しています。
#**OS(Raspbian)をインストールしてWi-Fiを設定する**
##設定手順の一例
RaspberryPiはOSをSDカードに書き込みますが、その方法は2通あります。NOOBSより直接イメージを書き込む手順の方が失敗しにくいようです。リンク先の手順は前提となるRaspbianのバージョンが古く、実際と異なる場合があります。
###[SDカードに直接イメージを書き込み、USBシリアル変換ケーブルでコンソール画面に入り、Wi-Fiの設定等を行うまでの手順](http://qiita.com/lutecia16v/items/479b220509069b2c753c)
SDカードにイメージを書き込むときにPCとOSイメージ書き込みアプリが必要。

###[NOOBSでインストールを行い、Wi-Fiの設定等を行うまでの手順](http://qiita.com/aryoa/items/86ddae2212c789ddece0)
HDMI接続モニタ・USBキーボード・USBマウスが必要。

##RaspberryPiを起動する

* OSインストール済みのmicro SDカードを差し込みます<BR>
![Slack for iOS Upload3.png](https://qiita-image-store.s3.amazonaws.com/0/80392/93944c08-a23c-2b89-c9ef-471604b4b9be.png)<BR><BR>
* ACアダプタに接続されたmicro USBケーブルを差し込みます<BR>
![Slack for iOS Upload2.png](https://qiita-image-store.s3.amazonaws.com/0/80392/6fc78a2a-fceb-caea-75de-55ef7a447c49.png)<BR><BR>
* 緑色のLEDが点滅していることを確認します<BR>
![7993b43a-9270-ac18-0e0e-540034a2e403.jpg](https://qiita-image-store.s3.amazonaws.com/0/80392/e1903518-c2eb-6c95-b837-e463b24d2bc7.jpeg)

##コンソール画面の表示
2通りの方法があります。

* [USBシリアル変換ケーブルとPuTTYやTeratermなどのターミナルソフトを使う](http://qiita.com/lutecia16v/items/479b220509069b2c753c#step-4-usb%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E5%A4%89%E6%8F%9B%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E8%A8%AD%E5%AE%9A)<BR>→ PCさえあれば接続できるので手軽ですが、使えるようになるまでがちょっとだけ面倒です
* HDMI接続モニタ・USBキーボード・USBマウスを使用する<BR>→ 機材を用意するのが面倒ですが、簡単・確実です

有線LANは何も設定しなくてもLANケーブルを繋ぐだけでDHCPでIPアドレスを取得してくれます。SSH接続する場合は、有線LANまたはWi-FiのIPアドレスを確認しておきます。

###GUIでIPアドレスを確認する
RaspberryPiにHDMI接続モニタ・USBキーボード・USBマウスを接続して起動すると下記のGUIが起動するはずです。DHCPでIPアドレスが取得できる有線LANに接続している場合は、右上のネットワークアイコンにマウスオーバーすればIPアドレスが表示されます。下図では「192.168.0.3」であることが分かります。
![192.168.0.3  2017-02-11 22-51-15.png](https://qiita-image-store.s3.amazonaws.com/0/80392/d1e3bcde-6d6d-33e9-74ab-e1a3272f6eaa.png)

###GUIでWi-Fiを設定する
RaspberryPi 3はWi-Fi内蔵ですが、それ以外のモデルではあらかじめUSB接続タイプのWi-Fiアダプタ([一例](http://amzn.asia/3uxe52s))をRaspberryPiのUSBポートに接続しておく必要があります。

* 接続するSSIDを選択します
![スクリーンショット 2017-02-11 23.19.12.png](https://qiita-image-store.s3.amazonaws.com/0/80392/241a778b-a4af-6ff4-6627-078e3c4f8774.png)<BR><BR>

* パスワードを入力します
![192.168.0.3  2017-02-11 23-22-43.png](https://qiita-image-store.s3.amazonaws.com/0/80392/3ecb95b1-85dd-852a-9bf9-6daad4fb1859.png)<BR><BR>

* 接続できました
![192.168.0.3  2017-02-11 23-33-41.png](https://qiita-image-store.s3.amazonaws.com/0/80392/680d6f0e-e98f-e60f-42ed-1517501cbc71.png)<BR><BR>

* Wi-FiのIPアドレスを確認します
![スクリーンショット 2017-02-11 23.57.58.png](https://qiita-image-store.s3.amazonaws.com/0/80392/4ad49c10-c633-0571-5eb3-cae897020e8a.png)<BR><BR>

ここで設定したWi-Fiのアカウント情報は**`/etc/wpa_supplicant/wpa_supplicant.conf`**に書き込まれています。

###GUIでターミナルを起動する
![192.168.0.3  2017-02-11 22-52-51.png](https://qiita-image-store.s3.amazonaws.com/0/80392/86153bf7-68d6-51ef-8453-b66e929943a5.png)

###ターミナルでIPアドレスを確認する
ターミナル画面を開き**`ifconfig`**コマンドを打つとIPアドレスがわかります。「**$**」のあとが入力するコマンドを表しています。2行目以降はコマンドの実行結果が出力されている様子です。下記の場合、192.168.0.101がRaspberryPiの有線LANIPアドレスであることが分かります。「eth0」は有線LAN、「wlan0」はWi-Fiを表します。

```bash
$ ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:02:44:cb  
          inet addr:192.168.0.3  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::aa0:2c5c:431e:d3e3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:135 errors:0 dropped:1 overruns:0 frame:0
          TX packets:108 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:23118 (22.5 KiB)  TX bytes:14815 (14.4 KiB)
(以下省略)
```

###SSHを有効化する
2016年11月頃以降のRaspbianイメージから、セキュリティを考慮してデフォルトではSSHが無効になっています。SSHを利用する場合は、ターミナル画面を開いて以下の手順で有効化します。グレーバックの画面では、[↑][↓][←][→]キーで選択、[Enter]キーで決定します。

```bash
$ sudo raspi-config
```

![pi@raspberrypi: ~ — ssh pi@192.168.0.3 — 90×30 2017-02-11 22-25-40.png](https://qiita-image-store.s3.amazonaws.com/0/80392/e546c811-370f-add2-20c3-77ee610fc61a.png)
![pi@raspberrypi: ~ — ssh pi@192.168.0.3 — 90×30 2017-02-11 22-26-00.png](https://qiita-image-store.s3.amazonaws.com/0/80392/1988c7ab-49d8-e557-9cac-7dea84a3a5dc.png)
![pi@raspberrypi: ~ — ssh pi@192.168.0.3 — 90×30 2017-02-11 22-26-28.png](https://qiita-image-store.s3.amazonaws.com/0/80392/2460d26a-2cbb-0c2b-024f-15924b163e6d.png)


###パスワードを変更する
RaspberryPiを常時起動させておく場合は、セキュリティを考慮してpiユーザーのパスワードを変更しましょう。新しいパスワードを聞かれたら同じものを2回入力します。

```bash
$ sudo passwd pi
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
```

#**RaspberryPiにSSHで接続する**
PCからSSHで接続するには、RaspberryPiのIPアドレスが必要です。IPアドレスを調べる手順は前項を参照して下さい。
デフォルトのログインアカウントは下記の通りです。

```
ID pi
PW raspberry
```

##Mac
* 標準で入っているターミナルを起動します<BR>
![スクリーンショット 2016-08-01 20.13.24.png](https://qiita-image-store.s3.amazonaws.com/0/80392/d662b7b5-7920-ca29-df28-ba1e8b966581.png)<BR><BR>

* 次のコマンドを実行します(xx.xx.xx.xxはRaspberryPiのIPアドレス)

```bash
$ ssh pi@xx.xx.xx.xx
```

* 初回接続時は下記のように尋ねられるので、**`yes`**を入力します

```
The authenticity of host '192.168.0.7 (192.168.0.7)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?
```

* **`...password:`**と表示されたら**`raspberry`**を入力します。パスワードは入力しても何も表示されません。<BR>
下図のような表示になったらログイン成功です<BR>
![スクリーンショット 2016-08-01 20.19.44.png](https://qiita-image-store.s3.amazonaws.com/0/80392/02935f72-08aa-0333-482a-d50885b52455.png)

##Windows
今回はターミナルソフトとしてインストール不要のPuTTYを使用します。

###PuTTYをダウンロードする
ダウンロードは**[こちら](https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)**。
デスクトップ等にダウンロードして、下図のアイコンをダブルクリックすれば起動します。
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/80392/7586fb10-109a-9203-dc29-877711bb2575.png)

###PuTTYでSSH接続する

* PuTTYを起動します
* RaspberryPiのIPアドレスを入力して[Open]をクリックします<BR>
![b4818159-7cbd-99ef-3107-845f01eeb814.png](https://qiita-image-store.s3.amazonaws.com/0/80392/1e1f4e4a-db4f-63d5-35fd-49e78da1df0a.png)<BR><BR>
* 初回接続時のみ下図が表示されるので[はい]をクリックします<BR>
![PuTTY Security Alert 2016-08-01 13.51.59.png](https://qiita-image-store.s3.amazonaws.com/0/80392/d9238f22-caec-37f4-0444-124b709fb26b.png)<BR><BR>
* **`Login as:`**と表示されたら**`pi`**<BR>**`...password:`**と表示されたら**`raspberry`**<BR>を入力します。パスワードは入力しても何も表示されません<BR>
![34a18d44-435b-77bd-3cc4-9e76bd738e6f.png](https://qiita-image-store.s3.amazonaws.com/0/80392/ed6fe180-d3b4-fa00-d88d-49eab53dea5f.png)<BR><BR>
* 下図のような表示になったらログイン成功です<BR>
![1ff18ed5-a68d-badc-8bcf-b58ec5b94acf.png](https://qiita-image-store.s3.amazonaws.com/0/80392/3d767e70-dffb-850c-8be2-b6af1f61138f.png)<BR><BR>

#**インターネットに接続されていることを確認する**
**`wget`**コマンドで適当なURLを打ってみればインターネットに接続できているか確認ができます。試しにhttps://google.co.jp に接続してみましょう。「**$**」のあとが入力するコマンドを表しています。2行目以降はコマンドの実行結果が出力されている様子です。インターネットに接続されていれば、`index.html`がダウンロードされます。

```bash
 $ wget https://google.co.jp
--2016-03-23 17:53:19--  https://google.co.jp/
Resolving google.co.jp (google.co.jp)... 2404:6800:4003:809::2003, 106.162.198.104, 106.162.198.123, ...
Connecting to google.co.jp (google.co.jp)|2404:6800:4003:809::2003|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.google.co.jp/ [following]
--2016-03-23 17:53:30--  https://www.google.co.jp/
Resolving www.google.co.jp (www.google.co.jp)... 2404:6800:4007:805::2003, 106.162.192.173, 106.162.192.167, ...
Connecting to www.google.co.jp (www.google.co.jp)|2404:6800:4007:805::2003|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

index.html              [ <=>                  ]  18.90K  --.-KB/s   in 0.1s

2016-03-23 17:53:32 (130 KB/s) - ‘index.html’ saved [19358]
```

#**パッケージリストのアップデートとvimのインストールを行う**
RaspberryPiでパッケージのインストールを行うときは、必ず最初にパッケージリストのアップデートを行います。また、テキストエディタとしてviがあらかじめインストールされていますが、日本語キーボードではまともに動作しないので、vimをインストールします。`sudo`は管理者として実行するためのコマンドです。アプリのインストールや再起動など、管理者権限が必要な時にコマンドの前につけます。

```bash
$ sudo apt-get update
  (途中省略)
$ sudo apt-get install -y vim
  (途中省略)
```

#**vimでテキストを編集する**
Linuxの設定は、そのほとんどがテキストファイルの編集によって行われます。代表的なテキストエディタであるvimの基本的な使い方を覚えましょう。
**`$ vim {file_name}`**でvimが起動します。`helloworld.txt`というファイルを作成して編集してみましょう。

```bash
$ vim helloworld.txt
```

![pi@raspberrypi_ ~ 2016-08-01 12.54.28.png](https://qiita-image-store.s3.amazonaws.com/0/80392/934eb452-689d-bdaf-990c-11d3fa89355a.png)

vimが起動しました。しかし現在は「コマンドモード」なので文字が入力できません。「**i**」キーを押すと編集モードに変わって入力できるようになります。画面左下の**-- INSERT --**が目印です。
![pi@raspberrypi_ ~ 2016-08-01 12.57.45.png](https://qiita-image-store.s3.amazonaws.com/0/80392/3d16e83e-6385-63e2-8513-21fda5ecf4fb.png)<BR><BR>
何か文字を打ってみましょう。
![pi@raspberrypi_ ~ 2016-08-01 13.00.51.png](https://qiita-image-store.s3.amazonaws.com/0/80392/b985d3c2-2a36-5030-a609-9ac69fd41027.png)<BR><BR>
ファイルを保存して終了しましょう。「**Esc**」キーを押すとコマンドモードに戻るので、**`:wq`**と入力して「**Enter**」キーを押します。(保存せずに終了するときは、**`:q！`**と入力して「**Enter**」キーを押します)
![pi@raspberrypi_ ~ 2016-08-01 13.05.38.png](https://qiita-image-store.s3.amazonaws.com/0/80392/9996288c-f83a-b2a2-9a6c-e83004f81792.png)<BR><BR>
書き込めているか確認します。**`cat`**はテキストファイルの中身をを表示するコマンドです。**`cat he`**あたりまで入力して「**Tab**」キーを押すと最後まで補完してくれます。

```bash
 $ cat helloworld.txt
I am SAMURAI !!
```
書き込めていますね。

##(参考)vimコマンド一覧
http://qiita.com/merrill/items/9c800030333ab4c9408f

##練習問題
**`test.json`**というファイルを作成し、下記の内容を書き込んで保存して下さい。**PuTTYでペースト(貼付け)する時はマウスの右ボタンをクリックします**。

```json:test.json
{
    "Lunch": [
        "rice curry", 
        "salad", 
        "chocolate cake"
    ]
}    
```
書き込めているか**`cat`**コマンドで確認しましょう。

#**RaspberryPiをシャットダウンする**
次のコマンドを実行するとシャットダウンします。しばらく緑色のLEDが激しく点滅し、赤色LEDの点灯だけに変わったらmicro USBケーブルを抜いてOKです。

```bash
$ sudo poweroff
```


#**GUIにリモート接続する**
UNIX系のOSには「X Window System」(以下、X)によるGUI環境が備わっており、Raspbianでも標準でインストールされます。HDMI接続モニタを使用している時はデフォルトで自動的にXが起動するようになっていますが、コマンドプロンプトの状態であれば次のコマンドでXが立ち上がります。

```bash
$ startx
```

XはSSH同様にリモート接続にも対応しています。接続するためのアプリはVNCがその代表ですが、今回は設定不要で簡単なxrdpを使用します。PC側は「リモートデスクトップ」アプリを使用します。Windowsには標準で入っており、Macの場合はApp Storeでアプリを入手することができます。「Microsoft Remote Desktop」で検索して下さい。

あらかじめRaspberryPiにxrdpをインストールしておきます。

```bash
$ sudo apt-get install -y tightvncserver xrdp
  (途中省略)
```
##リモートデスクトップアプリで接続する
* リモートデスクトップアプリを起動し、RaspberryPiのIPアドレスを入力します
![rdp1.jpg](https://qiita-image-store.s3.amazonaws.com/0/80392/0239b2a9-3798-ce79-ecd1-8a7e6e580286.jpeg)<BR><BR>
* RaspberryPiのIDとパスワードを入力します
![rdp2.PNG](https://qiita-image-store.s3.amazonaws.com/0/80392/9a6f8e25-359c-afb4-4de0-1e2d12411ab5.png)<BR><BR>
* デスクトップが表示されました。GUIでプログラミングができる[Scratch](https://scratch.mit.edu/)なども使えます
![192.168.0.3  2017-02-11 22-59-46.png](https://qiita-image-store.s3.amazonaws.com/0/80392/f087805a-1d3f-7ba0-759a-d2a16d70e19c.png)

#**固定IPアドレスを割り当てる**
DHCP環境だと接続するたびにIPアドレスが変わる場合があり、SSHで接続するには不便なので、有線LANかWi-Fiに固定IPアドレスを割り当てましょう。ただし、固定IPアドレスを設定後にRaspberryPiを勉強会などに持って行く場合は、あらかじめ下記設定を無効化しておきます(行頭に「#」を追加してコメントアウトすればOKです)。
##有線LAN

```bash
$ sudo vim /etc/dhcpcd.conf
```
以下を末尾に追記します。接続するネットワーク環境に合わせて値は変更して下さい。

```dhcpcd.conf
interface eth0
static ip_address=192.168.0.100/24　 # 固定IPアドレス。/24はサブネットマスク
static routers=192.168.0.1           # デフォルトゲートウェイ
static domain_name_servers=8.8.8.8   # DNS。8.8.8.8はGoogleのPublic DNS
```

##Wi-Fi

```bash
$ sudo vim /etc/dhcpcd.conf
```
以下を末尾に追記します。接続するネットワーク環境に合わせて値は変更して下さい。

```dhcpcd.conf
interface wlan0
static ip_address=192.168.0.100/24　 # 固定IPアドレス。/24はサブネットマスク
static routers=192.168.0.1           # デフォルトゲートウェイ
static domain_name_servers=8.8.8.8   # DNS。8.8.8.8はGoogleのPublic DNS
```