翻譯

Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedishहिन्दी अनुवाद करने के लिए/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian
機器人無線应用開发的圖像
現代操作系统(第3編輯)的圖像
Linux仁發展(第3編輯)的圖像
XSLT 2.0和XPath 2.0程序参考(對程序員的程序員的)圖像

項目普利茅斯

普利茅斯 在2007年是 freedesktop.org 項目的共同的書目分類編號開始的由Ray Redhat Strobe 開发一種圖解應用顯示忽悠任意賦予生命的飛濺屏幕在启动过程期間,當採伐控制臺文本輸出到记录文件时。 淺頂軟呢帽10 (劍橋)是包含普利茅斯的淺頂軟呢帽第一發行。 開发工作有效地是持續的,並且新发行是0.71。

普利茅斯意欲是紅色帽子當前用于提供圖解起動顯示的RHGB的(紅色帽子圖解起動)替換。 如果rhgb是仁命令行的一部分, rhgb及早在启动过程中開始由/etc/sysinitrhgb发动顯示的一臺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=提示的方式數字

顏色640x480800x6001024x7681280x10241600x1200
2560301030303050307031C
327680310031303160319031D
65536031103140317031A031E
16.8M031203150318031B031F

使用小数,並且這同一張桌。
顏色640x480800x6001024x7681280x10241600x1200
256769771773775796
32768784787790793797
65536785788791794798
16.8M786789792795799

注意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,期望看茂盛從獨立作者的圖解起動題材。 我盼望那天。
 

射出普利茅斯的2個評論