一、plymouthd基础介绍
1、Plymouth是什么?
Plymouth是一个启动程序的框架,由Freedesktop.org(一个Linux上应用程序开发和免费软件促进的组织)创建和维护。
2、Plymouth是为了解决什么问题而被创建的?
Plymouth是为了解决Linux系统启动过程中出现的闪屏问题而被创建的。在传统的Linux启动过程中,会出现很多闪屏,这对用户的体验十分不友好。使用Plymouth,可以在启动时显示更好的启动画面,在同步必要的硬件初始化和启动系统服务的同时,也可以让用户有一个更美好的启动体验。
3、Plymouth提供了哪些功能?
① 可以在启动时创建更好的启动画面,提升用户的体验;
② 可以在启动过程中提供过渡时间和平滑动画,使得转换过程更加自然;
③ 可以通过用户调用来管理程序中的动画、主题、字体等资源;
③ 可以在启动过程中显示消息、图形等,方便调试;
④ 可以动态地改变主题、字体等资源,满足用户和开发者的需求。
二、Plymouthd的运行和配置
1、plymouthd的运行
sudo plymouthd --debug --no-daemon
运行这个命令后,plymouthd就被启动了,可以在该命令的输出中看到plymouthd的一些初始配置和加载的主题、插件等信息。
2、plymouthd的配置文件
plymouthd的配置文件位于/etc/plymouth/plymouthd.conf,在这个文件中可以设置一些与plymouthd核心相关的配置,例如启用debug等级、指定log文件位置等。此外,该配置文件也定义了默认主题、默认的延迟时间和启动动画的默认状态等。
3、plymouthd的主题
plymouthd的主题用于控制启动过程中的画面风格和过渡效果。Plymouthd使用.plymouth和.plymouth-theme两个文件来描述主题,.plymouth文件是主题的XML描述文件,包括:主题名称、动画对象和其他组件,.plymouth-theme文件包含了关于主题及其各种颜色等的设计信息。主题文件存储在/usr/share/plymouth/themes目录下。
4、plymouthd的插件
插件是plymouthd中一个相对独立的功能单元,与主题息息相关。例如,Plymouthd框架提供一些默认的插件:文字、旋转的进度条、淡入淡出等。
/usr/lib/plymouth/text.so /usr/lib/plymouth/themes/default.plymouth
三、plymouthd主题开发指南
1、plymouth主题的目录结构
splash-theme/ ├ fonts/ │ ├── font1.ttf │ ├── font2.ttf │ └── ... ├── images/ │ ├── image1.png │ ├── image2.png │ └── ... ├── scripts/ │ ├── script1.sh │ ├── script2.sh │ └── ... ├── sounds/ │ ├── sound1.ogg │ ├── sound2.ogg │ └── ... ├── splash.plymouth └── splash.script
其中,fonts、images、scripts、sounds目录是用来放置不同资源的目录,用户可以在plymouth主题中调用它们。splash.plymouth和splash.script分别是主题的概览和控制文件。
2、plymouth主题制作流程
①创建目录结构
新建一个名为splash-theme的目录,并在其中创建fonts、images、scripts、sounds等子目录。接下来,需要在splash-theme目录中创建splash.plymouth和splash.script文件。
②编辑splash.plymouth文件
splash.plymouth文件是主题的描述文件,通过XML格式描绘了plymouth主题的丰富信息,包括图像、动画、进度条等控制指令。
[Plymouth Theme] Name=Splash Theme Description=A custom Plymouth theme ModuleName=script [script] ImageDir=/usr/share/plymouth/themes/splash-theme/images ScriptFile=/usr/share/plymouth/themes/splash-theme/scripts/splash.script
以上,是一个splash.plymouth文件的示例,值得注意的是,ModuleName的值必须为script。
③编辑splash.script文件
splash.script文件是plymouth主题的核心脚本文件,控制着整个启动过程的细节。
#!/bin/sh . /usr/share/plymouth/themes/default.script fun() { plymouth display-message --text="$1" >/dev/null } case "$1" in # 设置启动画面 "setup") plymouth display-stop --mode=quit --text="Preparing startup" --progress=top >/dev/null ;; # 具体进度显示 "progress") if [ "${SPINNER}" = "1" ]; then fun "Working on it..." plymouth display-spinner --message="Working on it..." >/dev/null else func "Please Wait..." plymouth display-progress --message="Please Wait..." --progress=top >/dev/null fi ;; # 启动结果显示 "showsuccess") plymouth display-message --text="Done" >/dev/null ;; "showfailure") plymouth display-message --text="Fail" >/dev/null ;; esac
四、plymouth的实际应用
1、Ubuntu的启动界面
Plymouthd有一些很成熟、漂亮的主题,最常见和最著名的就是Ubuntu的启动界面。Ubuntu的默认启动界面是深紫色的背景和一个白色的Ubuntu Logo。Ubuntu的启动画面可以通过修改plymouth主题来进行自定义。
2、Arch Linux的实现
Plymouth也是Archlinux一个经典的引导器。在archlinux中,plymouth是被视为引导的元素,因为它主要是显示在内核已装入内存并在引导块设备上挂载根文件系统之后。
3、CentOS和Fedora
Plymouth作为Red Hat家族的启动管理器,也出现在西部的Fedora和CentOS等众多Linux发行版中;Plymouth的主题和插件也是开源的,可以被其他Linux发行版使用和定制。
五、总结
在本文中,我们对Plymouth作为一种启动程序管理器的核心控制器plymouthd的基础介绍、运行和配置方法、主题开发指南以及实际应用做了详细的分析和阐述。Plymouthd的出现,使得用户体验和Linux启动过程更加一致。随着Plymouthd在Linux系统中的广泛应用,Plymouthd也在不断被完善,为用户提供更多的个性化选择。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/275594.html