Plymouth (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 Plymouth翻译。上次翻译日期:2020-04-28。如果英文版本有所更改,则您可以帮助同步翻译。

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钩子替换encryptplymouth-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

配置

平滑过渡

要启用平滑过渡,需要:

  1. 禁用 Display manager,例如 systemctl disable gdm.service
  2. 启用对应的 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自带了一些主题:

  1. Fade-in: "简单的有淡出淡入的星星的主题"
  2. Glow: "伴随着新兴标志的饼状引导进度条的企业主题"
  3. Script: "脚本案例插件" (漂亮的Arch Logo主题)
  4. Solar: "带有燃烧的蓝色星球的空间主题"
  5. Spinner: "带有加载框的简单主题"
  6. Spinfinity: "显示旋转的无穷大标志的主题"
  7. Text: "三种颜色的进度条(Fedora默认的白、浅蓝、蓝启动进度条)")
  8. 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映像,使得新的主题生效。

请参阅