Raspberry Pi3 B+にRASPBIAN JESSIE LITEをWifi接続しSSH接続するまで

## この記事を見て役立つ対象となる人物像は以下のイメージで書きます。

　全くRaspberry Piという言葉を知ってはいたが、よく調べていたわけでもない素人が
　購入してwifi接続するまでを、私と同じような人があちこち調べ回らず、ここだけで完結する
　情報としてまとめたい。（自分で後で見返してできるようにする目的もある）

## 前提条件として、準備したもの。
・imac（microSDカードを初期化して、RASPBIAN JESSIE LITEをダウンロードに利用）
・Raspberry Pi3（Raspberry Piシリーズにはいくつかバージョンがある、後述する）
・モニター（自宅にあるものを流用）
・HDMIケーブル（自宅にあるものを流用）
・電源ケーブルと電源（ipadの充電機とUSBケーブル「USB-A ⇔ USB microB」）
・EDIMAX(Ｒａｓｐｂｅｒｒｙ　Ｐｉ対応ＵＳＢ　ＷｉＦｉドングル)
・USBケーブルで繋げるキーボード
・microSDHC 16GB CLASS10

## 大まかな流れ
0.購入する際の情報として
1.microSDHDカードにRASPBIAN JESSIE LITEをインストール
2.キーボードの設定
3.wifi接続の設定
4.SSH接続

## 0.購入する際の情報として
結論：Raspberry Pi3 B+　を購入すればいいと思う。
理由：デフォルトでwifiやBluetoothが標準搭載されているから
（それ以上に深い理由はラズパイ脱初心者になってから用途に応じて選べばいいかと）

参考として、[pi2とpi3の比較表があるのでこちらのページを紹介](http://life-hacking.net/%E3%80%8Craspberry-pi-3%E3%80%8D%E3%81%AE%E7%89%B9%E5%BE%B4%E3%81%8A%E3%82%88%E3%81%B3%E3%80%8Cpi-2%E3%80%8D%E3%81%A8%E3%81%AE%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF%E6%AF%94%E8%BC%83%E3%80%82%E7%84%A1/)

## 1.microSDHDカードにRASPBIAN JESSIE LITEをインストール
　　　今回は、RASPBIAN JESSIE LITE　をダウンロードする。ダウンロード先は[公式HP](https://www.raspberrypi.org/downloads/raspbian/)から。

##### 手順1:Mac(PC)にSDカードを接続して、フォーマットする。（フォーマットは：ディスクユーテリティ）にて行う。
　　　ディスクユーテリティのある場所は、アプリケーションの中。その他のフォルダの中にある。
　　　スポットライトで「ディスクユーティリティ」と検索すれば起動できる。

##### 手順2:SDHCカードを選択して、消去（FAT32形式にて初期化)名前を[RASPBERRYP]にした。

##### 手順3:SDHCカードにRASPBIAN JESSIE LITEを書き込む
　　　 まずは、MacでSDHCカードも何も刺さっていない状態で次のコマンドを打つ(※注　$はターミナルのコマンド打つ場所を表現しているもので打つ必要はない：念のため）

```Mac:Macのターミナル上
$ df -h
```

```Mac:Macのターミナル上
Filesystem      Size   Used  Avail Capacity  iused     ifree %iused  Mounted on
/dev/disk1     930Gi  153Gi  777Gi    17% 40202926 203689296   16%   /
devfs          191Ki  191Ki    0Bi   100%      660         0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%        0         0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%        0         0  100%   /home
/dev/disk2s2    94Mi   94Mi    0Bi   100%    48043         0  100%   /private/
```

次に、SDHCカードを挿して同じコマンド打つ

```Mac:Macのターミナル上
$ df -h
```

```Mac:Macのターミナル上
Filesystem      Size   Used  Avail Capacity  iused     ifree %iused  Mounted on
/dev/disk1     930Gi  153Gi  777Gi    17% 40206022 203686200   16%   /
devfs          190Ki  190Ki    0Bi   100%      658         0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%        0         0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%        0         0  100%   /home
/dev/disk2s2    94Mi   94Mi    0Bi   100%    48043         0  100%   /private/
/dev/disk4s1    14Gi  1.1Mi   14Gi     1%        0         0  100%   /Volumes/RASPBERRY P
```
一番下に　/dev/disk4s1　が追加されいるのが今挿したカードでMounted onの名前もカードをフォーマットした時につけた名前と一致しているのがわかる。ちなみに、USB何もつけてない状態であれば　/dev/disk2s1　となる人もいるので、必ず自分の環境で確認した方が良い。

この名前から s1 をとって、disk の前に r をつける。
今回は /dev/rdisk4 これをSDカードで上書きできるようにするために、一度マウント状態を解除する。
SDHCカードを抜かずに行うので、ターミナル上からコマンドで実行する。

```Mac:Macのターミナル上
$ sudo diskutil unmount /dev/disk4s1
Password: ********
```

次にSDHCカードにラズパイを書き込む

```Mac:Macのターミナル上
$ sudo dd bs=1m if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/rdisk4
```

上記の解説
```Mac:Macのターミナル上
$ sudo dd bs=1m if=「ここにファイルの場所を記入する」 of=/dev/rdisk4
```
これでErrorがなければ準備は完了です。

##### 手順4:SDHCカードをRaspberryに差し込む。

HDMIケーブルでモニターに接続し、電源ケーブルを差し込むとラズベリーパイが起動します。


## 2.キーボードの設定

続いて、先にキーボードを設定してみましょう。これを先にしないと、#とか＿とか入力が
大変なのです。（場所がわからないなどで）

では早速、コンフィグ画面を起動しましょう。

```Raspberry Pi:ラズパイのコマンドライン上
$ sudo raspi-config
```

上記を打つと、ブルーバックの背景に次の画面が表示されます。
<img width="933" alt="スクリーンショット 2016-10-16 5.41.47.png" src="https://qiita-image-store.s3.amazonaws.com/0/72962/34fc5eae-8388-9206-da31-4ca4364cdc14.png">

5　Internationalisation Optionsを選択します。
続いての画面でI3 Change Keboard Layout を選択肢します。で次の画面のように、105-key　タイプを選択します。
これで、いつもの場所に#があったり_があったり。慣れた配置でコマンドが打てるようになります。

<img width="931" alt="スクリーンショット 2016-10-16 5.49.13.png" src="https://qiita-image-store.s3.amazonaws.com/0/72962/d4988d2b-941e-f4a3-0261-4d6ba52f7a66.png">

ここまでの準備が整ったらいよいよwifiに接続できる環境を構築しましょう。

## 3.wifi接続の設定

wifiの接続では大まかに２つのファイルを設定する必要があります。

### １つ目の設定

1.wifi Nano USB Adapterを接続 （今回使ったのは[EDiMAX N150：AMAZONにリンク](https://www.amazon.co.jp/ple-EDIMAX-EW-7811Un-EZmax%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%82%A6%E3%82%A3%E3%82%B6%E3%83%BC%E3%83%89150-Mbps%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B911N%E3%83%8A%E3%83%8E%E3%82%B5%E3%82%A4%E3%82%BAUSB%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF/dp/B00FGOO98O))

これをUSBに差し込み、以下のコマンドを打ち、認識されているか確認します。

```:ラズパイのコマンドライン上
$ lsusb
```

```:ラズパイのコマンドライン上
Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
```

こんな感じの情報が見れたらOK。
続いて、接続したいwifiを確認します。
まだ、この状態ではモニターにラズパイをつなげてる状態なので、コンソールのスクロールなど
不便な事もあるので、wifiの情報をテキストに書き出して確認しやすくします。
下のコマンドを打ってみましょう。

簡単に解説すると、wlan0は無線でiwlistコマンドは無線LANインターフェースの情報収集するためのコマンドで
＞＞のコマンドで wifiLst（任意につけたテキスト名）というテキストに書き込む事をしています。
lsコマンドでwifiListがある事を確認したのち、nano テキストエディタで開きます。（viエディタでも可）

```:ラズパイのコマンドライン上
$ sudo iwlist wlan0 scan >> wifiList
$ ls
wifiList
$ nano wifiList
``` 

nanoテキストエディタを開くと、下のような情報が出てくると思うので、その中から
繋げたいwifiのアクセスポイント名を探します。確認するところは ESSID に書かれているこの場合だと
"hogehoge-bg"という名前。
確認したら、nanoテキストを閉じます。閉じる方法は、ctrl+x です。

```:ラズパイのコマンドライン上
wlan0     Scan completed :
          Cell 01 - Address: A4:C7:DE:4F:A6:32
                    Channel:1
                    Frequency:2.412 GHz (Channel 1)
                    Quality=48/70  Signal level=-62 dBm
                    Encryption key:on
                    ESSID:"hogehoge-bg"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=0000000000000000
                    Extra: Last beacon: 40ms ago
                    IE: Unknown: 000F617465726D2D3832376238352D6777
                    IE: Unknown: 010882848B960C121824
                    IE: Unknown: 030101
                    IE: Unknown: 07064A5020010D14
                    IE: Unknown: 2A0100
                    IE: Unknown: 32043048606C
                    IE: Unknown: DD180050F2020101080003A4000027A4000042435E0062322F00
                    IE: Unknown: DD0900037F01010000FF7F
                    IE: Unknown: DD07000D0202010080
                    IE: Unknown: DD07000D0203010040
```

wpa_supplicant.confにwlan0のIDとPASSを書き込むのですが、ファイルのアクセス権を変更しておきます。

```:ラズパイのコマンドライン上
sudo chmod 660 /etc/wpa_supplicant/wpa_supplicant.conf
```
続いて、パスワードをハッシュ化してwpa_supplicant.confに書き込みするのに次のコマンドを打ちます。

```:ラズパイのコマンドライン上
$ sudo sh -c 'wpa_passphrase SSID名 接続のPassword >> /etc/wpa_supplicant/wpa_supplicant.conf'
```
例えば、ESSID：hogehoge-bgのパスワードが hogepassだとすると、以下のようになる。

```:ラズパイのコマンドライン上
$ sudo sh -c 'wpa_passphrase hogehoge-bg hogepass >> /etc/wpa_supplicant/wpa_supplicant.conf'
```

実行した後に、nanoテキストで開く。

```:ラズパイのコマンドライン上
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
```

```:ラズパイのコマンドライン上
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="hogehoge-bg"
        #psk="hogepass"
        psk=628c34786e57d033900eff2c6c613f76b36bd27ced182e1824b0a11d080fafb2
}
```

すると上記のようになっているので、psk=628c34786e57d033900eff2c6c613f76b36bd27ced182e1824b0a11d080fafb2の
下に次の情報を追記する。

proto=WPA2
key_mgmt=WPA-PSK
pairwise=TKIP CCMP
group=TKIP CCMP

```:ラズパイのコマンドライン上
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="hogehoge-bg"
        #psk="hogepass"
        psk=628c34786e57d033900eff2c6c613f76b36bd27ced182e1824b0a11d080fafb2
        proto=WPA2
        key_mgmt=WPA-PSK
        pairwise=TKIP CCMP
        group=TKIP CCMP
}
```

保存して終了します。ctrl+X, Yesを選んで, Enterで終了。
これで一つ目の設定を終了です。続いて２つ目を設定しましょう。

### ２つ目の設定

```:ラズパイのコマンドライン上
$ sudo nano /etc/network/interfaces
```

ファイルの中にある auto lo と書かれている行以下を編集します。 
auto lo　以下を消して以下を編集します。

auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

以下のようになっていればOKです。

```:ラズパイのコマンドライン上
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

 iface eth0 inet dhcp
 auto wlan0
 allow-hotplug wlan0
 iface wlan0 inet dhcp
 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
 iface default inet dhcp

```

これで設定完了です。再起動して確認してみましょう。

```:ラズパイのコマンドライン上
$ sudo reboot
```

再起動後に以下のコマンドで確認する。wlan0のESSIDに繋げたいwifiの名前があればOKです。

```:ラズパイのコマンドライン上
$ iwconfig

wlan0     IEEE 802.11bgn  ESSID:"hogehoge-bg"  
          Mode:Managed  Frequency:2.412 GHz  Access Point: A4:C7:CC:6F:66:14   
          Bit Rate=72.2 Mb/s   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=48/70  Signal level=-62 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:39  Invalid misc:0   Missed beacon:0

```

## 4.SSH接続

ここまでくれば後は、SSH接続です。（今回は固定IPを振らずに、接続しちゃいます。）
まずは、ラズパイに降られているIPを調べます。

```:ラズパイのコマンドライン上
$ ip route
default via 192.168.X.X dev wlan0 
default via 192.168.X.X dev wlan0  metric 303 
192.168.X.X/24 dev wlan0  proto kernel  scope link  src 192.168.X.XX 
192.168.X.X/24 dev wlan0  proto kernel  scope link  src 192.168.X.XX  metric 303 
```

ipがわかったら、Macにてssh接続しましょう。以下のコマンドを打ちます。
途中、なんか聞いてきますが、yesで回答して、
Passwordを聞かれるので、Passwordを入力します。

ちなみに、ラズパイのIDとパスワードの初期値は以下になります。
ID:pi
PASS:raspberry
です。

```Mac:Macのターミナル上
$ ssh -l pi 192.168.X.XX
```

という事で結構長かったですね。お疲れ様でした。


最後にwifiの接続で少し手こずったので、色々調べて最も参考になったサイトをご紹介しておきます。
[はじめてのRaspberryPi(Jessie)-(3)-無線LANでのネット接続入門-](http://cayman-5-tech.hatenablog.com/entry/2015/11/07/213148)