Plymouth (Italiano)
Plymouth è un progetto nato da Fedora e ora incluso tra le risorse ufficiali di freedesktop.org che fornisce un processo di avvio grafico fluido e senza salti visivi. Si affida al kernel mode setting (KMS) per impostare la risoluzione nativa del display il prima possibile e fornisce, a seguire, una schermata iniziale accattivante, lo "splash screen", che accompagna l'utente fino al login manager.
Preparazione
Plymouth utilizza principalmente KMS per visualizzare la grafica, ma sui sistemi UEFI può utilizzare il framebuffer EFI.
Se non si dispone né di KMS né di un framebuffer, Plymouth ripiegherà sulla modalità testuale.
Installazione
Plymouth può essere installato con il pacchetto plymouth.
Per impostazione predefinita, Plymouth registra i messaggi di avvio in /var/log/boot.log e non mostra lo splash screen grafico.
- Se si desidera vedere lo splash screen, aggiungere
splashai parametri del kernel. - Se si desidera un avvio silenzioso, aggiungere anche
quiet. - Se si desidera disabilitare il logging, aggiungere
plymouth.boot-log=/dev/null. In alternativa, aggiungereplymouth.nologche disabilita anche il reindirizzamento della console.
Per avviare Plymouth nelle prime fasi del boot, è necessario configurare il generatore di initramfs per creare immagini che includano Plymouth.
mkinitcpio
Aggiungere plymouth all'array HOOKS in mkinitcpio.conf.
/etc/mkinitcpio.conf
HOOKS=(... plymouth ...)
Se si utilizza l'hook systemd, questo deve trovarsi prima di plymouth.
Inoltre assicurarsi di posizionare plymouth prima dell'hook encrypt o sd-encrypt se il sistema è cifrato con dm-crypt.
Infine rigenerare l'initramfs.
dracut
Dopo l'installazione di Plymouth, dracut lo rileverà automaticamente e lo aggiungerà alle immagini initramfs. Se il rilevamento automatico fallisce, è possibile forzare dracut a includere Plymouth aggiungendo la seguente riga alla configurazione di dracut:
/etc/dracut.conf.d/myflags.conf
add_dracutmodules+=" plymouth "
Configurazione
Plymouth può essere configurato nel file /etc/plymouth/plymouthd.conf. È possibile consultare i valori predefiniti in /usr/share/plymouth/plymouthd.defaults.
Cambiare il tema
Plymouth include una selezione di temi:
- BGRT: Una variazione di Spinner che mantiene il logo OEM se disponibile (BGRT sta per Boot Graphics Resource Table)
- Fade-in: "Tema semplice con dissolvenza in entrata e in uscita con stelle scintillanti"
- Glow: "Tema aziendale con indicatore di progresso a torta seguito da un logo luminoso emergente"
- Script: "Esempio di plugin script" (Nonostante la descrizione, sembra essere un bel tema con il logo di Arch)
- Solar: "Tema spaziale con una stella blu dai bagliori violenti"
- Spinner: "Tema semplice con un indicatore di caricamento rotante"
- Spinfinity: "Tema semplice che mostra un segno dell'infinito rotante al centro dello schermo"
- Tribar: "Tema in modalità testo con barra di avanzamento tricolore"
- Text: "Tema in modalità testo con barra di avanzamento tricolore"
- Details: "Tema di ripiego (fallback) prolisso"
Arch imposta come tema predefinito bgrt [1]. Ciò può essere confermato eseguendo:
$ plymouth-set-default-theme
Il tema può essere cambiato modificando il file di configurazione:
/etc/plymouth/plymouthd.conf
[Daemon] Theme=tema
oppure eseguendo:
# plymouth-set-default-theme -R tema
Ogni volta che si cambia tema, l'initramfs deve essere ricostruito. L'opzione -R assicura che venga ricostruito (altrimenti rigenerare l'initramfs manualmente).
Installare nuovi temi
È possibile installare altri temi da AUR: [2]. In alternativa plymouth-kcm fornisce l'integrazione nelle impostazioni di KDE Plasma e offre temi non disponibili su AUR.
Tutti i temi attualmente installati possono essere elencati usando questo comando:
$ plymouth-set-default-theme -l
oppure:
$ ls /usr/share/plymouth/themes
bgrt details fade-in glow script solar spinfinity spinner text tribar
Ritardare la visualizzazione
Plymouth ha un'opzione per ritardare lo splash screen:
/etc/plymouth/plymouthd.conf
[Daemon] ShowDelay=5
Sui sistemi che si avviano rapidamente si potrebbe vedere solo una breve apparizione del tema prima che il DM o il prompt di login siano pronti. È possibile impostare ShowDelay su un intervallo (in secondi) superiore al tempo di avvio per evitare questo problema e mostrare solo una schermata vuota. Il valore predefinito è 0 secondi, quindi non dovrebbe essere necessario cambiarlo per vedere lo splash prima durante l'avvio.
HiDPI
Modificare il file di configurazione:
/etc/plymouth/plymouthd.conf
[Daemon] DeviceScale=un-numero-intero-di-scala
Trucchi e consigli
Mostrare i messaggi di avvio
Durante l'avvio è possibile passare ai messaggi di boot premendo il tasto Esc.
Transizione fluida
GDM supporta la transizione fluida in modo nativo.
Anteprima dei temi
Il tema attualmente configurato può essere visualizzato in anteprima eseguendo questo comando nella propria getty [3]:
# plymouthd; plymouth --show-splash; sleep 5; plymouth --quit
sleep permette di restituire il controllo all'utente dopo il ritardo definito, per cui non va rimosso.Cambiare l'immagine di sfondo
È possibile aggiungere un'immagine di sfondo per i temi basati su "two-step" (come spinner e bgrt). Basta inserire l'immagine desiderata in /usr/share/plymouth/themes/spinner/background-tile.png. Non dimenticare di rigenerare l'initramfs una volta cambiato il tema.
Immagine BGRT mancante
Nel caso in cui si utilizzi il tema BGRT ma l'UEFI non fornisca un logo del produttore, è possibile inserire un'immagine di ripiego in /usr/share/plymouth/themes/spinner/bgrt-fallback.png per mostrarla al suo posto.
In alternativa, impostare quanto segue per mantenere lo sfondo del firmware:
/etc/plymouth/plymouthd.conf
UseFirmwareBackground=true
Rallentare l'avvio per mostrare l'animazione completa
Sui sistemi con un tempo di avvio molto rapido, potrebbe essere necessario aggiungere un ritardo a plymouth-quit.service con un drop-in snippet contenente ExecStartPre=/usr/bin/sleep 5 se si desidera mostrare l'intera animazione. Vedere questo post su reddit.
In alternativa è possibile utilizzare un nuovo servizio systemd che si avvia contemporaneamente a plymouth e attende l'intera durata necessaria per l'animazione. Questo metodo assicurerà che le incongruenze nel tempo di avvio non vengano percepite, poiché non è tempo aggiunto dopo l'animazione ma un ritardo che scorre durante l'animazione.
/etc/systemd/system/plymouth-wait-for-animation.service
[Unit] Description=Waits for Plymouth animation to finish Before=plymouth-quit.service display-manager.service [Service] Type=oneshot ExecStart=/usr/bin/sleep durata_della_tua_animazione [Install] WantedBy=plymouth-start.service
Quindi abilitare il servizio.
Utilizzo di SimpleDRM
Sui dispositivi che utilizzano UEFI, Plymouth utilizza per impostazione predefinita il driver SimpleDRM per visualizzare lo splash di avvio sul framebuffer UEFI. Ciò consente allo splash di apparire su macchine più veloci dove il caricamento del driver della GPU richiede troppo tempo (ad esempio, sistemi con GPU AMD), e rimuove anche qualsiasi passaggio brusco tra la schermata iniziale della scheda madre e Plymouth.
Sui vecchi sistemi UEFI dove efifb non si avvia in modalità nativa, ma piuttosto a 640×32, 800×600 o 1024×768, Plymouth non utilizzerà SimpleDRM per impostazione predefinita.
Per disabilitare SimpleDRM, aggiungere plymouth.use-simpledrm=0 ai propri parametri del kernel. Vedere la segnalazione Plymouth 264 per ulteriori informazioni su questa opzione.
Risoluzione dei problemi
Disabilitare con i parametri del kernel
Se si riscontrano problemi durante l'avvio, è possibile disabilitare temporaneamente Plymouth con i seguenti parametri del kernel:
plymouth.enable=0 disablehooks=plymouth
Debugging
Per scrivere l'output di debug in /var/log/plymouth-debug.log, aggiungere il seguente parametro del kernel:
plymouth.debug
Il prompt della password non si aggiorna
Quando si utilizzano gli hook systemd invece di quelli udev in Mkinitcpio, il prompt della password potrebbe non aggiornarsi sui temi che lo gestiscono tramite lo scripting di Plymouth.
Si può provare a passare alla versione di sviluppo plymouth-gitAUR o utilizzare i sostituti da Mkinitcpio#Common hooks.
Il display non è centrato
Alcuni temi potrebbero avere difficoltà a centrare il display quando è abilitato più di un monitor durante l'avvio.
È possibile utilizzare Kernel mode setting#Forcing modes per disabilitare monitor specifici.