Viele Websites erklären, wie man mit SysV init einen Begrüßungsbildschirm auf dem Pi erstellt, aber ich konnte keine Informationen darüber finden, wie man es mit systemd auf Jessie macht. Ich habe versucht, das Init-Skript nur in einen Systemd-Dienst zu "konvertieren", aber es macht nichts.
Hat es jemand geschafft, dies oder hilfreiche Ratschläge zu tun?
boot
raspbian-jessie
systemd
Kirby
quelle
quelle
Antworten:
Oh, ich habe es geschafft, aber es war eine vollständige und völlige PITA.
Erstens die üblichen Plymouth-Dateien, mytheme.plymouth:
Und dann mytheme.script
Diese gehen dann
/usr/share/plymouth/themes/mytheme
zusammen mit mytheme.png an die entsprechenden Stellen .Dann aktivieren Sie Mythos mit dem
plymouth-set-default-theme
Befehl.Nun ein Trick. plymouth kann nur die ersten 1024 Bytes der Kernel-Cmdline lesen ... aber der Rpi-Loader VORHANDEN Dinge an / proc / cmdline, sodass Sie vielleicht DENKEN, dass Sie es richtig gemacht haben, aber wenn Sie es
cat /proc/cmdline
später tun , werden Sie möglicherweise feststellen, dass Ihre Einstellungen tatsächlich vorhanden sind fallen von der 1024-Byte-Grenze. Sie müssen also die Einstellungen für leises Spritzen und Plymouth-Ignorieren sehr früh in cmdline.txt hinzufügen.Ich habe meine cmdline.txt darauf eingestellt (aber wir verwenden den Adafruit-Touchscreen, also ymmv):
Jetzt müssen Sie auch ein initramfs verwenden, da der Begrüßungsbildschirm über die frühen Startskripte aktiviert ist. Dies ist normalerweise so einfach wie das Ausführen
update-initramfs
und Angebeninitramfs initrd.img-4.1.9-v7
(oder ähnliches) in /boot/config.txt.In meinem Fall musste ich auch Plymouth aktualisieren, da die mit Jessie gelieferte Version im Framebuffer-Treiber fehlerhaft war und ich sie daher nicht auf dem Adafruit-Touchscreen zum Laufen bringen konnte.
Danach fing es an, für mich zu arbeiten. Aber ich wollte am Ende auch einen Bildschirm zum sicheren Ausschalten, da das Rpi keine Hardware hat, um sich selbst auszuschalten. Also habe ich ein systemd-Skript dafür hinzugefügt:
Jetzt sind mindestens 6 Monate vergangen, seit ich das getan habe, aber ich hoffe, das ist nützlich.
Bearbeiten: Fügen Sie weitere Hinweise hinzu.
Sie können Plymouth-Themen wie folgt debuggen. Starten Sie plymouthd im Debug-Modus, z.
Und dann können Sie Ihr Thema testen mit:
In dieser Phase stellte ich fest, dass ich einen Segfault hatte.
Sie können den Startvorgang auch anhalten und in eine Shell einfügen, um dies in einer Startzeitumgebung zu testen. Bearbeiten Sie /boot/cmdline.txt und fügen Sie hinzu
break=top
, oder lesen Sie hier, um weitere Informationen dazu zu erhalten.Das sind alles Tricks, die ich benutzt habe und die ich endlich erreicht habe. Aber wie gesagt, es war eine PITA.
quelle
/proc/cmdline|wc -c
sagt, dass es nur 508 Bytes ist.Sie können asplashscreen verwenden. Benutzerdefinierter Startbildschirm
quelle
Die Antwort von @izak funktioniert, aber Sie werden wahrscheinlich immer noch auf das Problem des Plymouth-Segfaulting stoßen, wenn Sie das Standard-Jessie-Paket verwenden. Um den Segfault zu beheben, müssen Sie Plymouth aus dem Test-Repository installieren.
Befolgen Sie die Anweisungen in der AptPreferences- Dokumentation und führen Sie die folgenden Schritte aus , um Ihr Plymouth-Paket zu aktualisieren:
apt install plymouth/testing
Das hat alles für mich repariert!
(Ich konnte dies nicht als Kommentar zu @izak seinem Beitrag posten)
quelle