以下,Raspberry Pi Zeroと書くのは長いため,RPZと省略する場合があります.
Macの場合とWindowsの場合両方に対応しています
1. Raspberry Pi Zero のセットアップ
USB 1本とSDカードライタだけでできるRaspberry Pi Zeroのセットアップ方法を紹介します.
1.1 OSのインストール
1.1.1 OSのダウンロード
Raspberry Pi専用のOSであるRaspberry Pi OS(旧Raspbian)は,公式サイトのダウンロードページからダウンロードできます.しかし,海外サーバーは遅いため,日本にあるミラーサーバーを利用しましょう.
WITH DESKTOP版とLITE版の違いは主にデスクトップ環境の有無です.Full版はWITH DESKTOPにさらにおすすめのソフトウェアが付属したものです.これらは後からでもインストールできます.自分の目的にあったものを選びましょう.サーバーやIoTデバイスを作る場合は,LITEで十分でしょう.今回は,IoTデバイスを作りたいので,LITEを選択します.
最新のフォルダを開き,<日付>-raspios-buster-armhf.zip
または<日付>-raspios-buster-lite-armhf.zip
をダウンロードします.容量が大きなファイルなので,環境にもよりますが10分前後かかります.
1.1.2 OSの書き込み
最近になって,公式のOSをSDに書き込むためのソフトが発表されました.今回はそれを使用します.
からお使いのOSにあったRaspberry Pi Imagerをダウンロードします.Windows, Mac, Linux版が用意されています.指示に従ってインストールしてください.
実行すると上のような画面が表示されます.
CHOOSE OSを選択し
Use customを選択します
先ほどダウンロードした<日付>-raspios-buster-armhf.zip
というようなファイルを選択します..imgを選択しろと書いてありますが**.zipファイルのまま**で問題ありませんでした.
CHOOSE SD CARDを選択し,SDカードを選択します.
SDカード以外も表示されるので,間違いがないかよく確認してください.間違えるとOSや大事なデータが消える可能性があります.
WRITEを選択し書きこみます
10分ほどかかるので,紅茶でも飲みながらゆっくり待ちましょう.
1.2 パソコンからSSH接続しよう
1.2.1 USB On-the-Go Ethernetとして認識させる
まず,Raspberry Pi ZeroとUSBでインターネット接続できるように,SDカードの中身を書き換えていきます.SDを挿し直すと,boot
という名前で認識されます.その中にある,config.txt
というファイルの一番下に下記の行を追加しましょう.
#下記の行を一番下に追加
dtoverlay=dwc2
次に,commandline.txt
を以下に置き換えましょう.
rootwait
の後に modules-load=dwc2,g_ether
が追加されています.
- Raspbian WITH DESKTOPの場合
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=15ca46a5-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles
- Raspbian Liteの場合
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=a8fe70f4-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet init=/usr/lib/raspi-config/init_resize.sh
1.2.2 SSH接続を許可する
boot
の直下にssh
という空のファイルを置くことによって,ssh接続ができるようになります.
テキストエディタで空のファイルをboot
にssh
という名前で保存しましょう.このとき,.txt
などの拡張子が付かないように注意してください.
また,このファイルは一度OSを起動すると消えますが,設定は反映されているはずです.安心してください.
1.2.3 PCに接続しよう
SDカードをRPZに差し込みます.USB A-MicroB(下図のUSBケーブル)でPCに繋ぎましょう.充電用のケーブルは通信をすることができません.データ転送用のケーブルを用意してください.
RPZにはPWR IN
とUSB
と書かれた2つのUSBポートが有りますが,PWR IN
は給電専用です.必ずUSB
と書かれたポートを使用してください.そうしないとUSBを通してインターネット接続をすることができません.
RPZが起動し始めます.起動が終わるまで少し待ちましょう.緑のLEDが点滅せずに点灯するようになったら起動が完了しています.初回はかなり時間がかかるので,気長に待ちましょう.
1.2.3 ドライバの設定をしよう
ドライバの設定
COMポートとして認識されているRPZをネットワークデバイスとして認識させるために,ドライバを変更します.下記のドライバをダウンロードして解凍してください.
RPI Driver OTG
Windowsロゴを右クリックして、デバイスマネージャを開きます.
ドライバをインストールしない場合はシリアルデバイスとして認識されています.
USBシリアルデバイスという項目を右クリックして,ドライバーの更新をクリックします.
コンピュータを参照してドライバーソフトウェアを検索 を選択します.次へを押します.
先程ダウンロードしたzipファイルを解凍したディレクトリを指定します.次へを押します.
成功すると.ネットワークアダプターの欄にUSB Ethernet/RNDIS Gadgetが表示されます.
デバイスマネージャを閉じましょう.
1.2.4 SSH接続しよう
ターミナル,またはパワーシェルで以下のように打つことで、ssh接続することができます.
$ ssh pi@raspberrypi.local
初めて接続すると,Are you sure you want to continue connecting (yes/no)?
と聞かれるのでyes
と入力しEnterを押します.
パスワードを聞かれるので,パスワードを打ちましょう.このとき入力しても何も表示されませんが,きちんと入力できているので最後まで打ってEnterを押しましょう.
初期状態では
user name: pi
password: raspberry
になっています.
トラブルシューティング
sshで接続した際に,以下のようなエラーが出る場合があります.
これは,RPZのIPアドレスが変化した場合などに表示されます.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for raspberrypi.local has changed,
and the key for the corresponding IP address 0000::0000:0000:0000:0000%21
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:******************************************.
Please contact your system administrator.
Add correct host key in /c/Users/****/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /c/Users/****/.ssh/known_hosts:1
ECDSA host key for raspberrypi.local has changed and you have requested strict checking.
Host key verification failed.
以下のコマンドで,ホストの情報を消去することによって再び接続できるようになります.
$ ssh-keygen -R raspberrypi.local
1.2.5 シャットダウン,再起動の仕方
コンソールに以下のように打ちます
# シャットダウン
$ sudo poweroff
# 再起動
$ sudo reboot
1.3 インターネットに接続しよう
RPZからPCを介してインターネットに接続ができるように設定します.
1.3.1 インターネットの共有
Macの場合
[]-[システム環境設定]-[共有]を開きます.
下記の画面のようにインターネット共有を選択し,RNDIS/Ethernet Gadget
にチェックを入れ,インターネット共有
にチェックを入れます.
Windowsの場合
右下の**通知(吹き出しマーク)**をクリックして,すべての設定を押します
イーサネットを選び,右の欄からアダプターのオプションを変更するを押します
デバイス名が USB Ethernet/RNDIS Gadget となっているデバイスの名前を確認します.ここでは,これを「ネットワークA」と呼びます.
接続がインターネットアクセスになっているものを探します.それを右クリックします.
ネットワークをほかのユーザーに...にチェックを入れ,ホームネットワーク接続で「ネットワークA」の名前を選びます.
OKを押して終了です.
1.3.2 インターネット接続のチェック
ssh接続を行った,raspberry pi上のコンソールで,以下のコマンドを打ちます.
$ ping -c 4 8.8.8.8
以下のように0% packet loss
と表示されれば,無事インターネットに繋がっています.
$ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=6.73 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=55 time=18.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=55 time=5.90 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=55 time=6.46 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 5.907/9.480/18.816/5.398 ms
以下のように100% packet loss
と表示された場合は,うまくインターネットに接続されていません.設定を確認してもう一度やってみましょう.
$ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 169.254.98.74 icmp_seq=1 Destination Host Unreachable
From 169.254.98.74 icmp_seq=2 Destination Host Unreachable
From 169.254.98.74 icmp_seq=3 Destination Host Unreachable
From 169.254.98.74 icmp_seq=4 Destination Host Unreachable
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3141ms
pipe 4
1.4 Wifiの設定をしよう
以下のようにコマンドを打ちましょう
$ cd ~
# パスワードが履歴に残らないように,ファイルに書く
$ vi pass
# 設定をファイルに書き出す
$ sudo sh -c 'wpa_passphrase "wifiのSSID" < pass >> /etc/wpa_supplicant/wpa_supplicant.conf'
# 生のパスフレーズがコメントアウトされて書き込まれているので消去する(#psk="**********"という行)
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
# 再起動
$ sudo reboot
# つながったらパスワードファイルを消去
$ rm ~/pass
1.5 Updateしよう
セキュリティの心配があるため,定期的にソフトウェアをアップデートしましょう.
$ sudo apt-get update
$ sudo apt-get upgrade