普利茅斯 在2007年是 freedesktop.org 项目的共同的书目分类编号开始的由Ray Redhat Strobe 开发一种图解应用显示忽悠任意赋予生命的飞溅屏幕在启动过程期间,当采伐控制台文本输出到记录文件时。 浅顶软呢帽10 (剑桥)是包含普利茅斯的浅顶软呢帽第一发行。 开发工作有效地是持续的,并且新发行是0.71。
普利茅斯意欲是红色帽子当前用于提供图解起动显示的RHGB的(红色帽子图解起动)替换。 如果rhgb是仁命令行的一部分, rhgb及早在启动过程中开始由/etc/sysinit。 rhgb发动显示的一台X服务器:1在一个虚拟终端,以便它避免与也许发动为显示的规则X服务器的冲突:0在另一个虚拟终端。 它也创造Unix领域插口(/etc/rhgb/temp/rhgb插口),以便起动剧本可能与它联络。 当起动剧本执行,他们可以使用rhgb客户寄发消息到rhgb,然后更新文本和进展显示。 当系统是完成的孕穗时, rhgb客户祈求以-被放弃的选择送终止请求到rhgb。 用户然后换成显示经理使用的X服务器。 不幸地序列转换从文本方式到rhgb `s x服务器对文本方式对显示经理的x服务器可能导致重大屏幕闪烁。 rhgb另一个主要缺点是起动消息没有被采伐。
在普利茅斯之后的主要宗旨将提供忽悠自由系统孕穗经验,因为光芒大了踏步走投入它“起动丑恶的细节”在一个图解(和可能赋予生命)飞溅屏幕之后掩藏。 一个次要宗旨将采伐起动序列。 普利茅斯被设计研究与直接翻译经理(DRM)仁modesetting的(KMS)司机的系统。 DRM是直接翻译基础设施 项目的组分 。 它包括二个仁模块,一个普通DRM有支持具体图形卡硬件的司机和别的。 这个对司机允许userspace客户直接存取到图形卡硬件。 欲知关于 DRM 方式设置的详情,看见这里。 因而在启动过程仁方式设置司机非常在初期设置系统的优选的当地视频显示器方式。 反过来普利茅斯用途方式和由决定方式依然是同样在整个启动过程期间,并且,在X服务器起动之后。 X服务器,当发动,接收现有的方式、虚拟终端和framebuffer内容。 仁modesetting的司机的可及性是普利茅斯的关键enabler。 然而,为没有仁modesetting的司机的系统,有是熟悉的三色蓝色或白色或者黑色进展酒吧的撑腰文本方式。 普利茅斯也滴下回到这个文本方式,如果缺省插入式失败无论什么原因。
仁modesetting的司机仍然在活跃发展和有些儿童车。 默认情况下自浅顶软呢帽11, Radeon R500和仅更高的系列图形卡支持modesetting的仁。 有提供仁modesetting的支持的未完成作品为R100和R200图形卡。 默认情况下英特尔仁modesetting的司机存在,但是没有打开。 支持modesetting在nVidia图形卡的仁通过Nouveau司机是实验性的。 如果您最终获得一个黑屏幕在起动期间或者与随机噪声的一个屏幕对此,增加nomodeset的尝试到仁命令行到功能失效仁方式设置。
如果没有适当的仁modesetting的司机可利用为您的特殊图形卡或您想要设置一个明确方式,您能增加串vga=XXX到仁命令行。 仁命令行选择vga=ask祈求固定vesa framebuffer司机,显示支持的方式名单并且要求您选择方式。 使用这个方式,它然后解雇仁。 仁命令行选择vga=mode,方式是与一起始的零和没有信件`x或一个3个数字小数的4个数字十六进制,使您设置一个具体方式。
您怎么能告诉什么特殊方式是可利用的,并且哪些为您将运作最好? 这真正地取决于您有在您的系统图形卡的种类和可利用的相当数量视频存储器。 唯一的方式将试验用不同的方式。
下表显示使用十六进制,您能输入在vga=提示的方式数字
| 颜色 | 640x480 | 800x600 | 1024x768 | 1280x1024 | 1600x1200 |
|---|---|---|---|---|---|
| 256 | 0301 | 0303 | 0305 | 0307 | 031C |
| 32768 | 0310 | 0313 | 0316 | 0319 | 031D |
| 65536 | 0311 | 0314 | 0317 | 031A | 031E |
| 16.8M | 0312 | 0315 | 0318 | 031B | 031F |
使用小数,并且这同一张桌。
| 颜色 | 640x480 | 800x600 | 1024x768 | 1280x1024 | 1600x1200 |
|---|---|---|---|---|---|
| 256 | 769 | 771 | 773 | 775 | 796 |
| 32768 | 784 | 787 | 790 | 793 | 797 |
| 65536 | 785 | 788 | 791 | 794 | 798 |
| 16.8M | 786 | 789 | 792 | 795 | 799 |
注意8位= 256种颜色, 15位[5 :5 :5种] = 32,768种颜色, 16位[5 :6 :5种] = 65,536种颜色和24位[8 :8 :8] = 16.8百万种颜色。 另外的方式是任凭图形卡制造商的处理,因为VESA 2.0规格只定义了方式由0x31F决定。 关于VESA方式的更多信息,看这篇文章关于 VESA BIOS引伸 服从的图形卡。
普利茅斯与是类似于屏幕保护程序被显示在起动时间的题材一起使用。 浅顶软呢帽11装备有三个图解题材太阳,淡入和spinfinity和二个无图的题材文本和细节。 文本题材是被显示的缺省题材,如果另一个题材无论什么原因发生故障。
在题材和插入附近的术语和技术演变了,项目进步了。 在浅顶软呢帽10运送普利茅斯的版本根据每个飞溅屏幕必须从头被编码的一个插入式系统。 这个问题被认可了,并且为浅顶软呢帽11普利茅斯审阅主要重写,藉以它现在支持反之使用标准插入的题材。 因而题材开发商可能现在集中于题材图表而不是必须做未加工的编制程序。
目前有在浅顶软呢帽贮藏库的五个题材。 充电 是浅顶软呢帽的11 (利奥尼达斯)缺省题材。 Spinfinity是移动道路被塑造象无限标志的throbber。 淡入的展示里里外外退色在星际的浅顶软呢帽商标。 细节显示从启动过程输出的经典卷动。 文本是屏幕三色题材的撑腰底部。 默认情况下太阳,我的个人喜爱和浅顶软呢帽的10迄今缺省题材,在浅顶软呢帽11没有被安装,而是在一个任意包裹。 它显示与爆炸的脉冲星的一个行星。
安装所有普利茅斯题材在浅顶软呢帽贮藏库:
# yum -y install plymouth-theme-*
安装的普利茅斯题材可以是列出的用途普利茅斯设置默认题材剧本:
# /usr/sbin/plymouth-set-default-theme --list charge details fade-in spinfinity text
题材文件在/usr/share/plymouth/themes补充指南被存放。
# ls /usr/share/plymouth/themes/ charge default.plymouth details fade-in spinfinity text
注意default.plymouth是一条符号链对实际被设计的缺省题材。
有插入的二种类型: 飞溅和控制。 可能每次只有一飞溅插入式在使用中。 插入式的飞溅是什么画飞溅屏幕,请求密码,显示消息和更多。 题材称飞溅插入式完成实际工作。 例如,这文件的目录与充电题材相关。
$ ls /usr/share/plymouth/themes/charge box.png progress-01.png progress-07.png progress-13.png throbber-00.png throbber-06.png throbber-12.png bullet.png progress-02.png progress-08.png progress-14.png throbber-01.png throbber-07.png throbber-13.png charge.plymouth progress-03.png progress-09.png progress-15.png throbber-02.png throbber-08.png throbber-14.png entry.png progress-04.png progress-10.png progress-16.png throbber-03.png throbber-09.png throbber-15.png lock.png progress-05.png progress-11.png progress-17.png throbber-04.png throbber-10.png progress-00.png progress-06.png progress-12.png progress-18.png throbber-05.png throbber-11.png
由plymouthd读的题材配置文件是题材的名字与.plymouth引伸的。 在这种情况下它是charge.plymouth。
$ cat /usr/share/plymouth/themes/charge/charge.plymouth [Plymouth Theme] Name=Charge Description=A theme that features the shadowy hull of a Fedora logo charge up and and finally burst into into full form. ModuleName=two-step [two-step] ImageDir=/usr/share/plymouth/themes/charge HorizontalAlignment=.5 VerticalAlignment=.5 Transition=none TransitionDuration=0.0 BackgroundStartColor=0x416fa7 BackgroundEndColor=0x4b83c1
这个题材叫二步插入式完成显示题材实际工作。 二步插入式期待图象文件的有些数字和类型与特定名称的。 各种各样的方针可以通过到插入; 是的数字和的类型插入式具体。 使用转折方针,即退色在,例如不同种转折可以为二步插入式指定,十字架退色和合并退色。
有些插入没有装备有浅顶软呢帽11。 一这样插入式是插入式的标签。 一旦根文件系统登上,它不作为initrd的部分,而是适于承载。 它隐含地被装载,当飞溅插入式尝试显示文本。 在标签被装载之后,它使用 pango 和 开罗 处理消息地方化。
其他此类插入式是支持题材的 一种写电影脚本的 语言的剧本。 它支持二个基本的对象,即图象和魍魉。 如果您熟悉Java语言或C语言您应该满意对句法和成语。 注意写电影脚本的语言当前进行迅速发展出于对做更多对象朝向的它考虑,因此您可以必须读git日志或原始代码推测什么是或不支持。
以照原稿宣读的题材为例,我推荐您神色在Vizta或 蒲公英题材的 来源。 这些题材两个由查理・ Brej,曼彻斯特大学的一个研究助理开发英国,是在写电影脚本的语言之后的主要开发商。 如果您想要尝试这些题材在浅顶软呢帽11,您在您的系统将必须从普利茅斯Git树进口来源,配置,重建并且安装。
在普利茅斯介入的二主要双是接口对/sbin/plymouthd的/sbin/plymouthd,通过显示飞溅屏幕和采伐起动会议完成大多数实际工作的邪魔和/bin/plymouth。 不幸地联机资料没有为/bin/plymouth被供应,但是有在/usr/share/doc/plymouth-0.7.0补充指南的一些信息。 两个有一定数量有用的选择。
$ /sbin/plymouthd --help Boot splash control server USAGE: plymouthd [OPTION...] Options: --help This help message --attach-to-session Redirect console messages from screen to log --no-daemon Do not daemonize --debug Output debugging information --mode=Mode is one of: boot, shutdown $ /bin/plymouth --help Boot splash control client USAGE: plymouth [OPTION...] [COMMAND [OPTION...]...] Options: --help This help message --debug Enable verbose debug logging --newroot= Tell boot daemon that new root filesystem is mounted --quit Tell boot daemon to quit --ping Check of boot daemon is running --sysinit Tell boot daemon root filesystem is mounted read-write --show-splash Show splash screen --hide-splash Hide splash screen --ask-for-password Ask user for password --ignore-keystroke= Remove sensitivity to a keystroke --update= Tell boot daemon an update about boot progress --details Tell boot daemon there were errors during boot --wait Wait for boot daemon to quit Available commands: ask-for-password Ask user for password ask-question Ask user a question message Display a message watch-keystroke Become sensitive to a keystroke pause-progress Pause boot progress bar unpause-progress Unpause boot progress bar report-error Tell boot daemon there were errors during boot quit Tell boot daemon to quit Options for ask-for-password command: --command= Command to send password to via standard input --prompt= Message to display when asking for password --number-of-tries= Number of times to ask before giving up (requires --command) --dont-pause-progress Don't pause boot progress bar while asking Options for ask-question command: --command= Command to send the answer to via standard input --prompt= Message to display when asking the question --dont-pause-progress Don't pause boot progress bar while asking Options for message command: --text= The message text Options for watch-keystroke command: --command= Command to send keystroke to via standard input --keys= Keys to become sensitive to Options for quit command: --retain-splash Don't explicitly hide boot splash on exit
在浅顶软呢帽/usr/bin/rhgb-client是一条符号链对/usr/bin/plymouth
一种方式试验普利茅斯将祈求它从runlevel 2或3.例如,这显示缺省题材5秒,请求密码和请求的一个简单的剧本您的名字在最后放弃之前。
#!/bin/sh
# first check that we are in an appropriate runlevel
rlevel=$(runlevel | cut -d " " -f 2)
if [[ "$rlevel" != "2" && "$rlevel" != "3" ]]
then
echo "ERROR: You must be at runlevel 2 or 3"
exit 1
fi
echo "Testing plymouth default theme ..."
plymouthd
sleep 1
# check if the plymouthd daemon is alive
plymouth --ping
if [[ $? -eq 1 ]]
then
echo "ERROR: Plymouth daemon not running"
exit 1
fi
# show the default splash screen for 5 seconds
plymouth --show-splash
sleep 5
plymouth --ask-for-password
sleep 2
# using a command rather than an option
plymouth ask-question --prompt="What is your name?"
sleep 5
plymouth --quit
echo "Done ..."
exit 0
注意不是所有的插入当前支持每个命令和选择。 上述剧本与使用空间飘动插入式的太阳题材一起使用。 然而这插入式不支持例如消息命令。 从普利茅斯是缺掉的一个有用的选择是列举支持哪些的选择命令。
普利茅斯真正地没有被设计从来源被修造由终端用户。 对于它恰当地工作,它必须是联合入部下的发行。 由于它那么及早在启动过程中开始,它需要增加到发行的 initrd (最初的随机存取存储磁盘),并且发行需要协调与plymouthd告诉它起动怎样进步。 此外initramfs必须包括X服务器需要的所有必要的文件。 例如,这在我的浅顶软呢帽11 initrd的nash剧本。 通知普利茅斯飞溅屏幕怎么叫,当控制台是可利用并且在剧本的几其他次。
lsinitrd /boot/initrd-2.6.29.5-191.fc11.x86_64.img ......................... #!/bin/nash mount -t proc /proc /proc setquiet echo Mounting proc filesystem echo Mounting sysfs filesystem mount -t sysfs /sys /sys echo Creating /dev mount -o mode=0755 -t tmpfs /dev /dev mkdir /dev/pts mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts mkdir /dev/shm mkdir /dev/mapper echo Creating initial device nodes mknod /dev/null c 1 3 mknod /dev/zero c 1 5 mknod /dev/systty c 4 0 mknod /dev/tty c 5 0 mknod /dev/console c 5 1 mknod /dev/ptmx c 5 2 mknod /dev/fb c 29 0 mknod /dev/hvc0 c 229 0 mknod /dev/tty0 c 4 0 mknod /dev/tty1 c 4 1 mknod /dev/tty2 c 4 2 mknod /dev/tty3 c 4 3 mknod /dev/tty4 c 4 4 mknod /dev/tty5 c 4 5 mknod /dev/tty6 c 4 6 mknod /dev/tty7 c 4 7 mknod /dev/tty8 c 4 8 mknod /dev/tty9 c 4 9 mknod /dev/tty10 c 4 10 mknod /dev/tty11 c 4 11 mknod /dev/tty12 c 4 12 mknod /dev/ttyS0 c 4 64 mknod /dev/ttyS1 c 4 65 mknod /dev/ttyS2 c 4 66 mknod /dev/ttyS3 c 4 67 daemonize --ignore-missing /bin/plymouthd /lib/udev/console_init tty0 plymouth --show-splash echo Setting up hotplug. hotplug echo Creating block device nodes. mkblkdevs echo Creating character device nodes. mkchardevs echo Making device-mapper control node mkdmnod modprobe scsi_wait_scan rmmod scsi_wait_scan mkblkdevs echo Scanning logical volumes lvm vgscan --ignorelockingfailure echo Activating logical volumes lvm vgchange -ay --ignorelockingfailure vg_ultra resume /dev/mapper/vg_ultra-lv_swap echo Creating root device. mkrootdev -t ext4 -o defaults,ro /dev/mapper/vg_ultra-lv_root echo Mounting root filesystem. mount /sysroot cond -ne 0 plymouth --hide-splash echo Setting up other filesystems. setuproot loadpolicy plymouth --newroot=/sysroot echo Switching to new root and running init. switchroot echo Booting has failed. sleep -1 init
在起动进展期间起动状态通常更新与串符号化发生了什么。 插入可能听这些,如果他们选择对,但是他们在当前插入通常被忽略和为计算起动时间估计只使用。 在浅顶软呢帽11,例如rc.sysinit剧本包括几个电话对普利茅斯掩藏或显示飞溅屏幕,根据可能的选择密码是需要的访问文件系统或文件系统将由selinux relabeled。
因此普利茅斯是否怎么什么时候知道放弃? 实际上,它没办法知道。 它继续进行去,直到它收到一则被放弃的消息。 在浅顶软呢帽11情况下, /etc/event.d/quit-plymouth剧本传送被放弃的信息。
# quit-plymouth - script to stop boot splash
#
# This service triggers plymouth to quit when we reach the
# end of the boot cycle. We start on 'stopping rcX' to make sure
# this completes before the getty starts.
# prefdm handles quit differently, though.
start on runlevel S
start on stopping rc2
start on stopping rc3
start on stopping rc4
script
/usr/bin/plymouth quit || :
end script
一个特殊情况是,当用户起动给单用户。 在这种情况下/etc/event.d/rcS-sulogin剧本被执行。
# rcS-sulogin - "single-user" runlevel compatibility
#
# This task runs /bin/bash during "single-user" mode,
# then continues to the default runlevel.
start on runlevel S
stop on runlevel
console owner
script
runlevel --set S >/dev/null || true
plymouth --hide-splash || true
exec /bin/bash
end script
post-stop script
if [ "$1" = "S" ]; then
runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab)
[ -z "$runlevel" ] && runlevel="3"
exec telinit $runlevel
fi
end script
什么共同地不知道是在系统关闭或重新起动期间,您能也使用普利茅斯提供飞溅屏幕。 这在浅顶软呢帽11做通过/etc/event.d/plymouth-shutdown剧本。 如下所示。
# plymouth-shutdown - put up shutdown splash
#
# This service triggers plymouth to put up a splash
# when leaving runlevel 5.
start on stopped prefdm
console output
script
set $(runlevel || true)
if [ "$2" != "0" ] && [ "$2" != "6" ]; then
exit 0
fi
/sbin/plymouthd --mode=shutdown || exit 1
/bin/plymouth --sysinit
/bin/plymouth --show-splash
if [ "$2" = "0" ]; then
/bin/plymouth message --text="Shutting down..."
elif [ "$2" = "6" ]; then
/bin/plymouth message --text="Restarting..."
fi
end script
控制台起动消息被改方向对在启动过程非常在初期被创造的假终端。 这些消息被缓冲,直到文件系统充分地登上。 然后缓冲被倾销对/var/log/boot.。 在文本或图形方式,起动消息被遮暗。 然而您能在任何时候看到这些消息在起动序列期间通过击中ESC键。
其中一个改变普利茅斯题材的副作用是您必须引起一个新的initrd图象。 使用mkinird剧本,通常这做。 有选择对做此。 您能修改您现有的initrd图象删除所有与普利茅斯相关的文件和生成包含与普利茅斯相关的文件的第二个initrd图象。 当您改变题材,只有普利茅斯图象需要引起。 当解雇时,您必须修改grub.conf装载两个图象。 这从做那的我的grub.conf的一个诗节。
title Graphical Boot (Fedora 2.6.29.6-217.2.16.fc11.x86_64)
root (hd0,1)
kernel /vmlinuz-2.6.30.5-43.fc11.x86_64 ro root=/dev/mapper/vg_ultra-lv_root rhgb quiet nopat vga=0x37b 2
initrd /initrd-2.6.30.5-43.fc11.x86_64.img /initrd-plymouth.img
这将引起二个图象的shell script程序。 它根据在普利茅斯codebase的现有的剧本。
#!/bin/bash
#
#
# FPMurphy 9/12/2009
#
[ -z "$TMPDIR" ] && TMPDIR="/var/tmp"
[ -z "$LIBEXECDIR" ] && LIBEXECDIR="/usr/libexec"
[ -z "$DATADIR" ] && DATADIR="/usr/share"
[ -z "$PLYMOUTH_PLUGIN_PATH" ] && PLYMOUTH_PLUGIN_PATH="$(plymouth --get-splash-plugin-path)"
[ -z "$PLYMOUTH_LOGO_FILE" ] && PLYMOUTH_LOGO_FILE="/usr/share/plymouth/bizcom.png"
[ -z "$PLYMOUTH_THEME_NAME" ] && PLYMOUTH_THEME_NAME=$(plymouth-set-default-theme)
[ -z "$PLYMOUTH_IMAGE_FILE" ] && PLYMOUTH_IMAGE_FILE="/boot/initrd-plymouth.img"
[ -z "$IMAGE_FILE" ] && IMAGE_FILE="/boot/initrd-$(uname -r).img"
if [ -z "$PLYMOUTH_POPULATE_SOURCE_FUNCTIONS" ]; then
if [ -f "${LIBEXECDIR}/initrd-functions" ]; then
PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="${LIBEXECDIR}/initrd-functions"
fi
if [ -f "${DATADIR}/dracut/dracut-functions" ]; then
PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="${DATADIR}/dracut/dracut-functions"
fi
fi
if [ -n "$PLYMOUTH_POPULATE_SOURCE_FUNCTIONS" ]; then
source $PLYMOUTH_POPULATE_SOURCE_FUNCTIONS
fi
if [ " $(type -t inst) " != " function " ]; then
echo "Need 'inst' function, try setting PLYMOUTH_POPULATE_SOURCE_FUNCTIONS to a file that defines it" 1>&2
exit 1
fi
if [ " $(type -t set_verbose) " != " function " ]; then
function set_verbose { true; }
fi
Function usage() {
local output="/dev/stdout"
local rc=0
if [ "$1" == "error" ]; then
output="/dev/stderr"
rc=1
fi
echo "usage: plymouth_setup_initrds [ --verbose | -v ]" > $output
exit $rc
}
verbose=false
INITRDDIR=""
while [ $# -gt 0 ]; do
case $1 in
--verbose|-v)
verbose=true
;;
--help|-h)
usage normal
;;
*)
usage error
break
;;
esac
shift
done
set_verbose $verbose || :
CURRENTDIR=`pwd`
INITRDDIR=`mktemp -d ${TMPDIR}/initrd.XXXXXX`
[ -z "$INITRDDIR" ] && {
echo "mktemp failed"
exit 1
}
mkdir -p ${INITRDDIR}${DATADIR}/plymouth/themes
inst /sbin/plymouthd $INITRDDIR /bin/plymouthd
inst /bin/plymouth $INITRDDIR
inst ${DATADIR}/plymouth/themes/text/text.plymouth $INITRDDIR
inst ${PLYMOUTH_PLUGIN_PATH}/text.so $INITRDDIR
inst ${DATADIR}/plymouth/themes/details/details.plymouth $INITRDDIR
inst ${PLYMOUTH_PLUGIN_PATH}/details.so $INITRDDIR
inst ${PLYMOUTH_LOGO_FILE} $INITRDDIR
inst /etc/system-release $INITRDDIR
if [ -z "$PLYMOUTH_THEME_NAME" ]; then
echo "No default plymouth plugin is set" > /dev/stderr
exit 1
fi
PLYMOUTH_MODULE_NAME=$(grep "ModuleName *= *" ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/${PLYMOUTH_THEME_NAME}.plymouth | sed 's/ModuleName *= *//')
if [ ! -f ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so ]; then
echo "The default plymouth plugin (${PLYMOUTH_MODULE_NAME}) doesn't exist" > /dev/stderr
exit 1
fi
inst ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so $INITRDDIR
if [ -d ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME} ]; then
for x in ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/* ; do
[ ! -f "$x" ] && break
inst $x $INITRDDIR
done
fi
if [ -L ${DATADIR}/plymouth/themes/default.plymouth ]; then
cp -a ${DATADIR}/plymouth/themes/default.plymouth $INITRDDIR${DATADIR}/plymouth/themes
fi
# generate the initrd-plymouth image
if [ -f ${PLYMOUTH_IMAGE_FILE} ]; then
mv ${PLYMOUTH_IMAGE_FILE} ${PLYMOUTH_IMAGE_FILE}.bak
fi
echo "Generating image: $PLYMOUTH_IMAGE_FILE"
cd ${INITRDDIR}
rm -f lib*/{ld*,libc*,libdl*,libm*,libz*,libpthread*,libpng*,librt*}
rm -f usr/lib*/libpng*
find . | cpio -H newc --quiet -o | gzip -9 > ${PLYMOUTH_IMAGE_FILE}
cd ${CURRENTDIR}
rm -rf ${INITRDDIR}
# now remove all plymouth items from regular initrd
INITRDDIR=`mktemp -d ${TMPDIR}/initrd.XXXXXX`
[ -z "$INITRDDIR" ] && {
echo "mktemp failed"
exit 1
}
cd ${INITRDDIR}
zcat ${IMAGE_FILE} | cpio -i
rm -f ${INITRDDIR}/bin/plymout*
rm -f ${INITRDDIR}/lib64/libply*
rm -f ${INITRDDIR}/usr/lib64/libply*
rm -rf ${INITRDDIR}/usr/lib64/plymouth
rm -rf ${INITRDDIR}/usr/share/plymouth
echo "Generating image: ${IMAGE_FILE}"
mv ${IMAGE_FILE} ${IMAGE_FILE}.bak
findall . | cpio -H newc --quiet -o | gzip -9 > ${IMAGE_FILE}
cd ${CURRENTDIR}
rm -rf ${INITRDDIR}
exit 0
这引起的/boot/initrd-plymouth.img图象的目录。
$ lsinitrd /boot/initrd-plymouth.img drwx------ 6 root root 0 Sep 12 16:43 . drwxr-xr-x 2 root root 0 Sep 12 16:43 etc -rw-r--r-- 1 root root 29 May 11 18:45 etc/fedora-release lrwxrwxrwx 1 root root 14 Sep 12 16:43 etc/system-release -> fedora-release drwxr-xr-x 4 root root 0 Sep 12 16:43 usr drwxr-xr-x 3 root root 0 Sep 12 16:43 usr/lib64 drwxr-xr-x 2 root root 0 Sep 12 16:43 usr/lib64/plymouth -rwxr-xr-x 1 root root 27242 Sep 12 01:42 usr/lib64/plymouth/details.so -rwxr-xr-x 1 root root 28471 Sep 12 01:42 usr/lib64/plymouth/text.so -rwxr-xr-x 1 root root 80032 Sep 12 01:42 usr/lib64/plymouth/space-flares.so -rwxr-xr-x 1 root root 200218 Sep 12 01:42 usr/lib64/libplybootsplash.so.2.0.0 lrwxrwxrwx 1 root root 25 Sep 12 16:43 usr/lib64/libplybootsplash.so.2 -> libplybootsplash.so.2.0.0 drwxr-xr-x 3 root root 0 Sep 12 16:43 usr/share drwxr-xr-x 3 root root 0 Sep 12 16:43 usr/share/plymouth -rw-r--r-- 1 root root 5529 Sep 12 01:42 usr/share/plymouth/bizcom.png drwxr-xr-x 5 root root 0 Sep 12 16:43 usr/share/plymouth/themes drwxr-xr-x 2 root root 0 Sep 12 16:43 usr/share/plymouth/themes/details -rw-r--r-- 1 root root 84 Sep 12 01:42 usr/share/plymouth/themes/details/details.plymouth drwxr-xr-x 2 root root 0 Sep 12 16:43 usr/share/plymouth/themes/text -rw-r--r-- 1 root root 98 Sep 12 01:42 usr/share/plymouth/themes/text/text.plymouth lrwxrwxrwx 1 root root 20 Sep 12 16:43 usr/share/plymouth/themes/default.plymouth -> solar/solar.plymouth drwxr-xr-x 2 root root 0 Sep 12 16:43 usr/share/plymouth/themes/solar -rw-r--r-- 1 root root 246 Sep 12 01:42 usr/share/plymouth/themes/solar/progress_bar.png -rw-r--r-- 1 root root 355666 Sep 12 01:42 usr/share/plymouth/themes/solar/star.png -rw-r--r-- 1 root root 1896 Sep 12 01:42 usr/share/plymouth/themes/solar/lock.png -rw-r--r-- 1 root root 165 Sep 12 01:42 usr/share/plymouth/themes/solar/solar.plymouth -rw-r--r-- 1 root root 296 Sep 12 01:42 usr/share/plymouth/themes/solar/bullet.png -rw-r--r-- 1 root root 870 Sep 12 01:42 usr/share/plymouth/themes/solar/box.png -rw-r--r-- 1 root root 350 Sep 12 01:42 usr/share/plymouth/themes/solar/entry.png drwxr-xr-x 2 root root 0 Sep 12 16:43 lib64 -rwxr-xr-x 1 root root 293522 Sep 12 01:42 lib64/libply.so.2.0.0 lrwxrwxrwx 1 root root 15 Sep 12 16:43 lib64/libply.so.2 -> libply.so.2.0.0 drwxr-xr-x 2 root root 0 Sep 12 16:43 bin -rwxr-xr-x 1 root root 70256 Sep 12 01:42 bin/plymouth -rwxr-xr-x 1 root root 110319 Sep 12 01:42 bin/plymouthd
您能看到它只包含与普利茅斯相关的文件。 它不包含插入式的标签,因为这在使用被装载dlopen (),当需要。
您能通过增加普利茅斯调试普利茅斯:调试,普利茅斯:debug= file:或者普利茅斯:在仁命令行的debug= file:path_to_log_file。 缺省文件是/var/log/plymouth-debug.log,如果采伐对文件指定,但是文件没有指定,即选择二。 其他仁命令行选择包括console=/dev/what_ever_works忽略缺省控制台(/dev/tty0)和普利茅斯:忽略缺省题材的splash=name_of_theme。
也有一定数量的组合键例如重画屏幕的CTRL-L,再按乒乓键的CTRL-V调试方式和CTRL-T起动文本方式。 不幸地我无法得到这些组合键中的任一个运作。 然而ESC键运作得正如所料并且再按了乒乓键在详细和缺省题材之间的显示。
普利茅斯做在软件的所有映象点操作。 没有 GPU 加速度。 它不用途 MMX (矩阵算术引伸)或 SSE (放出SIMD引伸)因此那里是没有CPU加速度。 比装载一些次图象和更新屏幕的小零件的一个装载很多图象或做很多整个银幕的更新慢的一插入式。 什么被写了关于普利茅斯在计算的新闻中暗示普利茅斯的目标是提供经验的更加快速的起动,但是那不是普利茅斯的一个明确设计目标。
涌出是关于关于普利茅斯的所有有用的信息我有时间当前写。 在读这个岗位以后,我希望您有对普利茅斯的更好的理解,并且它怎么与起动序列关连。 记住然而这个项目在活跃发展。 并且什么都在石头没有被熔铸。 例如, Dracut包括 , nash的替换,在浅顶软呢帽12 (康斯坦丁)也许影响普利茅斯怎么被祈求。 题材和插入也快速展开。
普利茅斯在其他GNU/Linux发行被实施例如 Ubuntu,期望看茂盛从独立作者的图解起动题材。 我盼望那天。


























“在普利茅斯之后的关键想法是非常在初期发动X服务器
启动过程和持续使用那台X服务器在注册期间和
用户会话”。
那个段落比普利茅斯听起来更多象镀铬物OS。
邮件表档案 http://lists.freedesktop.org/archives/plymouth/2009-December/thread.html 也提及,即使咸味干乳酪主持二插入,不意味他自己开发了他们。 我的乱猜是几人是包含的。
您正确关于那个句子! 我修改了它。
Nope,只要我可以告诉,所有信用应该去这两插入的查理Brej。