TORIPIYO DIARY

recent events, IoT, programming, security topics

Raspberry Pi Zero WHにRaspbian OSを導入する

f:id:ha107chan:20180408193229j:plain

これは、
introduce Raspbian OS into Raspberry Pi Zero WH - TORIPIYO DIARY
の日本語訳です。

最近、スイッチサイエンスでrasbperry pi zero whを1800円で購入しました。複雑な心境ですが、実際このデバイスは私が大学入学時に初めて購入したパソコンよりスペックが良いです。当時、そのパソコンは15万円以上しました。

Raspberry Pi Zero WHにRaspbian OSを導入する方法を紹介したいと思います。この手順では、外部ディスプレイやキーボードは必要ありません。Raspberry Pi Zeroへの初回のWifi設定は、USB経由で実施されます。

必要なもの

電子工作のためにヘッダピンが欲しかったのでWH版にしています。
www.switch-science.com

  • micro SD カード 8GB

Rasbian OSのイメージを、このmicroSDカードに書き込みます。

  • micro SD カードリーダー

Macからraspberry pi のOSイメージを書き込む時に使います。
http://www2.elecom.co.jp/data-media/memory-rw/mr-c22/image/MR-C22WHF1_01.jpg

USB経由で、raspberry pi zero whに電源を供給するに利用しています。
akizukidenshi.com

1. 公式サイトからOSイメージを取得

まず、Raspbian OSのイメージをmicro SDカードに書き込む必要があります。以下のページにアクセスして、"RASPBIAN STRETCH LITE"のzipファイルをダウンロードしてください。(デスクトップバージョンの方ではありません。)
www.raspberrypi.org

2. etcherでOSイメージをmicro SDカードに書き込む

f:id:ha107chan:20180409203557j:plain
etcherというアプリケーションを使用します。etcherは、"brew cask install etcher"コマンドでインストールされます。(homebrew cask をインストールしてない場合は、こちらなどを参照 homebrewインストール個人メモ) etcherを起動して、ダウンロードされたイメージと書き込むmicro SD カードを選択して、'Flash'をクリックします。OS イメージのmicro SDカードへの書き込みが始まります。
f:id:ha107chan:20180416111646p:plain

3. SSH接続の有効化

OSイメージの書き込み後、micro SDカードをMacに繋げると、boot driveがマウントされます。SSHサービスを有効化させるために、sshファイルを作成します。

touch /Volumes/boot/ssh
4. USB経由のインターネット接続有効化

"rootwait" と "quiet" の間に、"modules-load=dwc2,g_ether" の設定を追加します。

vi /Volumes/boot/cmdline.txt

"dtoverlay=dwc2"をconfig.txtファイルの最終行に追加します。

echo "dtoverlay=dwc2" >> /Volumes/boot/config.txt

ここまで設定したら、boot driveをアンマウントして、micro SDカードをRaspberry Pi Zero WHに差し込みます。

5. USB経由でRaspberry Pi Zeroと接続

Macの共有設定を変更します。("System Preference" => "Sharing").
f:id:ha107chan:20180416112728p:plain

f:id:ha107chan:20180415234758j:plain
(micro USBは、Raspberry Pi Zero WHのアダプターに挿入されています。)

MacRaspberry Pi Zero WHをmicro USBコネクターで繋ぎます。

ユーザ名は"pi", パスワードは"raspberry"です。

~: ssh pi@raspberrypi.local
pi@raspberrypi.local's password:
Linux raspberrypi 4.9.80+ #1098 Fri Mar 9 18:51:28 GMT 2018 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
6. Wifi 設定

Raspberry Pi Zero に接続させる予定のWifiの"ESSID"と"password"を控えておきます。Raspberry Pi Zero が認識できるWifiのESSIDの一覧は、"sudo iwlist wlan0 scan | grep -i essid"コマンドで確認できます。

_ESSID="target ESSID name"
vi pass.txt (write wifi password into pass.txt file)
sudo cp -ipv /etc/wpa_supplicant/wpa_supplicant.conf{,.backup}
sudo sh -c "wpa_passphrase ${_ESSID} < pass.txt >> /etc/wpa_supplicant/wpa_supplicant.conf"

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf # remove "#psk" line for security
rm -i pass.txt # remove pass.txt file for security

sudo wpa_cli -i wlan0 reconfigure # reconfigure wlan0 interface

ifconfig wlan0 # take a note of assigned IP address of wlan0

wifiに接続できたら、wlan0インターフェースにIPアドレスアサインされるので、鍵認証作業のためにIPアドレスをメモしておきます。

7. 鍵認証の作成
# on mac
cd ~/.ssh
ssh-keygen -t rsa -f pizero

ssh-copy-id -i pizero.pub pi@<ip address of raspberrypi zero>   # transfer public key to raspberrypi zero

ssh -i pizero.pub pi@<ip address of raspberrypi zero>

# on Raspberry Pi Zero
# disable password authentication
sudo cp -ipv /etc/ssh/sshd_config{,.backup}
sudo sh -c 'echo "PasswordAuthentication no" >> /etc/ssh/sshd_config'

sudo systemctl restart ssh
8. MacのUSB接続設定の無効化

"System Preference" => "Sharing" で、5番と逆の設定をする。

9. Raspberry Pi Zero のUSB接続設定の無効化
# on raspberry pi shell
# remove "dtoverlay=dwc2"
sudo vi /boot/config.txt

# remove "modules-load=dwc2,g_ether"
sudo vi /boot/cmdline.txt

これで、Raspberry Pi Zero WHで、Raspbian OSが使えるようになりました。

参考