Forum: Mikrocontroller und Digitale Elektronik Raspbian Stretch und Plymouth


von Markus W. (kornbanane)


Lesenswert?

Hallo zusammen,

ich habe ewig im internet gesucht und komme  nicht weiter. Ich hoffe auf 
eure Hilfe. Ich habe einen Raspberry Pi3 mit Raspbian Stretch am laufen. 
Mit dem raspbian package plymouth habe ich einen eigenen Bootscreen am 
laufen.
Dieser besteht einfach nur aus einem Bild, welches angezeifgt wird.
Dazu verwende ich das mitgelieferte plymouth theme "pix" und habe nur 
das vorgegebene Bild durch mein eigenes ersetzt.

Funktioniert alles so weit. Ich habe jedoch das Problem, das der 
Bootscreen (also das Bild) erst sehr spät und auch nur kurz angezeigt 
wird.
Ich habe vorher alle sonstigen Meldungen während des Bootens 
deaktiviert, sodass ich bis auf den Bootscreen nur ein schwarzes Bild 
habe.
Das Booten verhält sich derzeit wie folgt:

1. Nach dem einschalten ca. 7 Sekunden schwarzer Bildschirm
2. Dann a. 0,5 Sekunden der Bootscreen (Bild)
3. Dann noch ca. 5 Sekunden schwarzer Bildschirm, bis die GUI gestartet 
wird.

Ich suche jetzt nach einer Möglichkeit das Bootverhalten dahingehend zu 
ändern, dass während es gesamten Bootprozesses möglichst lange mein 
Bootscreen angezeigt wird. Ideal wäre also:

1. Einschalten
2. Bootscreen
3. GUI wird geladen

Ich bin mir sicher, dass man dies irgendwo im plymouth configurieren 
kann, finde jedoch nichts.

Folgendes habe ich bisher probiert:

1. Auf 
https://wiki.ubuntuusers.de/Plymouth/#Anzeige-zu-kurz-oder-zu-spaet ist 
eine Lösung des Problems beschrieben. Jedoch hat dies leider keinen 
Effekt.

2. Unter /usr/share/plymouth/plymouth.defaults gibt es die EInstellung 
ShowDelay=0. Wenn ich dieser auf z.B. 10 erhöhe, dann erscheint garkein 
Bootscreen mehr.

3. Unter /usr/share/plymouth/pix/pix.script (ich verwende das pix theme)
findet man das Script zu diesem Theme. Hier kann man sicherlich eine Art 
Wartezeit einfügen. Ich habe es hier schon mit einer For-Schleife 
versucht, um eine Pause zu erzwingen. Jedoch erschien auch hier der 
Bootscreen nicht mehr. Außerdem würde das nichts daran ändern, dass der 
Bootscreen erst so spät erscheint.


Es muss doch irgendeine Möglicheit geben?

von Mick (Gast)


Lesenswert?

Plymouth wird erst sehr spät im Boot Prozess gestartet. Ich vermute, du 
verwendest XOrg für dein GUI. Die grafische Oberfläche lädt während 
einem schwarzen Screen.

Evtl. hilft dir das hier weiter: 
https://yingtongli.me/blog/2016/12/21/splash.html

von Markus W. (kornbanane)


Lesenswert?

Danke für die Antwort. Ja ich verwendde Xorg.
1
X -version

Liefert mir: X.Org X Server 1.19.2
X Protokoll VErsion 11, Revision 0


Den Bootscreen über fbi nach deinem Link hatte ich vorher auch schon 
versucht. Das ganze Funktioniert auch, jedoch mit dem gleichen Verhalten 
wie jetzt unter plymouth. Es muss doch irgendwie möglich sein. Ok ich 
verstehe, das am Anfang der schwarze Bildschirm erscheint, weil plymouth 
erst spät gestartet wird, aber:

1. kann man plymouth nicht vrher im boot-prozess starten?
2. Dann müsste ich doch wenigstens den Bootscreen länger erscheinen 
lassen könne und verhindern, dass nach Anzeigen des Bootscreens schon 
wieder für einige Sekunden ein schwarzes Bild erscheint?

von Mick (Gast)


Lesenswert?


von Markus W. (kornbanane)


Lesenswert?

Da bin ich auch schon durch, leider keine Änderung.

Zum Problem, dass nach dem Anzeigen des Bootscreens der Bildschirm 
weitere 5 Sekunden schwarz bleibt habe ich gelesen, das der 
plymouth-quit service durch systemcmd zu einem bestimmtem Zeitpunkt 
während des Bootens aufgerufen wird. Dieser Aufruf muss später erfolgen. 
Jemand eine Ahnung wie ich das ändern kann?

von Mick (Gast)


Lesenswert?

Ich hab's mit dieser Anleitung kurz getestet: 
https://github.com/HerbFargus/Raspberry-Pi-Scripts/wiki/Plymouth

Plymouth wird auf meinem Gerät schon sehr früh angezeigt und bleibt auch 
relativ lange sichtbar...

von Markus W. (kornbanane)


Lesenswert?

Im Prinzip habe ich es genauso gemacht.
Welches "Gerät" verwendest du?

von Mick (Gast)


Lesenswert?

Raspberry Pi Zero

von foobar (Gast)


Lesenswert?

Du könntest was anderes versuchen.
Auf Plymouth verzichten und dein Bild als Kernel Logo verwenden. Dann 
wirds um einiges früher angezeigt.

von Markus W. (kornbanane)


Lesenswert?

Ich habe nun wieder sehr viel herumprobiert, bin aber leider nicht 
weitergekommen :(

Mit dem Boot-Logo als Kernel Image hört sich so an als müsste ich mir 
dann meinen eigenen Kernel compilieren? Das geht leider über mein Wissen 
hinaus.

Ich habe mich erst mal von plymouth verabschiedet. Noch mal zur 
Erinnerung: Generell funktioniert der Bootscreen ja, jedoch wird dieser 
zu spät beim Booten und dann auch zu kurz angezeigt. Da ich alle anderen 
Meldungen beim Booten ausblende, erhalte ich somit ein paar Sekunden 
einschwarzes Bild, dann für noch icht einmal eine Sekunde den Bootscreen 
und dann wieder für einige Sekunden ein schwarzes Bild, bevor dann die 
Oberfläche geladen ist.

Ich habe jetzt gelernt, dass der Dienst Systemd für das Booten zuständig 
ist. Dieser läd die benötigten Service beim Booten, somit auch meinen 
Bootscreen. Diesen habe ich wieder über FBI relaisiert, siehe: 
https://yingtongli.me/blog/2016/12/21/splash.html

Nach dem Systemstart sehe ich über
1
 systemctl status splashscreen
 das mein Service für den Bootscreen gestartet wurde und auch übrigens 
immer noch läuft. Ich habe auch schon versucht meinen Service 
"splashscreen " inerhalb anderer System-Targets auszuführen. 
Beispielhaft habe ich den Code in meinem Splashscreen von
1
 WantedBy=sysinit.target
 zu
1
 WantedBy=multi-user.target
 geändert.

Es funktioniert zwar alles, aber ich habe nach wie vor die gleichen 
Probleme mit dem schwarzen Bildschirm vor und nach dem Bootscreen.

Ürigens gibt es unter 
https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units 
eine super Einführung in Systemd.

Die Frage ist jetzt, wieso wird der Bootscreen wider so früh 
ausgelbendet, obwohl doch mein Service "splashscreen" immer noch aktiv 
ist. Wenn ich dies verhindern könnte, dann hätte ich wenigstens eine 
längere Anzeige des Bootscreens.

von Frank X. (matrixx200x)


Lesenswert?

Hast du eine Lösung gefunden.
Ich will das selbe haben ein splashscreen  der den ganzen boot Prozess 
überdeckt und erst endet wenn das eigentlichen Prog startet.
und das alles noch über ein SPI Display.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.