[2021年11月版] RaspberryPiをヘッドレス(キーボード、モニタ、マウスなし)でセットアップする(raspios-bullseye編)
はじめに
pythonの自学の為に、RaspberryPiをセットアップする。VMで作成しても良いが、複数台のPCからアクセスをしたい為、省電力のRaspberryPiとした。
RasberryPiを初期セットアップするには、モニタ、キーボード、マウスを接続して行うが、いちいち接続するのが面倒。よって、それらの機器を接続せずにセットアップを行ってみる。セットアップには、Windows10を使用した。
OSの準備
OSのダウンロードは、公式ページからダウンロードするが、ダウンロードに時間が
かかる為、ミラーサイトよりダウンロードする。
- RaspberriPi 公式
- /raspios_lite_arm64/images/raspios_lite_arm64-2021-11-08
- JAIST ミラー
- /pub/raspberrypi/raspios_lite_arm64/images/raspios_lite_arm64-2021-11-08
ブート用SDカードの作成
SDカードにOSを書き込む方法は以下の方法がある。
- Raspberry Pi Imagerを使いオンラインで書き込む
- Raspberry Pi Imagerを使いオフラインで書き込む
- balenaEtcherでOSを書き込む
Raspberry Pi Imagerは動作がもっさりしているので、今回は3の方法を使用する。
書込み方法は、特に難しくなく画面にしたがって行えば出来る為、ここでは割愛する。
書込み後、一度SDカードを外して、再度PCにセットすると、「boot」領域がマウント(bootというボリューム名)される。
ssh起動用ファイルの作成
raspiosはデフォルトでsshサービスが無効化している為、sshサービスを起動するように「boot」領域に拡張子無しのsshファイル(ディレクトリでも可)を作成する。
このファイルは起動時に削除される。
Wi-Fi接続用の設定ファイルの作成
Wi-Fiを使ったほうが、設置するのに電源ケーブルのみとなり容易なので
こちらの設定を行う。LANケーブルを直接接続する場合は、この設定は不要。
「boot」領域に、wpa_supplicant.confを作成し、Wi-Fi設定を行う。
1 2 3 4 5 6 7 8 |
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=JP network={ ssid="<SSID名>" psk="<パスワード>" } |
シリアルコンソールの設定
シリアルケーブルで接続できるように、「boot」領域の、config.txtを編集する。以下の設定をファイルの最終行に追加する
1 2 |
[all] enable_uart=1 |
RaspberryPiの起動
上記の準備や設定が完了したら、sdカードを本体に挿入し、電源ケーブルを
接続して、本体を起動する。本体のグリーンランプの点滅が落ち着いたら
RaspberryPiが起動していると思われる。
ssh接続する
raspberrypi.localで接続する
windows10やmacを使用している場合、「raspberrypi.local」で接続できる。
しかし、同一セグメントに複数の本体がある場合、接続できない場合がある。
接続できないない場合、IPアドレスを調べてsshする。
1 |
ssh pi@raspberrypi.local |
IPアドレスを調べる
MACアドレスから当該本体のIPアドレスを調べる。
MACアドレスは、RaspberryPi4から変更されているので下表を参考にする。
format 1 | format 2 | format 3 | 備考 |
---|---|---|---|
B8:27:EB:xx:xx:xx | B8-27-EB-xx-xx-xx | B827.EBxx.xxxx | RasberryPi4以外 |
DC:A6:32:xx:xx:xx | DC-A6-32-xx-xx-xx | DCA6.32xx.xxxx | RasberryPi4 |
E4:5F:01:xx:xx:xx | E4-5F-01-xx-xx-xx | E45F.01xx.xxxx | 産業用? |
- 192.168.10.X の10から50を調べる場合
1 2 3 4 5 6 7 8 9 |
# cmdプロンプト > 10..50 | % { ping -n 1 192.168.10.$_ } pingの結果 # Raspberry4以外の場合 > arp -a | find "b8-27-eb" # Raspberry4の場合 > arp -a | find "dc-a6-32" |