ちまたに情報は満ち溢れているのでいまさらだけど自分用にまとめておく。ちなみに前回Raspberry Piを触ったのは一昨年でRaspberry Pi Zero WHで勤怠ツールを作ったとき。その前は多分5年くらい前で、 Raspberry Pi 2 Model Bで勤怠ツールを作ったとき。
OSのインストール
以前はRaspbianとかArchとか選んで直接書き込んだりファイルをSDカード上に置く形式だったけれど、いまは基本的にRaspberry Pi OSがオススメということになっている。Raspberry Pi OSは Raspbianの名前が変わったやつという認識。SDカードへの焼き込みは専用のRaspberry Pi ImagerというGUIツールがあるので、これを選ぶ。
Arch Linuxの場合はAURにあるので yay --Sy rpi-imager
でインストールできる。microSDカードを適当なSDカードリーダーに挿してUSBポートに接続すれば、mountなどはせずにrpi-imagerが認識してくれる。実行する際は管理者権限がないとSDカードに書き込めずエラーになるので、 sudo rpi-imager
で起動する必要がある。
Raspberry Pi OSには以下のバージョンがある。
- Raspberry Pi OS with desktop and recommended software
- Raspberry Pi OS with desktop
- Raspberry Pi OS Lite
だいたい書いてあるとおりで、Liteはデスクトップ環境がない。Raspberry Pi Imagerはデフォルトではwith desktopを推してくるけど、デスクトップが不要であればLiteを選択する。with desktop and recommended softwareの方はFull版として表示される。
画面を表示する
通常のRaspberry PiシリーズはHDMIケーブルが利用できる。Raspberry Pi Zeroシリーズはmini HDMIケーブルが必要になる。直接画面に繋いでも良いが、 どうせすぐにSSH経由でしか利用しなくなるので、激安HDMIキャプチャを噛ませて一瞬だけ見るのでも良い。だいたい入力から1秒くらいギャップがある。常用しないしわざわざ画面の裏に手を入れるのが面倒な人向けと言える。激安HDMIキャプチャはAliExpressやAmazonなどで買える。
こういうやつ。だいたい1000円くらいで買えて便利。ただ、表記上のスペックを満たしていないケースが多いのでその点は注意。詳しくはMS2109で検索すると良さそう。
事前にSDカードにWiFiのcredentialとSSHを起動するフラグを立てるファイルを置いておくだけで画面を見ずに接続する方法もあるけど、なんだかんだ画面を見ながらデバッグしたいということはあるのでこういうことができると良い。
キーボードを繋ぐ
通常のRaspberry PiであればUSB Type-Aが刺さるので特に問題はないがRaspberry Pi Zeroの場合はMicro USBポートしかないので、Micro USB(オス)からUSB Type-A(メス)に変換するUSB OTGケーブル/アダプタが必要になる。
UGREEN OTGケーブル USBホスト変換アダプタ micro USB オス-USB A メス 12cm ブラック
- メディア: Personal Computers
こういうやつ。
piユーザのパスワードを変更しておく
sudo raspi-config
から変更できる。普通に passwd
コマンドでもOK。
キーボードのレイアウトを変更する
デフォルトだとUK配列になってるぽい? のでUS配列にする。 sudo raspi-config
から変更できる。何気にHappy Hacking Keyboardのレイアウトが登録されていた。そのまま登録を進めていくとEnglishだけどUK配列になってしまうので、ここでUS配列にする。
IPを固定してネットワークに繋ぐ
/etc/wpa_supplicant/wpa_supplicant.conf
に無線LANのcredentialを置く。無線LANのパスワードは事前に暗号化しておく。sudo su && wpa_passphrase ESSID passphrase >> /etc/wpa_supplicant/wpa_supplicant.conf
しておいて、後で整形する。Raspberry Pi Zero Wは2.4GHz帯の規格にしか対応していないので5GHz帯のESSIDで繋ぎにいかないこと。最初忘れてて15分くらい潰した。
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=JP network={ ssid="ESSID" psk=*** }
みたいな形にしておく。次に、IPを固定するためにdhcpcd.confを編集する。最後の以下の4行を追加する。IPとかは環境による。
$ sudo vi /etc/dhcpcd.conf ... interface wlan0 static ip_address=192.168.0.2/24 static routers=192.168.0.1 static domain_name_servers=192.168.0.1
SSHする
あとはいつもどおり。
sudo systemctl enable ssh.service && sudo systemctl start ssh.service
ssh-copy-id
で接続元の端末のpubkeyを転送しておくsudo vi /etc/ssh/sshd_config
して以下の箇所を変更PubkeyAuthentication yes
にするPasswordAuthentication no
にする
sudo systemctl restart ssh.service
だいたいこれでまともにつかえるはず。