Plymouth er codename for et freedesktop.organisasjon prosjekt startet i 2007 ved Ray Stroboskop av Redhat Å utvikle en grafisk anvendelse å vise et flimmer befrir levende skvetter skjerm i løpet av støvelen prosessen mens å logging trøster tekstutgang til et loggarkiv. Fedora 10 (Cambridge) var første utløsningen av Fedora å inneholde Plymouth. Utviklingsarbeid er aktivt pågåendet og den nåværende utløsningen er 0,71.
Plymouth blir tilsiktet å være en utskiftning for RHGB (Rød Hatt Grafisk Støvel) som for tiden blir brukt av Rød Hatt å gi en grafisk støvelutstilling. Hvis rhgb er del av kjernen kommandoen ledningen, blir startet rhgb tidlig i støvelen prosessen ved /osv/sysinit. Rhgb starter en X tjener for utstilling :1 på en virtuell terminal slik at det unngår konflikt med den regulære X tjeneren som kan være start for utstilling :0 på enda en virtuell terminal. Det skaper også en Unix domenestikk-kontakt (/etc/rhgb/temp/rhgb-socket) slik at støvelskrifttyper kan kommunisere med det. Mens støvelskrifttyper utfører, kan bruke de rhgb-klient om å sende rhgb budskap, som da oppdaterer teksten og framgangutstilling. Når systemet er avsluttet å starting, er rhgb-klient påkalt med –quit alternativ å sende et avslutter anmodning til rhgb. Brukeren er da koplet til X tjener brukt av utstillingen sjefen. Dessverre kan rekkefølgen av omkopling fra tekstmodus til rhgb‘s X tjener til tekstmodus til utstillingen sjefen’s X tjener forårsake signifikant skjerm flimre. Enda en hovedulempe av rhgb er de støvlene budskapene er ikke logget.
Hovedformålet bak Plymouth er å gi et flimmer befrir systemstartingserfaring hvor mens Ray Skred anbringer det “the stygge detaljer av støvelen opp” er gjemt bak et grafisk (og muligens levende) skvetter skjerm. Et sekundært formål er å logge støvelen rekkefølgen. Plymouth blir utformet å bearbeide systemer med direkte ytelsessjef (DRM) kjerne modesetting (KM) førere. DRM er en komponent av det Diriger Gi Infrastruktur Prosjekt. Det består av to kjernemoduler, en generisk DRM fører, og enda et som har støtte for den spesifikke grafikk kortet jernvaren. Dette paret førere tillater en userspace klient å dirigere adgang til grafikken kortet jernvaren. Se her For ytterligere opplysninger om DRM modusinnstilling. Følgelig meget allerede tidlig i støvelen bearbeider den optimale innfødte videoen utstillingen modusen for det systemet blir satt av en kjernemodusinnstillingsfører. Inn vend Plymouth bruk som modus, og som modus forblir det samme i løpet av den hele støvel prosessen opp til og etter en X tjenerstarter. X tjener, når startet, overtar den finnesende modusen, de virtuelle terminaler og framebuffer innhold. Tilgangen av en kjerne modesetting fører er nøkkelen 20000000000000000000 for Plymouth. Imidlertid for systemer uten kjerner modesetting førere, er det en tilbakefalltekstmodus som er den fortrolige tricolor blå/hvit/svart framgangbar. Plymouth faller også tilbake til denne teksten modusen hvis standardverdien plugin svikter uansett hva resonnerer for.
Kjerne modesetting førere er stille i aktiv utvikling og noe forvorpen. Fra og med Fedora 11 støtter bare Radeon R500 og høyere seriegrafikkkortkjerne modesetting ved standardverdi. Det er arbeid i gang å gi kjerne modesetting støtte for R100 og R200 grafikkkort. Intel kjerne modesetting førere finnes men skrur ikke på ved standardverdi. Støtt for kjerne modesetting i nVidia grafiske kort via Nouveau fører er enda eksperimental. Hvis du havner med bare en svart skjerm i løpet av støvel opp, eller en skjerm med bare tilfeldig støy på det, forsøk som tilføyer nomodeset til kjernen kommandoen ledningen å udyktiggjøre kjernemodusinnstilling.
Hvis det ikke er noen passende kjerne modesetting fører som er tilgjengelig for din spesielt grafikkkort eller du vil sette en eksplisitt modus, kan tilføye du snoret vga = XXX til kjernen kommandoen ledningen. Kjernen kommandoen ledningen alternativet vga = spør påkaller den den innebygde vesa framebuffer føreren, viser en liste av støttede modi og spør deg å velge ut en modus. Det starter da kjernen som bruker denne modusen. Kjernen kommandoen ledningen alternativet vga = modus, hvor er modus enten et 4 siffer som er heksadesimal med en å leding null og ingen brev ‘x’ eller et 3 sifferdesimalantall, muliggjører deg å sette en spesifikk modus.
Hvordan kan du fortelle hva spesielle modi er tilgjengelig og hvilken vil arbeide best for du ? Dette er virkelig avhengig av typen grafikken kortet som du har i din system, og mengden av videohukommelse tilgjengelig. Den eneste måten er å eksperimentere med forskjellige modi.
Den følgende tabellen viser modiene antallene som du kan tilføre på vga = tilskynder bruke heksadesimal
| FARGER | 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 |
Og her er de samme tabell brukene desimalene antallene.
| FARGER | 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 |
Bemerk som 8 biter = 256 farger, 15 biter Æ5:5:5å = 32.768 farger, 16 biter Æ5:6:5å = 65.536 farger og 24 biter Æ8:8:8å = 16,8 millionfarger. Ytterligere modi er på diskresjonen av grafikken kortet produsenten, som VESA 2,0 spesifikasjoner bare definerer modi opp til 0x31f. For mer informasjon om VESA modi se denne artikkelen om VESA BIOS Utvidelse Ettergivende grafisk kort.
Plymouth arbeider med temaer som er screensavers analog som er vist på støveltid. Fedora 11 som blir transportert med tre grafiske temaer solar, bl tydeligere og spinfinity, og to ikke--grafiske tema tekster og detaljer. Teksten temaet er standardverdien temaet som er vist hvis enda et tema svikter for uansett hva resonnerer.
Terminologien og teknologien omkring temaer og plugins har utviklet seg mens prosjektet avanserte. Versjonen av Plymouth som transporterte i Fedora 10 ble basert på et plugin system hvor hver skvetter skjerm som blir måttet blir kodet fra risp. Dette problemet ble anerkjent og for Fedora 11 Plymouth som blir dradd gjennom en major omarbeider whereby som det nå støtter temaer som i vender bruk normal plugins. Følgelig kan temafremkallere nå fokusere på temaet grafikken heller enn måtte gjøre rå kode.
For tiden er det fem temaer i Fedora oppbevaringssteder. Pris Er standardverdien temaet for Fedora 11 (Leonidas). Spinfinity er en throbber som flytter inn en sti formet som uendeligheten skiltet. Bl tydeligere viser Fedora logo som blir tydeligere og ut i et stjernefelt. Detaljer viser klassikeren å rulle utgang fra støvelen prosessen. Tekst er tilbakefallet bunnen av skjermen tricolor temaet. Solar, mitt personlig som er yndlings å datere seg, og standardverdien temaet for Fedora 10 blir, ikke installert i Fedora 11 ved standardverdi men er i en valgfri pakke. Det viser en planet med å eksplodere pulsarer.
Å installere all Plymouth temaer i Fedora oppbevaringssteder :
# yum -y install plymouth-theme-*
Installert Plymouth temaer kan bli listet opp bruk plymouth-settee-standardverdien-temaet skrifttypen :
# /usr/sbin/plymouth-set-default-theme --list charge details fade-in spinfinity text
Temaarkiver er lagret i /usr/share/plymouth/themes underkatalog.
# ls /usr/share/plymouth/themes/ charge default.plymouth details fade-in spinfinity text
Bemerk den standardverdi.plymouth er et symbolsk ledd til det aktuelle utformte standardverdien temaet.
Det er to typer plugins : Skvett og styr. Det kan bare være en skvetter plugin i bruk om gangen. Et skvetter plugin er hva tegner det skvetter skjerm, ber om et passord, viser budskap, og mer. Et tema kaller et skvetter plugin å gjøre det aktuelle arbeidet. For eksempel, her er en å listing opp av arkivene som er tilknyttet med pris temaet.
$ 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
Temaet konfigurasjonen arkivet som blir lest av plymouthd er navnet av temaet med et . plymouth utvidelse. I dette tilfellen er det pris.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
Dette temaet kaller to-trinn plugin å gjøre det aktuelle arbeidet av å vise temaet. To-trinn plugin venter et visst antall og type avbildearkiver med spesifikke navn. Forskjellige direktiver kan bli passert til plugins ; antallet og typen er plugin spesifikk. For eksempel forskjellig type overganger kan bli spesifisert for to-trinn plugin som bruker Overgangen direktiv, dvs. falmer-over, kors-falmer og sammensmeltingende-falmer.
Noen plugins har ikke transportert med Fedora 11. En slik plugin er merket plugin. Det er del av initrd ikke men er loadable en gang roten filesystem er montert. Det blir implisitt lastet når et skvetter plugin forsøk å vise tekst. Etter merke er lastet, bruker det pango og cairo Å håndtere budskaplokalisering.
Enda en slik plugin er skrifttype som støtter et scripting språk For temaer. Det støtter to grunnleggende objekt, dvs. Avbilde og Sprite. Hvis du er fortrolig med Javascript eller C språk som du burde være behagelig med syntaksen og idiomet. Bemerk at scripting språket gjennomgår hurtig utvikling på det nåværende tidspunkt med en sikt til å lage det mer objekt orienteret slik deg kan måtte lese git loggene eller kilden koden å utpønske hva er eller er ikke støttet.
For eksempeler på scripted temaer anbefaler jeg du ser på kildene for det Vizta eller det Løvetann Temaer. Disse temaene som begge ble utviklet av Charlie Brej, en forskningsassistent på Universitetet av Manchester STORBRITANNIA, som er hovedfremkalleren bak scripting språket. Hvis du vil prøve disse temaene ut på Fedora 11, vil du måtte importere kildene fra Plymouth Git tre, form, gjenoppbygg og installer på din system.
De to hovedbinær involveredd i Plymouth er /sbin/plymouthd, en daemon som gjør mest av det aktuelle arbeidet ved å vise av det skvetter skjerm og å logging støvelen sesjonen, og /beholder/plymouth som er grensesnittet til /sbin/plymouthd. Dessverre er ingen mannside forsynt for /beholder/plymouth men det er noen opplysninger i /usr/share/doc/plymouth-0.7.0 underkatalog. Begge har flere nyttig alternativer.
$ /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
I Fedora /usr/bin/rhgb-client er et symbolsk ledd til /usr/bin/plymouth
Enveiskjørt å eksperimentere med Plymouth er å påkalle det fra runlevel 2 eller 3. For eksempel, her er en enkel skrifttype å vise standardverdien temaet for 5 nest, be om et passord, og be om din navn før til slutt slutte.
#!/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
Bemerk som ikke alle plugins støtter hver kommando og alternativ på den aktuelle tiden. Den ovenfor skrifttypen arbeider med solar temaet som bruker område-flakker plugin. Men denne plugin støtter ikke budskapet kommandoen for eksempel. Et nyttig alternativ som mangler fra plymouth ville være et alternativ å spesifisere hvilke kommandoene ble støttet.
Plymouth blir ikke virkelig utformet å bli bygd fra kilde ved sluttbrukere. For det å arbeide riktig, må bli integrert det inn i det som ligger under distribusjon. Fordi det starter slik tidlig i støvelen prosessen, må bli tilføyd det til en distribusjon’s initrd (Første rambukkskive) og distribusjonen må tilslutte med plymouthd å fortelle det hvordan støvelen avanserer. Dessuten må initramfs inkludere alle de nødvendige arkivene nødvendig av en X tjener. For eksempel, her er nash skrifttypen i min Fedora 11 initrd. Legg merke til hvordan Plymouth skvetter skjerm heter så snart et konsoll er tilgjengelig og også adskillige andre tider i skrifttypen.
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
I løpet av støvelen avanserer støvelen statusen regulært er oppdatert med snorer som betyr hva er begivenhet. Plugins lytter til disse hvis de velger til men de er vanligvis ignorert i den nåværende plugins, og er bare brukt for kalkulereen støvelens tiden vurderingen. I Fedora 11 For eksempel inkluderer rc.sysinit skrifttypen adskillige roper til plymouth å gjemme eller å vise det skvetter skjerm som gir til om et passord er trenger å komme til en filesystem eller en filesystem er å bli relabeled av selinux.
Slik hvordan vet Plymouth når å slutte ? Faktisk har det ikke noen måte av å vite. Det fortsetter akkurat å draing til det mottar et slutter budskap. I tilfelle Fedora 11 sender /etc/event.d/quit-plymouth skrifttype det sluttet budskap.
# 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
Et særtilfelle er når en bruker starter til enkel bruker. I dette tilfellen er /etc/event.d/rcs-sulogin skrifttype utført.
# 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
Hva ikke vanligvis er visst er at du også kan bruke Plymouth om å gi et skvetter skjerm i løpet av systemavstengning eller gjenlader. Dette er gjort i Fedora 11 via /etc/event.d/plymouth-shutdown skrifttype. som vist nedenfor.
# 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
Trøst støvelbudskap er omdirigert til en pseudo-terminal som er skapt meget allerede tidlig i støvelen prosessen. Disse budskapene er støtt til filesystems er fullt montert. Da er bufferen tømt til /var/log/boot.. I hvert tekst eller grafikkmodus er skjult støvlene budskapene. Men du kan se disse budskapene når som helst i løpet av støvelrekkefølge ved å slå av ESC nøkkel.
En av bivirkningene av å forandre Plymouth temaer er at du må generere et nytt initrd avbilde. Vanligvis dette er gjort bruke mkinird skrifttypen. Men det er et alternativ til å gjøre dette. Du kan modifisere din finnesende initrd avbilde å fjerne noen Plymouth-Fortalt arkiver og å skape et andre initrd avbilde som inneholder akkurat Plymouth-Fortalt arkivene. Når du forandrer et tema, må bli generert bare Plymouth avbilde. Du må modifisere grub.conf å laste begge avbilder når starte. Her er en strofe fra min grub.conf som gjør akkurat det.
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
Her er en mantelskrifttype som vil generere de to avbildene. Det er basert på finnes skrifttyper i Plymouth 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
Her er en å listing opp av den genererede /boot/initrd-plymouth.img avbildet.
$ 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
Mens du kan se det bare inneholder Plymouth-Fortalt arkiver. Det inneholder ikke merket plugin fordi dette er lastet ved bruken dlopens () når nødvendig.
Du kan avluse Plymouth ved å tilføye plymouth : avlus, plymouth : avlus = arkiv :, Eller plymouth:debug=file:path_to_log_file på kjernen kommandoen ledningen. Standardverdien arkivet er /var/log/plymouth-debug.log hvis logge til et arkiv er spesifisert men ingen arkiv er spesifisert, dvs. alternativ to. Andre kjernekommandoledningsalternativer inkluderer konsoll = /dev/what_ever_works å tilsidesette standardverdien konsollet (/dev/tty0) og plymouth:splash=name_of_theme å tilsidesette standardverdien temaet.
Det er også flere nøkkelkombinasjoner slik som KTRL-L til redraw skjermen, KTRL-V å omkople avluser modus og KTRL-T å muliggjøre tekstmodus. Dessverre var ute av stand til få jeg noen av disse fester kombinasjoner å arbeide. Men ESC nøkkel arbeidet mens ventet og omkoplet utstillingen mellom detaljert og standardverdien temaet.
Plymouth gjør all pikselmanipulering i programvare. Det er nei GPU Akselerasjon. Det bruker ikke MMX (MatriseMatteutvidelse) eller SSE (Strømme SIMD Utvidelse) derfor det ikke er noen CPUakselerasjon heller. En plugin som laster mye avbilder eller gjør mye fulle skjermoppdateringer vil være langsomere enn en som laster et par avbilder og akkurat oppdaterer små deler av skjermen. Mye hva skrevet ha blitt om Plymouth i de beregnende presse å antyde som målet av Plymouth er av å gi en fortere støvel opp erfaring men det er ikke eksplisitt designmål av Plymouth.
Godt er det om alle de nyttige opplysningene om Plymouth som jeg har tid å skrive om på det nåværende tidspunkt. Etter lesning håper denne posten, jeg at du har et bedre forståelse av Plymouth og hvordan det seg forholder til støvelen rekkefølgen. Husk imidlertid at dette prosjektet er i aktiv utvikling. og ingenting er støpt i stein. For eksempel innbefatningen av Dracut, Kan en utskiftning for nash, i Fedora 12 (Constantine) berøre hvordan Plymouth er påkalt. Temaer og plugger inn også hurtig utvikler seg.
Mens Plymouth er iverksatt i andre GNU/Linux distribusjoner slik som Ubuntu, Vent til å se en å florering av grafisk støveltemaer fra uavhengige forfattere. Jeg ser frem til den dagen.



























“The nøkkelide bak Plymouth er å starte X tjener meget allerede tidlig
støvelen prosessen og å fortsette å bruke at X tjener i løpet av pålogging og
brukersesjoner. ”
Den gjennomgangen lyder mer likt Krom OPERATIVSYSTEM enn plymouth.
Postingslistearkiv http://lists.freedesktop.org/archives/plymouth/2009-December/thread.html Også omtale som selv om Brie verter to plugins, betyr doesn’t han som seg utviklet dem. Min vill gjetning er at adskillige folk ble involveredd.
Du har rett om den setningen ! Jeg har modifisert det.
Nope, så fjern som kan jeg fortelle, burde dra all kreditt til Charlie Brej for disse to plugins.