多くのRaspberry Piユーザーは、カーネルログやシステムメッセージが長々と表示されるブート画面ではなく、クリーンでプロフェッショナルな起動体験を望んでいます。
コミュニティではfbi(フレームバッファ画像ビューア)がよく推奨されますが、根本的な制限があります。フレームバッファデバイス/dev/fb0はシステムサービスが開始する前には利用できないため、ブートプロセスの早い段階で画像を表示することができません。
このガイドでは、Plymouthを使用して、ブートの初期段階からカスタムスプラッシュスクリーンを表示する信頼性の高い方法を紹介します。
フェーズ1:カーネル出力の非表示化
ブート中にカーネルログが画面上にスクロールされると、カスタムスプラッシュの表示を妨げます。
以下のパラメータをブートコマンドラインに追加してください:
sudo sed -i '$s/$/ logo.nologo quiet loglevel=0/' /boot/firmware/cmdline.txt
各パラメータの説明:
-
logo.nologo
左上隅のRaspberry Piロゴ(またはディストリビューションのロゴ)を削除します。 -
quiet
カーネル出力の量を減らします。 -
loglevel=0
致命的なエラーメッセージのみを表示し、カーネルの出力をほぼ完全に抑制します。
重要:
cmdline.txtは、スペースで区切られたパラメータを持つ1行のテキストファイルでなければなりません。フォーマットが誤っていると、システムが起動できなくなる可能性があります。
点滅カーソルの非表示化
カーネル出力を抑えた後でも、一部のシステムでは点滅する端末カーソルが表示されることがあります。
同じ行の末尾に以下のパラメータを追加してください:
vt.global_cursor_default=0
フェーズ2:ブート用リソースの準備
画像の最適化
推奨仕様:
- 形式: PNGまたはJPG(透過が必要ならPNG推奨)
- 解像度: 最大1920×1080
- カラーパレット: 224色以下(読み込み速度向上に寄与)
- ファイル名:
splash.png
以下の場所に画像を配置してください:
/boot/splash.png
この場所であれば、カーネルが早期ブート中にアクセスできます。
ディスプレイドライバー設定の確認
以下のファイルで、正しいディスプレイドライバーが有効になっていることを確認してください:
/boot/firmware/config.txt
例:
dtparam=vc4-kms-v3d
HDMIの再初期化を引き起こす可能性のあるパラメータ(例:以下)は避けてください:
hdmi_force_hotplug=1
フェーズ3:Plymouthテーマシステムの導入
1. 必要なパッケージのインストール
sudo apt update
sudo apt install plymouth plymouth-themes -y
2. 最小限のテーマ作成
テーマ用ディレクトリを作成:
sudo mkdir -p /usr/share/plymouth/themes/silent
テーマ設定ファイルを作成:
/usr/share/plymouth/themes/silent/silent.plymouth
[Plymouth Theme]
Name=silent
Description=静的スプラッシュスクリーン
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/silent
ScriptFile=/usr/share/plymouth/themes/silent/silent.script
3. 描画スクリプトの作成
以下のファイルを作成:
/usr/share/plymouth/themes/silent/silent.script
wallpaper_image = Image("splash.png");
screen_width = Window.GetWidth();
screen_height = Window.GetHeight();
wallpaper_sprite = Sprite(wallpaper_image);
wallpaper_sprite.SetPosition(0, 0, -100);
スクリプトの処理内容:
- 事前に用意したブート画像を読み込む
- 現在のディスプレイ解像度を取得
- 全画面サイズのスプライトオブジェクトを作成
- 画像が最下層になるようにレイヤー順序を設定
4. リソースの配置とテーマの有効化
画像をコピー:
sudo cp /boot/splash.png /usr/share/plymouth/themes/silent/
テーマを有効化:
sudo plymouth-set-default-theme -R silent
重要な注意点:
-Rオプションはテーマの設定だけでなく、以下のコマンドも実行します:
update-initramfs -u
これによりテーマがinitramfsに組み込まれ、Plymouthがカーネルの初期ブート段階からスプラッシュスクリーンを表示できるようになります。
技術的な解説
Raspberry Pi 5のブートシーケンス
Raspberry Pi 5のブートプロセスは、以前のモデルとは大きく異なります。
-
ファームウェア段階
PCIeやHDMIなどのハードウェアを初期化。 -
systemd-boot段階
カーネルとinitramfsを読み込む。 -
基本システム段階 (
basic.target)
フレームバッファデバイスが完全に利用可能になる。
これがfbi方式が失敗する理由です。fbiはシステムサービスとして起動しますが、その時点ではフレームバッファがまだ準備できていない可能性があります。一方、Plymouthはブートプロセスのより早い段階で動作します。
ビジュアルレイヤーの制御
スクリプト内の以下のコード:
SetPosition(0, 0, -100)
負のZ軸値により、画像が最下層に配置されます。これにより、後のUI要素が画像を覆うことが防がれます。
このレイヤー制御は、クリーンなスプラッシュスクリーンを実現するために不可欠です。
確認とテスト
システムを再起動:
sudo sync
sudo reboot
期待される結果:
虹色のブート画面(rainbow boot square)が表示されない
カーネルログが出力されない
点滅カーソルが表示されない
ブート全体を通してカスタム画像が表示される
ファームウェア段階で文字が残る場合、これはstart.elfからの出力です。これを削除するにはブートローダーロゴリソースの置き換えが必要ですが、より深い修正を伴います。
この設定を完了すると、電源投入直後からRaspberry Piが完全にカスタマイズされたスプラッシュスクリーンを表示するようになり、洗練されたプロフェッショナルな起動体験が得られます。
