あんパン

こしあん派

久々にRaspberry Piセットアップして躓いたところメモ

ちまたに情報は満ち溢れているのでいまさらだけど自分用にまとめておく。ちなみに前回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 で起動する必要がある。

f:id:masawada:20210117101322p:plain
Raspberry Pi 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で検索すると良さそう。

f:id:masawada:20210117102638p:plain
OBSで画面出力をキャプチャする

事前にSDカードにWiFiのcredentialとSSHを起動するフラグを立てるファイルを置いておくだけで画面を見ずに接続する方法もあるけど、なんだかんだ画面を見ながらデバッグしたいということはあるのでこういうことができると良い。

キーボードを繋ぐ

通常のRaspberry PiであればUSB Type-Aが刺さるので特に問題はないがRaspberry Pi Zeroの場合はMicro USBポートしかないので、Micro USB(オス)からUSB Type-A(メス)に変換するUSB OTGケーブル/アダプタが必要になる。

こういうやつ。

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

だいたいこれでまともにつかえるはず。