许多树莓派用户希望获得干净、专业的启动体验,而不是看到冗长的内核日志和系统消息。
尽管社区通常推荐使用 fbi(帧缓冲图像查看器)等工具,但它存在一个根本性限制:帧缓冲设备 /dev/fb0 在系统服务启动之前不可用,因此无法在启动过程的早期阶段显示图像。
本指南介绍一种使用 Plymouth 的可靠方法,从系统启动初期就开始显示自定义启动画面。
第一阶段:禁用内核输出
启动期间,内核日志会滚动显示在屏幕上,干扰自定义启动画面的展示。
将以下参数添加到启动命令行中:
sudo sed -i '$s/$/ logo.nologo quiet loglevel=0/' /boot/firmware/cmdline.txt
参数说明:
-
logo.nologo
移除屏幕左上角的树莓派标志(或发行版标志)。 -
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 能在内核早期启动阶段就显示启动画面。
技术原理说明
树莓派 5 的启动流程
树莓派 5 的启动过程与旧版本有显著差异。
-
固件阶段
初始化 PCIe 和 HDMI 等硬件。 -
systemd-boot 阶段
加载内核和 initramfs。 -
基础系统阶段 (
basic.target)
帧缓冲设备才完全可用。
这就是 fbi 方法失败的原因:它作为系统服务启动时,帧缓冲设备可能尚未就绪。而 Plymouth 作为启动过程的一部分运行得更早。
视觉图层控制
在脚本中:
SetPosition(0, 0, -100)
负的 Z 轴值 将图像置于最底层,确保后续的 UI 元素不会覆盖它。
这种图层机制对于实现干净的启动画面至关重要。
验证与测试
重启系统:
sudo sync
sudo reboot
预期结果:
无彩虹启动方块
无内核日志输出
无闪烁光标
整个启动过程中显示自定义图像
如果在固件阶段仍出现字符,这些字符来自 start.elf。移除它们需要替换引导程序的 Logo 资源,涉及更深层次的修改。
完成本设置后,您的树莓派将在通电瞬间即显示完全自定义的启动画面,提供整洁且专业的启动体验。
