ラズパイにSPI小型ディスプレイを付けるまで

未分類

ラズパイ用に小型ディスプレイが欲しくなり、探していたところ安かったので早速購入しました。
HDMI接続とSPIがあり、SPIだと外部電源が不要ということでしたので、こちらの製品にしました。

ラズパイは「賢者のおもちゃ」だと感じました。

買ったもの

ラズパイ用SPI3.5インチディスプレイ(アマゾンで2,599円でした)

取り付けた様子

 SPIディスプレイのタッチディスプレイもちゃんと動作しました。
 解像度は480×280なので、画質がいいわけではありませんが、遊ぶには十分レベルだと思います。

Jpgを表示した様子
mp4を再生した様子

動作するまでの苦労話 聞いてください

 OSのディストリビュージョンによって動作するものとしないものがあり、何度も再インストールを繰り返しました。
 公式サイトにはドライバの情報やインストール方法が書かれていますが、ディストリビュージョンやコードネームによってはビルドできなかったり、うまく動作しません。

PiOSを焼き付けるのに使用したPiImarger


①Raspberry Pi OS(64-bit) trixie 現在の最新版
 SPIディスプレイドライバのビルドができない → 断念
 ビルドに必要なライブラリが見つかりませんでした。

# os情報
rasuser@ras:~ $ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.2
ID=debian

 しかし、OS自体のマウス動作やレスポンスは悪くなく、OSの安定性は高いと感じました。

②最新のRaspberry Pi OS(32-bit) trixie

 SPIディスプレイドライバのビルドができない → 断念
 ビルドに必要なライブラリが見つかりませんでした。

# os情報
rasuser@ras:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 13 (trixie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.2
ID=raspbian
ID_LIKE=debian

# os-releaseでは32bitか64bitか見分けがつかないのですね
rasuser@ras:~ $ getconf LONG_BIT
32

③Raspberry Pi OS(Legacy,32-bit) bookworm

 インストールは公式サイト(OSOYOO 3.5 SPI ScreenがRaspberry Pi OS bookworm(モデル#2022013800)で動作する « osoyoo.com)を参考に行ったところ、SPIディスプレイドライバのビルドは成功しました。
 しかし、ドライバをインストールしても画面映らず→断念

# os情報
rasuser@ras:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 12 (bookworm)"
NAME="Raspbian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=raspbian
ID_LIKE=debian

# bit情報
rasuser@ras:~ $ getconf LONG_BIT
32
# raspi-configでつまづく
rasuser@ras:~/rpi-fbcp/build $ sudo raspi-config
sudo: raspi-config: command not found

# raspi-configを再インストール
rasuser@ras:~/rpi-fbcp/build $ sudo apt install raspi-config
:
# 再起動後、画面が真っ暗になり、エラーが出て起動しない
C:\ > ssh rasuser@192.168.0.104
rasuser@192.168.0.104's password:
Linux ras 6.12.47+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.47-1+rpt1~bookworm (2025-09-16) aarch64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Jan 11 17:09:06 2026
fbcp: error while loading shared libraries: libbcm_host.so.0: cannot open shared object file: No such file or directory
rasuser@ras:~$
# libbcm_host.soが見つからない様子
# ディスプレイは真っ暗のまま返答がありません → OS再インストール事案

④Raspberry Pi OS(Legacy,32-bit) bookworm Lite

 同じ公式サイトを使用して、no desktopバージョンにも挑戦しましたが結果は③と同じでした。

⑤Raspberry Pi OS(Legacy,32-bit) buster

 公式サイト(OSOYOO 3.5インチ SPI Touch Display for RPi(モデル#2022013800)« osoyoo.com)で推奨されていたバージョンを使用しました。
 ※サイト内からイメージファイルがダウンロードできます

 イメージをmisroSDに焼き付けて読み込んだだけで、ディスプレイがつきました。(感動)

pi@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian

#bit情報
pi@raspberrypi:~ $ getconf LONG_BIT
32

#raspi情報
pi@raspberrypi:/ $ cat /proc/device-tree/model
Raspberry Pi 4 Model B Rev 1.5

画面の向きを変えるには、次のコマンドを使います。
角度を指定(90,180,270)できます。

# 画面の向きを変えるコマンド
pi@raspberrypi > ~/LCD-show/lcd35b-show 90

OSが古すぎてサポートが切れているのが問題ですね。
APTが使えないのは致命的 うーん

# OSのサポートが切れており、APTが使えないのが難点

pi@raspberrypi:~ $ sudo apt update
ヒット:1 http://archive.raspberrypi.org/debian buster InRelease
無視:2 http://raspbian.raspberrypi.org/raspbian buster InRelease
エラー:3 http://raspbian.raspberrypi.org/raspbian buster Release
  404  Not Found [IP: 93.93.128.193 80]
パッケージリストを読み込んでいます... 完了
E: リポジトリ http://raspbian.raspberrypi.org/raspbian buster Release には Release ファイルがなくなっています。

⑥Raspberry Pi OS(Legacy,32-bit) bookworm に再挑戦

 公式サイトの方法( OSOYOO 3.5 SPI ScreenがRaspberry Pi OS bookworm(モデル#2022013800)で動作する « osoyoo.com)を使用して、ステップごとに再起動を繰り返しながらトライアンドエラーで原因を探しました。

 公式サイトのステップ11:CLI自動ログインの設定をスキップさせたところ、SPIディスプレイによる出力が成功しました。

bookwormによるSPIディスプレイ表示

 GUIは、busterよりもかなり重たい印象で、マウスのカクツキがひどく、GUIによる操作はストレスしかありません。
 ターミナルによるコマンド操作ならなんとか使える状態。(左下の黒いところにスタートボタンが隠れています)
 APTも動作します。これなら使えそう!

SPIディスプレイでターミナルを起動した様子

 メモリ不足なのだと思いますが、かなり動作が遅いので、実際に使うのはSSHによるリモート接続がメインとなりそうです。
 bookworm Liteがあればそっちの方がよさそうですね。
 ターミナルしか使えそうにないのでw

思ったこと

 結局ドライバをインストールして、起動させるまでに2日かかりました。
 Linuxはバージョンが上がると(コードネーム)、ライブラリがかなり使えなくなるのですね。
 Windowsだと最近はバージョンによるドライバの違いを意識することがあまりなかったので、痛い目にあいました。
 紆余曲折したおかげで、ラズパイについて少しだけ知識がついた気がします。
 次はラズパイケース作りたいですね。