Raspberry Pi OS Bullseyeではカメラの他にディスプレイ周りも仕様が変わってKMSが導入されました。DSIやGPIOで接続するディスプレイはおそらくほとんどで対応が必要になっている状態です。Pimoroni HyperPixelシリーズも同じく対応が必要なので、現在は製品ページで、「/boot/config.txtからdtoverlay=vc4-kms-v3d」をコメントアウトする」ように注意書きがあります。
が、先月頃にHyperPixelシリーズについてDeviceTreeの追加コミットがあり、KMS対応ができたようです。というわけでちょっと試してみました。
DRM/KMS Pimoroni HyperPixel4 driver by 6by9 · Pull Request #4812 · raspberrypi/linux · GitHub
kernel: Bump to 5.15.21 · raspberrypi/rpi-firmware@fbcab73 · GitHub
まだOSのアップデートでは降ってきておらず、rpi-updateコマンドで最新のファームウェアを適用する必要があるため、本番利用はおすすめできない状態ですが、DeviceTreeが利用できるようになると/boot/config.txtへの記述が1行で済むようになります。
まずはHyperPixel 4。画面の回転に合わせてタッチパネルのパラメータ指定が必要になるので、一通り試してまとめました。
# 縦: LAN/USBポートが下 dtoverlay=vc4-kms-dpi-hyperpixel4 # 横: GPIOポートが下 dtoverlay=vc4-kms-dpi-hyperpixel4,rotate=90,touchscreen-swapped-x-y,touchscreen-inverted-y # 縦:SDカードスロットが下 dtoverlay=vc4-kms-dpi-hyperpixel4,rotate=180,touchscreen-inverted-y # 横: 電源/HDMIポートが下 dtoverlay=vc4-kms-dpi-hyperpixel4,rotate=270,touchscreen-swapped-x-y,touchscreen-inverted-x
続けてHyperPixel 4 Square……と思いきや、映像が乱れて実質使えていない状態。バグですかね🤔
気を取り直してHyperPixel 2.1 Round。こちらは180度回転させた時に挙動が違う以外の回転はOK。タッチはどれも反応せず……。
# 電源/HDMIポートが下 dtoverlay=vc4-kms-dpi-hyperpixel2r # SDカードスロットが下 dtoverlay=vc4-kms-dpi-hyperpixel2r,rotate=90 # GPIOポートが下のハズだけどデスクトップが出る時に0度の状態になる dtoverlay=vc4-kms-dpi-hyperpixel4,rotate=180 # LAN/USBポートが下 dtoverlay=vc4-kms-dpi-hyperpixel4,rotate=270
バグ報告してやり取りするのも大変なので、リリースされて向こうの人達が騒ぐのを待つか。いやモノグサすぎる?正式リリースまでに直っていてほしいな〜みたいな。
なお、Raspberry Piのオフィシャルディスプレイとかその他のディスプレイについてもいくつか対応が入っており、vc4-kms-dpi-もしくはvc4-kms-dsi-で始まるdtboファイルを探すと良さそうです。
rpi-firmware/overlays at master · raspberrypi/rpi-firmware · GitHub