Traduca

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
Immagine dei concetti del sistema operativo
Immagine dei sistemi operativi moderni (terza edizione)
L'immagine di RHCE Red Hat ha certificato la guida di studio di Linux dell'assistente tecnico (esame RH302) (pressa di certificazione)
Immagine di cominciare Google Maps api 3

Progetto Plymouth

Plymouth il nome del codice per un progetto freedesktop.org iniziata in 2007 da Ray Strobe di Redhat per sviluppare un'applicazione grafica per visualizzare uno schermo liberamente animato della spruzzata della luce intermittente durante il processo di caricamento del sistema mentre il testo di registrazione della sezione comandi ha prodotto ad una lima di ceppo. Fedora 10 (Cambridge) era il primo rilascio di Fedora per contenere Plymouth. Il lavoro di sviluppo attivamente continuo ed il rilascio corrente 0.71.

Plymouth intesa per essere un rimontaggio per RHGB (caricamento del sistema grafico di Red Hat) che attualmente usato da Red Hat per fornire un'esposizione grafica del caricamento del sistema. Se il rhgb fa parte della linea di ordine del nocciolo, il rhgb iniziato presto nel processo di caricamento del sistema da /etc/sysinit. il rhgb avvia un assistente di X per esposizione: 1 su un terminale virtuale in modo che eviti il conflitto con l'assistente normale di X che pu avviare per esposizione: 0 su un altro terminale virtuale. Inoltre genera uno zoccolo di dominio di Unix (/etc/rhgb/temp/rhgb-socket) in moda da potere comunicare gli scritti del caricamento del sistema con esso. Mentre gli scritti del caricamento del sistema eseguono, possono usare il rhgb-cliente per trasmettere i messaggi a rhgb, che allora aggiorna l'esposizione di progresso e del testo. Quando il sistema initzializzazione rifinita, il rhgb-cliente invocato con - l'opzione rinunciata per trasmettere una richiesta di terminazione a rhgb. L'utente allora commutato all'assistente di X usato dal responsabile dell'esposizione. Purtroppo la sequenza di passare dal modo di testo all'assistente del `la s X del rhgb al modo di testo all'assistente di X del responsabile dell'esposizione pu causare lo sfarfallamento significativo dello schermo. Un altro svantaggio principale di rhgb che i messaggi del caricamento del sistema non sono annotati.

L'obiettivo principale dietro Plymouth di fornire un'esperienza libera di initzializzazione del sistema della luce intermittente dove poich il raggio ha progredetto mettalo che i particolari brutti del caricamento del sistema in su sono nascosti dietro (e possibilmente che sono animati) uno schermo grafico della spruzzata. Un obiettivo secondario di annotare la sequenza del caricamento del sistema. Plymouth destinata per lavorare ai sistemi con i driver modesetting della rappresentazione del nocciolo diretto del responsabile (DRM) (KMS). DRM una componente del progetto diretto dell'infrastruttura della rappresentazione. Consiste di due moduli del nocciolo, di un driver generico di DRM e di un altro che abbia contributo ai fissaggi specifici della carta grafica. Questo accoppiamento dei driver permette un accesso diretto del cliente del userspace ai fissaggi della carta grafica. Vedi qui per ulteriori informazioni sulla regolazione di modo di DRM. Cos molto nella fase iniziale nel processo di caricamento del sistema il modo di video esposizione natale ottimale per il sistema fissato da un driver della regolazione di modo del nocciolo. Alternativamente gli usi della Plymouth a che il modo ed a che il modo rimane gli stessi durante l'intero processo di caricamento del sistema fino e dopo che un assistente di X si avvia. L'assistente di X, una volta avviato, assume la direzione del modo attuale, dei terminali virtuali e del soddisfare del framebuffer. La disponibilit di un driver modesetting del nocciolo il enabler chiave per Plymouth. Tuttavia, per i sistemi senza driver modesetting del nocciolo, ci un modo di testo di ritorno che la barra blu/nero tricolor esperta/di bianco progresso. Plymouth inoltre cade di nuovo a questo modo di testo se i venire a mancare alimentabili di difetto per che cosa motivo.

I driver modesetting del nocciolo sono ancora in sviluppo attivo e piuttosto carrozzino. A partire da Fedora 11, soltanto Radeon R500 e le pi alte carte grafiche di serie sostengono il nocciolo che modesetting per difetto. Ci sono lavori in corso per fornire il supporto modesetting del nocciolo per le carte grafiche R100 e R200. I driver modesetting del nocciolo di Intel esistono ma non sono accesi per difetto. Il contributo al nocciolo che modesetting nelle carte grafiche di nVidia via il driver di Nouveau ancora sperimentale. Se vi concludete in su con niente ma uno schermo nero durante il caricamento del sistema in su, o uno schermo con niente ma rumore casuale su esso, prova che aggiunge nomodeset alla linea di ordine del nocciolo alla regolazione di modo del nocciolo di disable.

Se non ci driver modesetting del nocciolo adatto disponibile per la vostra carta grafica particolare o volete fissare un modo esplicito, potete aggiungere il vga=XXX della stringa alla linea di ordine del nocciolo. La linea di ordine del nocciolo vga=ask di opzione invoca il driver incorporato del framebuffer di vesa, visualizza una lista dei modi di sostegno e gli chiede di selezionare un modo. Allora caric il sistemaare il nocciolo usando questo modo. La linea di ordine del nocciolo vga=mode di opzione, in cui il modo un'esadecimale delle 4 cifre con della lettera nessun e zero del `un x principale o un numero decimale delle 3 cifre, gli permette di fissare un modo specifico.

Come potete dire i che modi particolari sono disponibili e quale funzioner il pi bene per voi? Ci realmente dipende dal tipo di carta grafica che avete nel vostro sistema e dalla quantit di video memoria disponibile. L'unico senso di sperimentare con differenti modi.

La seguente tabella mostra i numeri che di modo potete immettere alle esadecimali usando rapide del vga=

COLORI640x480800x6001024x7681280x10241600x1200
2560301030303050307031C
327680310031303160319031D
65536031103140317031A031E
16.8M031203150318031B031F

e qui la stessa tabella usando i numeri decimali.
COLORI640x480800x6001024x7681280x10241600x1200
256769771773775796
32768784787790793797
65536785788791794798
16.8M786789792795799

Si noti che 8 bit = 256 colori, 15 bit [5: 5: 5] = 32.768 colori, 16 bit [5: 6: 5] = 65.536 colori e 24 bit [8: 8: 8] = 16.8 milione colori. I modi supplementari sono a discrezione del fornitore della carta grafica, poich la specifica di VESA 2.0 definisce soltanto i modi fino a 0x31F. Per pi informazioni sui modi di VESA, vedi questo articolo sulle carte grafiche compiacenti di estensione di VESA BIOS.

Plymouth funziona con i temi che sono analoghi agli screensavers che sono visualizzati a tempo del caricamento del sistema. Fedora 11 ha spedetto con tre temi grafici solari, fade-in e spinfinity e due temi non grafici testo e particolari. Il tema del testo il tema di difetto che visualizzato se un altro tema viene a mancare per che cosa motivo.

La terminologia e la tecnologia intorno ai temi ed ai collegamenti si evoluta come il progetto ha progredetto. La versione di Plymouth che ha spedetto in Fedora 10 stata basata su un sistema alimentabile in cui ogni schermo della spruzzata ha dovuto essere codificato da zero. Questo problema stato riconosciuto e per Fedora 11 Plymouth ha passato con una riscrittura importante per cui ora sostiene i temi che a loro volta usano i collegamenti standard. Cos gli sviluppatori di tema possono ora mettere a fuoco sui grafici di tema piuttosto che dovendo fare la codificazione grezza.

Attualmente ci sono cinque temi nei depositi di Fedora. La carica il tema di difetto per Fedora 11 (Leonidas). Spinfinity un throbber che si muove in un percorso a forma di come il segno di infinit. Esposizioni Fade-In il marchio di Fedora che si sbiadice dentro e fuori in un giacimento di stella. i particolari mostra lo scrolling classico prodotto dal processo di caricamento del sistema. il testo la parte inferiore di ritorno del tema tricolor dello schermo. Solare, il mio favorito personale fin qui ed il tema di difetto per Fedora 10, non installato in Fedora 11 per difetto ma in un pacchetto facoltativo. Visualizza un pianeta con i pulsar d'esplosione.

Per per installare tutti i temi della Plymouth nei depositi di Fedora:

# yum -y install plymouth-theme-*


I temi installati della Plymouth possono essere uso elencato lo scritto di Plymouth-regolare-stabilizzare-tema:

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


Le lime di tema sono immagazzinate nel subdirectory di /usr/share/plymouth/themes.

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


Si noti che default.plymouth un collegamento simbolico al tema progettato reale di difetto.

Ci sono due tipi di collegamenti: spruzzata e controllo. Ci pu soltanto essere un in uso alimentabile della spruzzata alla volta. Una spruzzata alimentabile che cosa estrae lo schermo della spruzzata, chiede una parola d'accesso, visualizza i messaggi e pi. Un tema denomina una spruzzata alimentabile per fare il lavoro reale. Per esempio, qui un elenco delle lime connesse con il tema della carica.

$ 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


La lima di configurazione di tema che letta da plymouthd il nome del tema con un'estensione di .plymouth. In questo caso 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


Questo tema denomina l'alimentabile in due tappe per fare il lavoro reale di visualizzazione del tema. L'alimentabile in due tappe prevede un certi numero e tipo di lime di immagine con i nomi specifici. I vari indirizzamenti possono essere passati ai collegamenti; il numero ed il tipo che sono specific alimentabile. Per esempio il tipo differente di transizioni pu essere specificato per l'alimentabile in due tappe usando l'indirizzamento di transizione, cio sbiadire-sopra, traversa-sbiadirsi e fondere-sbiadirsi.

Alcuni collegamenti non hanno spedetto con Fedora 11. Un tale alimentabile l'etichetta alimentabile. Non fa parte del initrd ma loadable una volta che il filesystem della radice montato. caricato implicitamente quando tentativi alimentabili della spruzzata di visualizzare il testo. Dopo che l'etichetta caricata, usa il pango e Cairo per trattare la localizzazione del messaggio.

Un altro tale alimentabile scritto che sostiene una lingua scripting per i temi. Sostiene due oggetti di base, cio immagine e Sprite. Se avete una conoscenza di con il Javascript o il linguaggio C dovreste stare bene con la sintassi e l'idioma. Si noti che la lingua scripting sta subendo attualmente lo sviluppo veloce con vista a farlo che pi oggetto ha orientato in modo da potete dovere leggere i ceppi del git o il codice sorgente per calcolare fuori che cosa o non sostenuto.

Per degli esempi dei temi scritti secondo copione, lo suggerisco sguardo alle fonti per il Vizta o i temi del dente di leone. Questi temi entrambi sono stati sviluppati da Charlie Brej, un assistente di ricerca all'universit di Manchester Regno Unito, che lo sviluppatore principale dietro la lingua scripting. Se volete provare questi temi fuori su Fedora 11, dovrete importare le fonti dall'albero della Plymouth Git, configurate, ricostruite ed installate sul vostro sistema.

Le due paia principali in questione in Plymouth sono /sbin/plymouthd, un demone che fa la maggior parte del lavoro reale visualizzando lo schermo della spruzzata ed annotando la sessione del caricamento del sistema e /bin/plymouth che l'interfaccia a /sbin/plymouthd. Purtroppo nessuna pagina di uomo fornita per /bin/plymouth ma ci sono alcune informazioni nel subdirectory di /usr/share/doc/plymouth-0.7.0. Entrambi hanno un certo numero di opzioni utili.

$ /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 /usr/bin/rhgb-client un collegamento simbolico a /usr/bin/plymouth

Il one-way da sperimentare con Plymouth di invocarla da runlevel 2 o 3. per esempio, qui sono uno scritto semplice per visualizzare il tema di difetto per 5 secondi, da chiedere una parola d'accesso e da chiedere il vostro nome prima infine del lascito.

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


Si noti che non tutti i collegamenti sostengono attualmente ogni ordine ed opzione. Lo scritto di cui sopra funziona con il tema solare che usa spazio-si svasa alimentabile. Tuttavia questo alimentabile non sostiene l'ordine del messaggio per esempio. Un'opzione utile che manca da Plymouth sarebbe un'opzione per enumerare quali ordini sono stati sostenuti.

Plymouth realmente non destinata per essere costruita dalla fonte dagli utilizzatori finali. Affinch funzioni correttamente, deve essere integrato nella distribuzione di fondo. Poich comincia cos presto nel processo di caricamento del sistema, deve aggiungersi al initrd della distribuzione (disc di ram iniziale) e la distribuzione deve collegare mediante interfaccia a plymouthd per dirgli come il caricamento del sistema sta progredicendo. Ancora i initramfs deve includere tutte le lime necessarie state necessarie da un assistente di X. Per esempio, qui lo scritto del nash nel mio initrd di Fedora 11. Avviso come lo schermo della spruzzata della Plymouth denominato non appena una sezione comandi disponibile ed anche parecchie altre volte nello scritto.

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


Durante il progresso del caricamento del sistema la condizione del caricamento del sistema aggiornata regolarmente con le stringhe indicando che cosa sta accadendo. I collegamenti possono ascoltare questi se scelgono a ma sono ignorati generalmente nei collegamenti correnti e soltanto sono usati per la calcolazione della valutazione di tempo del caricamento del sistema. In Fedora 11, per esempio lo scritto di rc.sysinit comprende parecchie chiamate a Plymouth per nascondere o mostrare lo schermo della spruzzata secondo come una parola d'accesso necessaria accedere ad un filesystem o un filesystem deve relabeled da selinux.

Cos come Plymouth conosce quando rinunciare? Realmente, non ha senso di sapere. Mantiene appena sul andare fino a che non ricevi un messaggio rinunciato. Nel caso di Fedora 11, lo scritto di /etc/event.d/quit-plymouth trasmette il messaggio rinunciato.

# 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


Un caso speciale quando caricamenti del sistema dell'utente al monoutente. In questo caso lo scritto di /etc/event.d/rcS-sulogin eseguito.

# 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


Che cosa non conosciuto comunemente che potete anche usare Plymouth per fornire uno schermo della spruzzata durante l'arresto o la ripartenza di sistema. Ci fatta in Fedora 11 via lo scritto di /etc/event.d/plymouth-shutdown. come indicato sotto.

# 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


I messaggi del caricamento del sistema della sezione comandi sono riorientati ad uno pseudo-terminal che generato molto nella fase iniziale nel processo di caricamento del sistema. Questi messaggi sono attenuati fino a montare i filesystems completamente. Allora l'amplificatore fatto uscire a /var/log/boot. Nel testo o nel modo grafico, i messaggi del caricamento del sistema sono oscurati. Tuttavia potete vedere in qualunque momento questi messaggi durante la sequenza del caricamento del sistema colpendo la chiave di ESC.

Uno degli effetti secondari di cambiamento dei temi della Plymouth che dovete generare una nuova immagine di initrd. Questo fatto solitamente usando lo scritto di mkinird. Per quanto ci un'alternativa a fare questo. Potete modificare la vostra immagine attuale di initrd per rimuovere tutte le lime Plymouth-relative e per generare una seconda immagine di initrd che contiene appena le lime Plymouth-relative. Quando cambiate un tema, solo l'immagine della Plymouth deve essere generata. Dovete modificare grub.conf per caricare entrambe le immagini quando caric il sistemaare. Qui una stanza dal mio grub.conf che fa appena quello.

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


Qui uno shell script che generer le due immagini. basato sugli scritti attuali nel codebase della Plymouth.

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


Qui un elenco dell'immagine generata di /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


Come potete vedere contiene soltanto le lime Plymouth-relative. Non contiene l'etichetta alimentabile perch questo caricato nel usando dlopen () una volta avuto bisogno di.

Potete mettere a punto Plymouth aggiungendo Plymouth: metta a punto, Plymouth: debug= file:, o Plymouth: debug= file:path_to_log_file sulla linea di ordine del nocciolo. La lima di difetto /var/log/plymouth-debug.log se annotando ad una lima specificato ma nessuna lima specificata, cio opzione due. L'altra linea di ordine del nocciolo opzioni include console=/dev/what_ever_works per ignorare la sezione comandi di difetto (/dev/tty0) e Plymouth: splash=name_of_theme per ignorare il tema di difetto.

Ci sono inoltre un certo numero di combinazioni chiave quale CTRL-L per ridisegnare lo schermo, CTRL-V da fornire mettono a punto il modo e CTRL-T per permettere al modo di testo. Purtroppo non potevo convincere qualcuno di questi combinazioni chiave per funzionare. Tuttavia la chiave di ESC ha funzionato come preveduto e fornito l'esposizione fra dettagliato ed il tema di difetto.

Plymouth fa tutta la manipolazione del pixel nel software. Non ci accelerazione di GPU. Non fa uso MMX (estensione di per la matematica della tabella) o SSE (che effluisce estensione di SIMD) quindi l accelerazione del CPU neanche. Un alimentabile che carica molte immagini o fa molti aggiornamenti a schermo pieno sar pi lento di uno che carica alcuni immagini ed appena aggiornamenti piccole parti dello schermo. Molto di che cosa stato scritto circa Plymouth nella pressa di calcolo implica che l'obiettivo di Plymouth sia di fornire un caricamento del sistema pi veloce su esperienza ma quello non un obiettivo esplicito di disegno di Plymouth.

Scaturisca che circa tutte le informazioni utili su Plymouth che ho tempo di scrivere circa attualmente. Dopo la lettura del questo alberino, spero che abbiate una migliore comprensione di Plymouth e come si riferisce alla sequenza del caricamento del sistema. Ricordi tuttavia che questo progetto nello sviluppo attivo. e niente lanciato in pietra. Per esempio, l'inclusione di Dracut, un rimontaggio per nash, in Fedora 12 (Constantine) pu interessare come Plymouth invocata. I temi ed i collegamenti sono inoltre in piena evoluzione.

Come Plymouth realizzata in altre distribuzioni di GNU/Linux quale Ubuntu, pensi vedere un incremento dei temi grafici del caricamento del sistema dagli autori indipendenti. Osservo in avanti a quel giorno.

2 osservazioni per proiettare Plymouth

  • Simon B.

    L'idea chiave dietro Plymouth di avviare l'assistente di X molto nella fase iniziale
    il processo di caricamento del sistema e continuare a per mezzo di quell'assistente di X durante l'inizio attivit e
    sessioni di utente.
    Quel passaggio suona pi come l'OS del bicromato di potassio che Plymouth.

    Gli archivi http://lists.freedesktop.org/archives/plymouth/2009-December/thread.html dell'elenco di indirizzi inoltre accennano che anche se il brie ospita due collegamenti, non significa che egli stesso li ha sviluppati. La mia congettura selvaggia che parecchia gente era implicata.

  • Siete di destra circa quella frase! La ho modificata.

    Nope, per quanto posso dire, tutto l'accreditamento dovrebbe andare a Charlie Brej per questi due collegamenti.