Plymouth (简体中文)
Plymouth 是一个来自于Fedora社区的提供美化启动图形界面的功能的项目,现在它被列入了freedesktop.org的软件列表之中。它依靠KMS尽可能早的设置显示器的原始分辨率显示,之后产生美化的启动引导界面直至登陆界面。
准备
Plymouth 依靠 KMS (Kernel Mode Setting) 显示图形界面。在EFI/UEFI系统中,Plymouth可以使用EFI帧缓冲。如果你无法启用KMS,比如你使用了私有驱动,或者你只是纯粹不想使用EFI帧缓冲,那么可以考虑使用Uvesafb来适配大屏分辨率。
如果既没有KMS也没有framebuffer,那么Plymouth将使用文本模式。
安装
从AUR中安装Plymouth:plymouthAUR是稳定版本而plymouth-gitAUR是开发版本。
如果你使用的是GDM,那么你需要安装gdm-plymouthAUR,这个版本编译时加入了 plymouth 支持。
plymouth 钩子
把 plymouth
添加到 mkinitcpio.conf 的 HOOKS行,且必须在"base","udev"之后:
/etc/mkinitcpio.conf
HOOKS="base udev plymouth [...] "
- 如果你使用 encrypt 钩子进行硬盘加密,你必须 使用plymouth-encrypt 替代
encrypt
以便提示输入TTY 密码. -
plymouth-encrypt
钩子不支持在cryptdevice=
中使用 PARTUUID 或 PARTLABEL 参数。 - 对于根目录使用了加密的ZFS文件系统的用户,你必须安装plymouth-zfsAUR并用
plymouth-zfs
钩子替换zfs
钩子。
加入了plymouth-encrypt
钩子后,如果输入的密码不是以密码提示而是以明文形式传递到后台,你需要添加你的(内核)显卡驱动到initramfs中。例如,假设你在使用intel核显:
/etc/mkinitcpio.conf
MOUDLES=(i915 [...])
可能有些主题的启动也需要这么做。
其他的Plymouth钩子(搭配Systemd钩子)
如果你的mkinitcpio.conf文件中包含了systemd
钩子,那么将plymouth
钩子替换为sd-plymouth
钩子。此外,如果使用了硬盘加密,用sd-encrypt
钩子替换encrypt
或plymouth-encrypt
:
/etc/mkinitcpio.conf
HOOKS=(base systemd sd-plymouth [...] sd-encrypt [...])
内核命令行
你需要通过引导程序向内核传递参数quiet splash loglevel=3 rd.udev.log_priority=3 vt.global_cursor_default=0
。查看Silent boot词条查看更多影响终端输出的参数。
重建 initrd 镜像,例如:
# mkinitcpio -p linux
配置
平滑过渡
要启用平滑过渡,需要:
- 禁用 Display manager,例如
systemctl disable gdm.service
- 启用对应的 plymouth 服务(支持 GDM, LXDM, SLiM, LightDM, SDDM), 例如
systemctl enable gdm-plymouth.service
显示延迟
plymouth 在/etc/plymouth/plymouthd.conf
中有选项:
/etc/plymouth/plymouthd.conf
[Daemon] Theme=spinner ShowDelay=5
对于启动很快的系统,在显示登陆框时会出现屏幕闪烁。可以设置 ShowDelay 为一个比启动时间更长的值,默认是 5 秒,可以根据机器状况进行调节。
更改主题
Plymouth自带了一些主题:
- Fade-in: "简单的有淡出淡入的星星的主题"
- Glow: "伴随着新兴标志的饼状引导进度条的企业主题"
- Script: "脚本案例插件" (漂亮的Arch Logo主题)
- Solar: "带有燃烧的蓝色星球的空间主题"
- Spinner: "带有加载框的简单主题"
- Spinfinity: "显示旋转的无穷大标志的主题"
- Text: "三种颜色的进度条(Fedora默认的白、浅蓝、蓝启动进度条)")
- Details: "详细的启动信息滚动输出"
开发版本的Plymouth(plymouth-gitAUR)支持BGRT(Boot Graphics Resource Table)主题,它的样子是在可以的情况下显示带有OEM图标的Spinner主题。
此外你还可以在AUR里安装其他主题,可以从plymouthAUR被依赖列表中甄选出主题。
显示当前主题:
$ plymouth-set-default-theme
你可以使用以下命令获得已安装的主题列表:
$ plymouth-set-default-theme -l
或是通过:
$ ls /usr/share/plymouth/themes
details golw solar spinner tribar fade-in script spinfinity text
默认选择spinner,可以修改/etc/plymouth/plymouthd.conf
文件设置其它主题, 例如:
/etc/plymouth/plymouthd.conf
[Daemon] Theme=spinner ShowDelay=5
要不重启预览主题。按 Ctrl+Alt+F6 切换终端,使用root登陆:
# plymouthd # plymouth --show-splash
再按Ctrl+Alt+F6并输入如下命令退出预览:
# plymouth --quit
设置你喜欢的主题:
# plymouth-set-default-theme -R <theme name>
重启。
提示与技巧
显示内核消息
启动时按 "Home" 或 "Escape" 按键会显示内核消息。
替换Arch Logo和创建自定义主题
fade-in, script, solar, spinfinity这些主题使用的Logo是由Plymouth在/usr/share/plymouth/arch-logo.png
提供的。如果你想使用其他Logo,你可以从这些主题中选取或者从AUR的Plymouth主题中选取,然后编辑*.plymouth(有时会编辑*.script),最后用所选择的图片替换。你应该创建一个新的主题安装包,因为/usr/share/plymouth
中的文件可能不会通过升级软件而改变。
安装或者选择主题之后,应该重建initrd映像,使得新的主题生效。