Übersetzen Sie

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
Bild des Beginns von Google Maps API 3
Bild der androiden drahtlosen Anwendungsentwicklung
Bild der modernen Betriebssysteme (3. Ausgabe)
Bild von RHCE Red Hat bestätigte Ingenieur-Linux-Studien-Führer (Prüfung RH302) (Bescheinigung-Presse)

Projekt Plymouth

Plymouth ist der Codename für ein freedesktop.org- Projekt begonnen 2007 von Ray Strobe von Redhat , um eine grafische Anwendung zu entwickeln, um einen lebhaften Spritzenschirm des Aufflackerns frei während des Aufladungsprozesses anzuzeigen, während loggenkonsolentext zu einer Protokolldatei ausgab. Fedora 10 (Cambridge) war die erste Freigabe von Fedora, zum von Plymouth zu enthalten. Entwicklungsarbeit läuft aktiv und die aktuelle Version ist 0.71.

Plymouth soll ein Wiedereinbau für RHGB (Red Hat-grafische Aufladung) sein das z.Z. durch Red Hat verwendet wird, um eine grafische Aufladungsanzeige zur Verfügung zu stellen. Wenn rhgb ein Teil der KernBefehlszeile ist, wird rhgb früh im Aufladungsprozeß durch /etc/sysinit begonnen. rhgb stellt einen x-Bediener für Anzeige an: 1 auf einem virtuellen Anschluss, damit er Konflikt mit dem regelmäßigen x-Bediener vermeidet, der für Anzeige anstellen kann: 0 auf einem anderen virtuellen Anschluss. Er stellt auch eine Unix-Gebietseinfaßung her (/etc/rhgb/temp/rhgb-socket) damit Aufladungsindexe sie verbunden sein können. Während Aufladungsindexe durchführen, können sie Rhgbklienten verwenden, um Mitteilungen zum rhgb zu schicken, das dann die Text- und Fortschrittsanzeige aktualisiert. Wenn das System fertiges Laden des Betriebssystems ist, wird Rhgbklient mit der - beendigten Wahl hervorgerufen, um einen Beendigungantrag zum rhgb zu schicken. Der Benutzer wird dann zum x-Bediener geschalten, der vom Anzeigenmanager benutzt wird. Leider kann die Reihenfolge des Schaltens von Textmodus zu rhgb `s X Bediener zum Textmodus zum des Anzeigenbediener X Managers das bedeutende Schirmflackern verursachen. Eine andere Hauptbeeinträchtigung von rhgb ist, dass Aufladungsmitteilungen nicht geloggt werden.

Die Hauptzielsetzung hinter Plymouth ist, eine Systems-Laden des Betriebssystemserfahrung des Aufflackerns zur Verfügung zu stellen freie, in der, da Strahl schritt, ihn setzen Sie, , welches die hässlichen Details der Aufladung oben hinter einem grafischen (versteckt werden und vielleicht) Spritzenschirm belebt. Eine Sekundärzielsetzung ist, die Aufladungsreihenfolge zu loggen. Plymouth ist entworfen, um an Systemen mit modesetting (KMS) Fahrern des direkten Kerns des Wiedergabemanagers zu arbeiten (DRM). DRM ist ein Bestandteil des direkten Wiedergabe-Infrastruktur projektes. Es besteht zwei Kernmodulen, einem generischen DRM Fahrer und aus anderem, der Unterstützung für die spezifische Grafikkarte-Hardware hat. Dieses Paar Fahrer erlaubt einen userspace Klientendirektzugriff zur Grafikkarte-Hardware. Sehen Sie hier für weitere Informationen auf DRM Moduseinstellung. So sehr früh im Aufladungsprozeß wird der optimale gebürtige Videodarstellungmodus für das System durch einen Kernmodus-Einstellungsfahrer eingestellt. Der Reihe nach Plymouth-Gebrauch bis dem Modus und zu dem Modus der selbe während des gesamten Aufladungsprozesses bis bleibt und nachdem ein x-Bediener beginnt. Der x-Bediener, wenn er angestellt wird, übernimmt den vorhandenen Modus, die virtuellen Anschlüß und den framebuffer Inhalt. Die Verwendbarkeit eines modesetting Fahrers des Kerns ist der Schlüsselenabler für Plymouth. Jedoch für Systeme ohne modesetting Fahrer des Kerns, gibt es einen RückfallsTextmodus, der der vertraute tricolor Blaue/Weiß-/Schwarzfortschrittsstab ist. Plymouth fällt auch zurück zu diesem Textmodus wenn Rückstellungseinsteckausfallen aus welchem Grund auch immer.

Modesetting Fahrer des Kerns sind noch in der aktiven Entwicklung und ein wenig im Buggy. Ab Fedora 11, stützen nur Radeon R500 und höhere ReihenGrafikkarten den Kern, der durch Rückstellung modesetting ist. Es gibt das im Entstehen befindliches Werk, zum der modesetting Unterstützung des Kerns für Grafikkarten R100 und R200 zu gewähren. Modesetting Fahrer des Intel-Kerns existieren, aber werden nicht durch Rückstellung eingeschalten. Unterstützung für den Kern, der in den nVidia grafischen Karten über den Nouveau Fahrer modesetting ist, ist noch experimentell. Wenn Sie oben mit nichts aber einem schwarzen Schirm während der Aufladung oben oder einem Schirm mit nichts aber gelegentlichen Geräuschen auf ihm beenden, der Versuch, der nomodeset der KernBefehlszeile Sperrungskern-Moduseinstellung hinzufügt.

Wenn es keinen modesetting Fahrer des verwendbaren Kerns gibt, der für Ihre bestimmte Grafikkarte vorhanden ist, oder Sie einen ausdrücklichen Modus einstellen möchten, können Sie das Schnur vga=XXX der KernBefehlszeile hinzufügen. Die KernBefehlszeile Wahl vga=ask ruft den eingebauten vesa framebuffer Fahrer hervor, zeigt eine Liste der gestützten Modi an und bittet Sie, einen Modus vorzuwählen. Er lädt dann den Kern unter Verwendung dieses Modus auf. Die KernBefehlszeile Wahl vga=mode, in der Modus entweder hexadezimalen Zahle mit 4 Stellen mit einem führenden null und keinem Buchstabe `x oder einer dezimalen Zahl mit 3 Stellen ist, ermöglicht Ihnen, einen spezifischen Modus einzustellen.

Wie können Sie erklären, welche bestimmten Modi vorhanden sind und welches gut für Sie funktioniert? Dieses hängt wirklich von der Art der Grafikkarte, die Sie in Ihrem System haben, und von der Menge des videogedächtnisses vorhanden ab. Die einzige Weise ist, mit verschiedenen Modi zu experimentieren.

Die folgende Tabelle zeigt die Moduszahlen, die Sie an der vga= Aufforderung unter Verwendung der hexadezimalen Zahle eingeben können

FARBEN640x480800x6001024x7681280x10241600x1200
2560301030303050307031C
327680310031303160319031D
65536031103140317031A031E
16.8M031203150318031B031F

und ist hier die gleiche Tabelle unter Verwendung der dezimalen Zahlen.
FARBEN640x480800x6001024x7681280x10241600x1200
256769771773775796
32768784787790793797
65536785788791794798
16.8M786789792795799

Merken Sie, dass 8 Bits = 256 Farben, 15 Bits [5: 5: 5] = 32.768 Farben, 16 Bits [5: 6: 5] = 65.536 Farben und 24 Bits [8: 8: 8] = 16.8 Million Farben. Zusätzliche Modi sind an der Diskretion des Grafikkarteherstellers, da die VESA 2.0 Spezifikation nur Modi bis zu 0x31F definiert. Zu mehr Information über VESA Modi, sehen Sie diesen Artikel über gefällige grafische Karten DER VESA BIOS Verlängerung.

Plymouth arbeitet mit Themen, die Screensavers analog sind, die zur Aufladungszeit angezeigt werden. Fedora 11 versendete mit drei grafischen Themen Solar-, fade-in und spinfinity und zwei ungrafische Themen Text und Details. Das Textthema ist das Rückstellungsthema, das angezeigt wird, wenn ein anderes Thema aus welchem Grund auch immer ausfällt.

Die Terminologie und die Technologie um Themen und Steckverbindungen hat entwickelt, wie das Projekt weiterkam. Die Version von Plymouth, die in Fedora 10 versendete, basierte auf einem Einstecksystem, in dem jeder Spritzenschirm vom Kratzer kodiert werden musste. Dieses Problem wurde erkannt und für Fedora 11 lief Plymouth eine Hauptneufassung durch, hingegen es jetzt Themen stützt, die der Reihe nach Standardsteckverbindungen benutzen. So können Themaentwickler auf die Themagraphiken eher als müssend jetzt sich konzentrieren rohe Kodierung tun.

Z.Z. gibt es fünf Themen in den Fedora-Behältern. Gebühr ist das Rückstellungsthema für Fedora 11 (Leonidas). Spinfinity ist ein throbber, das in einen Weg sich bewegt, der wie das Unbegrenztheitszeichen geformt wird. Fade-In Erscheinen das Fedora-Firmenzeichen, das und heraus in einem Sternfeld einblendet. Details zeigt das klassische Blättern, das vom Aufladungsprozeß ausgegeben wird. Text ist die Rückfallsunterseite des tricolor Themas des Schirmes. Solar-, mein persönlicher Liebling bis jetzt und das Rückstellungsthema für Fedora 10, wird nicht angebracht, in Fedora 11 durch Rückstellung aber ist in einem wahlweise freigestellten Paket. Es zeigt einen Planeten mit explodierenden Pulsars an.

Zu alle Plymouth-Themen in die Fedora-Behälter anbringen:

# yum -y install plymouth-theme-*


Angebrachte Plymouth-Themen können aufgeführter Gebrauch sein der Plymouth-einstellen-zurückfallenthema Index:

# /usr/sbin/plymouth-set-default-theme --list
charge
details
fade-in
spinfinity
text


Themaakten werden im /usr/share/plymouth/themes-Unterverzeichnis gespeichert.

# ls /usr/share/plymouth/themes/
charge  default.plymouth  details  fade-in  spinfinity  text


Merken Sie, dass default.plymouth eine symbolische Verbindung zum tatsächlichen entworfenen Rückstellungsthema ist.

Es gibt zwei Arten Steckverbindungen: Spritzen und Steuerung. Es kann ein SpritzenEinsteckgebräuchliches nur auf einmal geben. Ein Einsteck Spritzen ist, was den Spritzenschirm, bittet um ein Kennwort, anzeigt Mitteilungen zeichnet und mehr. Ein Thema nennt ein Spritzen Einsteck, um die tatsächliche Arbeit zu erledigen. Z.B. ist hier eine Auflistung der Akten, die mit dem Gebührenthema verbunden sind.

$ 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


Die Themakonfigurationsakte, die durch plymouthd gelesen wird, ist der Name des Themas mit einer .plymouth Verlängerung. In diesem Fall ist es 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


Dieses Thema benennt das zweistufige Einsteck, um die tatsächliche Arbeit des Anzeigens des Themas zu erledigen. Das zweistufige Einsteck erwartet eine bestimmte Anzahl und eine Art von Bildakten mit spezifischen Namen. Verschiedene Richtlinien können zu den Steckverbindungen geführt werden; die Zahl und die Art, die Einsteckbesondere sind. Z.B. kann unterschiedliche Art von Übergängen für das zweistufige Einsteck unter Verwendung der Übergangsrichtlinie, d.h. verblassen-über spezifiziert werden, Kreuz-verblassen und vermischen-verblassen.

Einige Steckverbindungen versendeten nicht mit Fedora 11. Ein solches Einsteck ist der Einsteck Aufkleber. Es ist, nicht Teil initrd aber ist ladbar, sobald das Wurzeldateisystem angebracht wird. Es wird implizit wenn Einsteckversuche eines Spritzens, Text anzuzeigen geladen. Nachdem Aufkleber geladen ist, benutzt er pango und Kairo , um Mitteilunglokalisation zu behandeln.

Ein anderes solches Einsteck ist Index, der eine scripting Sprache für Themen stützt. Es stützt zwei grundlegende Gegenstände, d.h. Bild und Sprite. Wenn Sie mit Javascript oder der C-Sprache vertraut sind, sollten Sie mit der Syntax und dem Idiom dich wohlfühlen. Merken Sie, dass die scripting Sprache schnelle Entwicklung zurzeit angesichts der Herstellung sie durchmacht, die mehr Gegenstand sich orientierte, also Sie die git Maschinenbordbücher oder den Quellencode lesen müssen können, um herauszufinden, was ist oder nicht gestützt wird.

Für Beispiele der vorbereitet Themen empfehle ich Sie Blick an den Quellen für das Vizta oder die Löwenzahn themen. Diese Themen wurden beide von Charlien Brej, ein Forschungsassistent an der Universität von Manchester Großbritannien entwickelt, das der Hauptentwickler hinter der scripting Sprache ist. Wenn Sie diese Themen heraus auf Fedora 11 versuchen möchten, müssen Sie die Quellen aus dem Baum Plymouth-Git importieren, bauen zusammen, bauen um und bringen auf Ihr System an.

Die zwei Hauptzweiheiten, die in Plymouth mit einbezogen werden, sind /sbin/plymouthd, ein Dämon, der die meisten der tatsächlichen Arbeit erledigt, indem es den Spritzenschirm anzeigt und den Aufladungslernabschnitt loggt, und /bin/plymouth, das die Schnittstelle zu /sbin/plymouthd ist. Leider wird keine Mannseite für /bin/plymouth geliefert, aber es gibt etwas Informationen im /usr/share/doc/plymouth-0.7.0-Unterverzeichnis. Beide haben einige nützliche Wahlen.

$ /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


In Fedora ist /usr/bin/rhgb-client eine symbolische Verbindung zu /usr/bin/plymouth

Der One-way, zum mit Plymouth zu experimentieren ist, es von runlevel 2 hervorzurufen, oder 3. zum Beispiel, ist hier ein einfacher Index, zum des Rückstellungsthemas für 5 Sekunden anzuzeigen, um ein Kennwort zu bitten, und um Ihren Namen zu bitten, bevor sie schließlich beendigen.

#!/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


Merken Sie, dass nicht alle Steckverbindungen jeden Befehl und Wahl gegenwärtig stützen. Der oben genannte Index arbeitet mit dem Solarthema, das sicherweitert Einsteck verwendet. Jedoch stützt dieses Einsteck nicht den Mitteilungbefehl zum Beispiel. Eine nützliche Wahl, die von Plymouth fehlt, würde eine Wahl sein, zum aufzuzählen, welche Befehle gestützt wurden.

Plymouth ist nicht wirklich entworfen, von der Quelle von den Endbenutzern errichtet zu werden. Damit es richtig arbeitet, muss es in die zugrunde liegende Verteilung integriert sein. Weil sie so früh im Aufladungsprozeß beginnt, muss sie dem initrd einer Verteilung ( Anfangs-RAM-Scheibe) hinzugefügt werden und die Verteilung muss an plymouthd anschließen, um ihm zu erklären, wie die Aufladung weiterkommt. Außerdem muss die initramfs alle notwendigen Akten umfassen, die durch einen x-Bediener benötigt werden. Z.B. ist hier der nash Index in meinem Fedora 11 initrd. Nachricht, wie der Plymouth-Spritzenschirm benannt wird, sobald eine Konsole vorhanden und auch einige andere Male im Index ist.

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


Während des Aufladungsfortschritts wird der Aufladungsstatus regelmäßig mit dem Schnurbedeuten aktualisiert, was geschieht. Steckverbindungen können zu diesen hören, wenn sie zu wählen, aber sie im Allgemeinen in den gegenwärtigen Steckverbindungen ignoriert werden, und werden nur für die Berechnung der Aufladungszeitschätzung verwendet. In Fedora 11, z.B. umfaßt der rc.sysinit Index einige Anrufe zu Plymouth, um den Spritzenschirm zu verstecken oder zu zeigen, je nachdem ob ein Kennwort erforderlich ist, auf ein Dateisystem zurückzugreifen, oder ein Dateisystem durch selinux relabeled soll.

So wie weiß Plymouth, wann man beendigt? Wirklich hat es keine Weise des Wissens. Es hält gerade auf dem Gehen, bis es eine geverlassene Mitteilung empfängt. Im Falle Fedoras 11, sendet der /etc/event.d/quit-plymouth-Index die geverlassene Mitteilung.

# 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


Ein spezieller Fall ist wenn Aufladungen eines Benutzers zum einzelnen Benutzer. In diesem Fall wird der /etc/event.d/rcS-sulogin-Index durchgeführt.

# 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


Was nicht allgemein bekannt, ist, dass Sie Plymouth auch benutzen können, um einen Spritzenschirm während der Systemsabschaltung oder -neustarts zur Verfügung zu stellen. Dieses wird in Fedora 11 über den /etc/event.d/plymouth-shutdown-Index getan. wie gezeigt unten.

# 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


Konsolenaufladungsmitteilungen werden zu einem Pseudo-Terminal umadressiert, das sehr früh im Aufladungsprozeß hergestellt wird. Diese Mitteilungen werden abgedämpft, bis Dateisysteme völlig angebracht sind. Dann wird der Puffer zu /var/log/boot. entleert. Entweder im Text oder im Grafikmodus werden die Aufladungsmitteilungen undeutlich gemacht. Jedoch können Sie diese Mitteilungen während der Aufladungsreihenfolge jederzeit sehen, indem Sie den ESC-Schlüssel schlagen.

Eine der Nebenwirkungen des Änderns der Plymouth-Themen ist, dass Sie ein neues initrd Bild erzeugen müssen. Normalerweise wird dieses unter Verwendung des mkinird Indexes getan. Jedoch es gibt eine Alternative zum Handeln dies. Sie können Ihr vorhandenes initrd Bild ändern, um alle Plymouth-in Verbindung stehenden Akten zu entfernen und ein zweites initrd Bild zu verursachen, das gerade die Plymouth-in Verbindung stehenden Akten enthält. Wenn Sie ein Thema ändern, nur das Plymouth-Bild erzeugt werden muss. Sie müssen grub.conf ändern, um beide Bilder beim Boot zu laden. Ist hier eine Stanze von meinem grub.conf, das gerade das tut.

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


Ist hier ein Shell-Skript, das die zwei Bilder erzeugt. Es basiert auf vorhandenen Indexen im 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


Ist hier eine Auflistung des erzeugten /boot/initrd-plymouth.img-Bildes.

$ 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


Wie Sie sehen können, enthält sie nur Plymouth-in Verbindung stehende Akten. Sie enthält nicht den Einsteck Aufkleber, weil dieses wird geladen, bei der Anwendung dlopen () wenn es benötigt wird.

Sie können Plymouth ausprüfen, indem Sie Plymouth addieren: prüfen Sie, Plymouth aus: debug= file: oder Plymouth: debug= file:path_to_log_file auf der KernBefehlszeile. Die Rückstellungsakte ist /var/log/plymouth-debug.log, beim Protokollieren in einer Akte spezifiziert wird, aber keine Akte, d.h. Wahl zwei spezifiziert wird. Andere KernBefehlszeile Wahlen umfassen console=/dev/what_ever_works, um die Rückstellungskonsole (/dev/tty0) und Plymouth aufzuheben: splash=name_of_theme, zum des Rückstellungsthemas aufzuheben.

Es gibt auch einige Tastenkombinationen wie CTRL-L, zum des Schirmes neu zu entwerfen, prüfen CTRL-V zum umzuschalten Modus und CTRL-T aus, um Textmodus zu ermöglichen. Leider war ich nicht imstande, irgendwelche Tastenkombinationen zu erhalten, um zu arbeiten. Jedoch arbeitete der ESC-Schlüssel wie erwartet und schielt die Anzeige zwischen ausführlichem und dem Rückstellungsthema um.

Plymouth tut alle Pixelhandhabung in der Software. Es gibt keine GPU Beschleunigung. Es tut nicht Gebrauch MMX (Matrix-Mathe-Verlängerung), oder SSE (SIMD Verlängerung strömend) folglich dort ist keine CPU-Beschleunigung auch nicht. Ein Einsteck, das viele Bilder lädt oder viele auf dem ganzen Bildschirmupdates ist langsamer tut, als eins, das einige Bilder und gerade Updates kleine Teile des Schirmes lädt. Viel von, was über Plymouth in die rechnenpresse geschrieben worden ist, deutet, dass das Ziel von Plymouth, eine schnellere Aufladung herauf Erfahrung zur Verfügung zu stellen ist, aber das ist nicht ein ausdrückliches Entwurfsziel von Plymouth an.

Quellen Sie hervor, das über alle nützlichen Informationen über Plymouth ist, dass ich Zeit habe, ungefähr zurzeit zu schreiben. Nach dem Ablesen dieses Pfostens, hoffe ich, dass Sie ein besseres Verständnis von Plymouth haben und wie es auf der Aufladungsreihenfolge bezieht. Erinnern Sie sich jedoch, dass dieses Projekt in der aktiven Entwicklung ist. und nichts wird im Stein geworfen. Z.B. kann die Einbeziehung von Dracut, ein Wiedereinbau für nash, in Fedora 12 (Constantine) beeinflussen, wie Plymouth hervorgerufen wird. Themen und Steckverbindungen sind auch sich rasch entwickelnd.

Wie Plymouth in anderen GNU/Linux Verteilungen wie Ubuntu eingeführt wird, erwarten Sie, ein Blühen der grafischen Aufladungsthemen von den unabhängigen Autoren zu sehen. Ich schaue vorwärts zu diesem Tag.
 

2 Anmerkungen, zum von Plymouth zu projektieren

  • Simon B.

    Die Schlüsselidee hinter Plymouth ist, den x-Bediener sehr früh anzustellen
    der Aufladungsprozeß und diesen, x-Bediener während des LOGON zu verwenden fortfahren und
    Benutzerlernabschnitte.
    Dieser Durchgang klingt eher wie Chrom OS als Plymouth.

    Adressenkarteiarchive http://lists.freedesktop.org/archives/plymouth/2009-December/thread.html erwähnen auch, dass, obwohl Briekäse zwei Steckverbindungen bewirtet, nicht bedeutet, dass er selbst sie entwickelte. Meine wilde Vermutung ist, dass einige Leute beteiligt waren.

  • Sie haben über diesen Satz Recht! Ich habe ihn geändert.

    Nope, insoweit ich erklären kann, alle Gutschrift sollte zu Charlien Brej für diese zwei Steckverbindungen gehen.