Da ich mich über Tage bei dem Thema durchgebissen habe, wollte ich nun auch wissen wie ich den Splash screen mit Plymouth zum Laufen bekomme. Das habe ich jetzt endlich geschafft.
Hier erkläre ich wie man seine eigene (nicht animierte) Splash-Grafik installiert.
Nochmal zur Anmerkung: Ausprobiert auf dem Raspberry 3 B mit Raspian (Stretch)
Zuerst sollte man die Updates installieren. Ohne die bekam ich - aus welchen Gründen auch immer - durch die Installation der Plymouth-Pakete Probleme mit der Paketverwaltung.
Die cmdline.txt anpassen
Folgendes am Ende
hinzufügen:
Code: Select all
logo.nologo loglevel=1 quiet splash vt.global_cursor_default=0 plymouth.ignore-serial-consoles
Nun installiert man folgende Plymouth-Pakete:
Code: Select all
apt-get install plymouth plymouth-themes pix-plym-splash
Die Themes kann man sich mit folgendem Befehl anzeigen lassen
Und mit diesem Befehl auswählen (für mein Beispiel wähle ich das Theme "pix" aus):
Jetzt sollte man es mal ausprobieren:
Funktioniert alles, ersetzt man die Splash-Grafik des pix-Themes durch seine eigene:
Code: Select all
cp ~/eigenes_bild.png /usr/share/plymouth/themes/pix/splash.png
Nun sollte man noch das Script anpassen, um diversen Text auf der Konsole zu entfernen und damit der Splash screen auch beim Runterfahren angezeigt wird:
Code: Select all
nano /usr/share/plymouth/themes/pix/pix.script
Den Inhalt durch folgenden ersetzen:
Code: Select all
screen_width = Window.GetWidth();
screen_height = Window.GetHeight();
theme_image = Image("splash.png");
image_width = theme_image.GetWidth();
image_height = theme_image.GetHeight();
scale_x = image_width / screen_width;
scale_y = image_height / screen_height;
flag = 1;
if (scale_x > 1 || scale_y > 1)
{
if (scale_x > scale_y)
{
resized_image = theme_image.Scale (screen_width, image_height / scale_x);
image_x = 0;
image_y = (screen_height - ((image_height * screen_width) / image_width)) / 2;
}
else
{
resized_image = theme_image.Scale (image_width / scale_y, screen_height);
image_x = (screen_width - ((image_width * screen_height) / image_height)) / 2;
image_y = 0;
}
}
else
{
resized_image = theme_image.Scale (image_width, image_height);
image_x = (screen_width - image_width) / 2;
image_y = (screen_height - image_height) / 2;
}
if (Plymouth.GetMode() != "shutdown")
{
sprite = Sprite (resized_image);
sprite.SetPosition (image_x, image_y, -100);
}
Übrigens: Wenn man das Bild in der an das Display angepassten Auflösung hochlädt, kann man sich die resize-Funktionen sparen und das Script reduziert sich auf wenige Zeilen:
Code: Select all
theme_image = Image("splash.png");
image_width = theme_image.GetWidth();
image_height = theme_image.GetHeight();
sprite = Sprite (theme_image.Scale (image_width, image_height));
Neu starten
Jetzt sollte der Splash screen beim Starten und Runterfahren erscheinen.
Zumindest bei mir funktioniert es
