許多 Raspberry Pi 用戶希望擁有乾淨且專業的開機體驗,而不是看到冗長的核心日誌和系統訊息。
雖然社群經常推薦使用 fbi(framebuffer 圖像檢視器),但它有一個根本性的限制:framebuffer 裝置 /dev/fb0 在系統服務啟動之前並不可用。因此,它無法在開機過程中足夠早地顯示圖像。
本指南介紹一種使用 Plymouth 的可靠方法,從早期開機階段開始顯示自訂的啟動畫面。
第一階段:關閉核心輸出
開機期間,核心日誌會滾動顯示在螢幕上,干擾自訂啟動畫面的顯示。
將以下參數加入開機命令列:
sudo sed -i '$s/$/ logo.nologo quiet loglevel=0/' /boot/firmware/cmdline.txt
參數說明:
-
logo.nologo
移除左上角的 Raspberry Pi 標誌(或發行版標誌)。 -
quiet
減少核心輸出的內容量。 -
loglevel=0
僅顯示緊急訊息,使核心幾乎完全靜音。
重要提示:
cmdline.txt 必須保持為單一行,參數之間以空格分隔。格式錯誤可能導致系統無法開機。
隱藏閃爍的游標
即使關閉了核心輸出後,某些系統仍可能顯示閃爍的終端游標。
在同一行末尾添加以下參數:
vt.global_cursor_default=0
第二階段:準備開機資源
圖像最佳化
建議規格:
- 格式:PNG 或 JPG(建議使用 PNG 以支援透明度)
- 解析度:≤ 1920×1080
- 色彩調色盤:≤ 224 種顏色(提升載入速度)
- 檔案名稱:
splash.png
將圖像放置於:
/boot/splash.png
此位置可讓核心在早期開機階段存取該圖像。
檢查顯示驅動程式設定
確保在以下路徑中已啟用正確的顯示驅動程式:
/boot/firmware/config.txt
範例設定:
dtparam=vc4-kms-v3d
避免使用可能觸發 HDMI 重新初始化的參數,例如:
hdmi_force_hotplug=1
第三階段:部署 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)
framebuffer 裝置才完全可用。
這解釋了為什麼 fbi 方法會失敗:它是作為系統服務啟動的,但 framebuffer 裝置可能尚未準備就緒。而 Plymouth 是開機流程的一部分,運作時間更早。
視覺圖層控制
在腳本中:
SetPosition(0, 0, -100)
負的 Z 軸值 將圖像置於最底層,確保未來的 UI 元素不會覆蓋其上。
這種圖層機制對於建立乾淨的啟動畫面至關重要。
驗證與測試
重新開機系統:
sudo sync
sudo reboot
預期結果:
不出現彩虹開機方塊
不出現核心日誌輸出
不出現閃爍游標
整個開機過程顯示自訂圖像
如果在韌體階段仍然出現字元,這些來自 start.elf。要移除它們需要替換開機載入程式中的標誌資源,這涉及更深層的修改。
完成此設定後,您的 Raspberry Pi 將從通電那一刻起顯示完全自訂的啟動畫面,提供精緻且專業的開機體驗。
