Plymouth (简体中文)

From ArchWiki
翻译状态:本文是 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映像,使得新的主题生效。

请参阅