Plymouth
Plymouth 是一个来自于 Fedora 社区的提供漂亮的启动界面的项目,现在它被列入了freedesktop.org 的官方资源之中。它依靠 KMS 尽可能早的设置显示器的原始分辨率显示,之后产生漂亮的启动界面直至出现登录界面。
准备[编辑 | 编辑源代码]
Plymouth 依靠 KMS(Kernel Mode Setting,内核级显示模式设置)显示图形界面。在 UEFI 系统中,Plymouth 可以使用 EFI 帧缓冲。
如果使用了私有驱动, 无法启用 KMS,或者只是不想使用 EFI 帧缓冲,那么可以考虑使用支持大屏分辨率的 Uvesafb。如果既没有KMS也没有framebuffer,那么Plymouth将使用文本模式。
安装[编辑 | 编辑源代码]
需要稳定版本请安装 plymouth包,plymouth-gitAUR是开发版本。
默认情况下,Plymouth 将引导消息记录到 /var/log/boot.log
,并且不显示启动画面。
安装 Plymouth 后,如果想要在启动早期阶段就启用,需要配置 initramfs 生成器,创建含有Plymouth的镜像。
mkinitcpio[编辑 | 编辑源代码]
把plymouth
添加到 mkinitcpio.conf 的 HOOKS
列表中:
/etc/mkinitcpio.conf
HOOKS=(... plymouth ...)
然后使用 mkinitcpio -P
命令重新生成 initramfs。
如果您的系统使用 dm-crypt 加密,请确保将 plymouth
钩子置于 crypt
钩子之前。
dracut[编辑 | 编辑源代码]
安装 Plymouth 之后,dracut 会自动捕获并将其添加到 initramfs 镜像中。如果自动捕获失败,可以在 dracut 配置文件中添加下列几行来强制 dracut 引入 Plymouth:
/etc/dracut.conf.d/myflags.conf
add_dracutmodules+=" plymouth "
配置[编辑 | 编辑源代码]
通过 /etc/plymouth/plymouthd.conf
进行配置,通过 /usr/share/plymouth/plymouthd.defaults
文件可以查看配置的默认值。
更改主题[编辑 | 编辑源代码]
Plymouth 自带了一些主题:
- BGRT: Spinner 的一个变种,如果 OEM 的图标可用便会显示。(BGRT 指的是 Boot Graphics Resource Table)
- Fade-in: "简单的有淡出淡入的星星的主题"
- Glow: "伴随着新兴标志的饼状引导进度条的企业主题"
- Script: "脚本案例插件" (漂亮的 Arch Logo 主题)
- Solar: "带有燃烧的蓝色星球的空间主题"
- Spinner: "带有加载框的简单主题"
- Spinfinity: "显示旋转的无穷大标志的主题"
- Tribar: "带三色进度条的文本模式主题"
- (Text: "带三色进度条的文本模式主题")
- (Details: "详细信息回退主题")
默认选择 bgrt,可以通过修改配置文件设置其它主题, 例如:
/etc/plymouth/plymouthd.conf
[Daemon] Theme=fade-in
或者执行
# plymouth-set-default-theme -R theme
每次更换主题,initrd
都必须重新构建。-R
选项可确保其被重建(或者手动重新生成 initramfs):
安装新主题[编辑 | 编辑源代码]
可以通过 AUR 安装其它主题,或者 plymouth-kcm包 提供与 KDE Plasma 设置的集成,并提供 AUR 上没有的主题。
使用以下命令获得已安装的主题列表:
$ plymouth-set-default-theme -l
或是通过:
$ ls /usr/share/plymouth/themes
bgrt details fade-in glow script solar spinfinity spinner text tribar
显示延迟[编辑 | 编辑源代码]
Plymouth 可以配置选项以延迟启动画面显示:
/etc/plymouth/plymouthd.conf
[Daemon] ShowDelay=5
对于启动很快的系统,可能在显示管理器或登录提示准备好前只能看到启动画面闪过。可以设置 ShowDelay
为一个比启动时间更长的值(以秒为单位)来避免这种闪烁以及黑屏。默认值为0秒,因此您不需要将其更改为其他值,就可以在引导过程中更早地看到您的启动。
HiDPI[编辑 | 编辑源代码]
编辑配置文件:
/etc/plymouth/plymouthd.conf
DeviceScale=an-integer-scaling-factor
然后重建 initrd。
提示与技巧[编辑 | 编辑源代码]
显示启动消息[编辑 | 编辑源代码]
启动时按 Esc
键可以切换到启动消息。
平滑过渡[编辑 | 编辑源代码]
GDM 支持开箱即用的平滑过渡,无需额外配置。
对于其他显示管理器,您可以使用 display-manager.service
的以下附加片段获得平滑过渡:
/etc/systemd/system/display-manager.service.d/plymouth.conf
[Unit] Conflicts=plymouth-quit.service After=plymouth-quit.service rc-local.service plymouth-start.service systemd-user-sessions.service OnFailure=plymouth-quit.service [Service] ExecStartPost=-/usr/bin/sleep 30 ExecStartPost=-/usr/bin/plymouth quit --retain-splash
预览主题[编辑 | 编辑源代码]
主题可以在不重新生成 initrd 的情况下预览。按 Ctrl+Alt+F6
切换到文本终端,使用 root 登录并键入:
# plymouthd # plymouth --show-splash
再按 Ctrl+Alt+F6
并输入如下命令退出预览:
# plymouth --quit
您也可以在运行中的 X.Org 会话以 root 身份运行它们,但 Plymouth 窗口会覆盖终端窗口并将本身置顶。所以请准备好虚拟桌面。
更换背景图片[编辑 | 编辑源代码]
某些主题(如 spinner 和 BGRT)可以改变其背景图像。只需将 /usr/share/plymouth/themes/spinner/background-tile.png
替换为你想要的图片。一旦改变主题就要重新生成 initrd。
缺少 BGRT 图片[编辑 | 编辑源代码]
如果您使用的是 BGRT 主题,但 UEFI 没有提供供应商徽标,则可以将回退镜像放置到 /usr/share/plymouth/themes/spinner/bgrt-fallback.png
中以显示它。
放慢启动速度以显示完整的动画[编辑 | 编辑源代码]
在启动时间非常快的系统上,如果需要显示整个动画,则可能需要使用包含 ExecStartPre=/usr/bin/sleep 5
的附加片段为 plymouth-quit.service
添加延迟。见这篇 reddit 帖子。
疑难解答[编辑 | 编辑源代码]
禁用的内核参数[编辑 | 编辑源代码]
如果在启动过程中遇到问题,可以使用以下内核参数临时禁用 Plymouth:
plymouth.enable=0 disablehooks=plymouth
调试[编辑 | 编辑源代码]
要将调试输出写入 /var/log/plymouth-debug.log
,请添加以下内核参数:
plymouth.debug
密码提示不更新[编辑 | 编辑源代码]
当在 Mkinitcpio 中使用 systemd
而不是 udev
钩子时,在通过 Plymouth 脚本处理它的主题上密码提示可能不会更新。
您可以尝试切换到开发版本 plymouth-gitAUR 或使用来自 Mkinitcpio#常用钩子的替代品。
显示未居中[编辑 | 编辑源代码]
当在启动过程中启用了多个监视器时,某些主题可能无法使显示居中。
您可以使用内核级显示模式设置#Forcing modes 禁用特定的监视器。