Raspberry Pi OS Busterのまま動かし続けていたトイレサイネージを、Raspberry Pi OS Bullseyeに入れ替えました。

以前から度々ブログに書いている通り、HyperPixel4 Square Touchの初期リビジョンでは、BullseyeのLinuxカーネル5.15以降動作できなくなっているため、Busterか、BullseyeのLuinux 5.10の最終バージョンまでしか動作できません。
というわけで、Trixieのリリースも近づいている今になってBullseye環境を構築する話です。
なお、HyperPixel4 Square Touchの初期じゃないリビジョンはふつうに最新のRaspberry Pi OSで使用可能です。この記事は、「最新のOSを使ってセットアップしたら映像が荒れるんだけど!!?!?!」という人向けの初期リビジョン延命手順となります。
OSの構築
Bullseyeのインストールは、ImagerのメニューからLegacyを選ぶのではだめで、Linux 5.10が使用された最後のリリースを入手する必要があります。該当のリリースは2022-01-28版で、ここからダウンロード可能です。zipをダウンロードして、Raspberry Pi ImagerでSDカードに書き込みます。
https://downloads.raspberrypi.com/raspios_armhf/images/raspios_armhf-2022-01-28/
書き込んで起動ができたら、さらに5.10系の最後のカーネルまでアップデートをします。なんだかaptで取れなかったので、リポジトリから直接ダウンロードして、dpkgコマンドでインストールしています。その後は、raspberrypi-kernelパッケージが更新されないように、apt-markコマンドというものでholdをして、バージョンを固定します。
$ wget https://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-kernel_1.20220308-2_armhf.deb $ sudo dpkg -i raspberrypi-kernel_1.20220308-2_armhf.deb $ sudo apt-mark hold raspberrypi-kernel
固定した後は普通にOSをアップデートします。しても大丈夫そうでした。たぶん。
$ sudo apt update && sudo apt full-upgrade -y
HyperPixel4 Square Touchのセットアップ
いまのトイレサイネージはCM4で運用しているので、hyperpixel4リポジトリをsquare-pi4ブランチでcloneします。そしてインストールスクリプトを実行。
$ git clone https://github.com/pimoroni/hyperpixel4 -b square-pi4 $ cd hyperpixel4/ $ sudo ./install.sh
KMSだとだめみたいなので、FakeKMSに変更します。
sudo sed -i -e "s/vc4-kms-v3d/vc4-fkms-v3d/" /boot/config.txt
作業は以上で終わりです。OSを再起動すればHyperPixel4 Square Touchが使えるようになっています。
サイネージのセットアップ
ディスプレイからカーソルを消して、スクリーンセーバー(ディスプレイブランク)を無効化するために、lightdm.confを編集。
$ sudo vi /etc/lightdm/lightdm.conf [Seat:*] # Seat:*セクションにこれを記述 xserver-command=X -s 0 dpms -nocursor
ブラウザの自動起動はLXDEの自動起動スクリプトを/etc/xdgにあるものから上書きするために、~/.config以下にディレクトリとファイルを作成して記述します。Busterのときには--hide-scrollbarsオプションを付けていませんでしたが、なんか付けないと違和感があったので今回から追加しました。
$ mkdir -p ~/.config/lxsession/LXDE-pi $ vi ~/.config/lxsession/LXDE-pi/autostart @chromium-browser --start-fullscreen --disable-component-update --hide-scrollbars --app=(ここにサイネージのURL)
これで完成です(冒頭の写真)。ちなみに、autostartを上書きすると、ブラウザが起動するまでの間下のような映像をしばし見せられるのですが、これを変えられないかなーと思って調べて回った結果、これを出しているのはWaylandコンポジタのMutterで、設定するところはない模様。マジで?まあ、PCManFMで壁紙が設定できれば良いという感じだったのでしょうか……?今回はそれを起動しないようにしたので(使うなら/etc/xdg/lxsession/LXDE-pi/autostartの中身を~/.config/lxsession/LXDE-pi/autostartに丸写しする)、数秒オレンジの波模様を見せられるのは我慢しましょう。

まとめ
HyperPixel4 Square Touchの初期リビジョン向けの延命環境セットアップ手順でした。初期リビジョンのやつは2019年に購入したもので、ぼちぼち6年になるので、もう許してやってもいいんじゃないかという気持ちもありますが、よほど物理破損とかで使えなくなるまでは使い倒していきたいなと思っています。あるいは、ドライバーの魔改造とかで最新環境でも動くようになればいいんですけどねー。
ところで、来週末はOSC2025 Nagoyaです。いつもどおり展示しに行くので、お近くの方はぜひ。薄い本の頒布と、LTもやるぞー。