Åh, jag har gjort det, men det var en fullständig och fullständig PITA.
Först, de vanliga plymouth-filerna, mytheme.plymouth:
[Plymouth Theme ] Namn = Mitt temaBeskrivning = Raspberry Pi themeModuleName = skript [skript] ImageDir = / usr / dela / plymouth / teman / mythemeScriptFile = / usr / dela / plymouth / teman / mytheme / mytheme.script
Och sedan mytheme.script
screen_width = Window.GetWidth (); screen_height = Window.GetHeight (); theme_image = Image ("mytheme.png"); resized_wallpaper_image = theme_image.Scale ( screen_width, screen_height); sprite = Sprite (resized_wallpaper_image); sprite.SetZ (-100); message_sprite = Sprite (); message_sprite.SetPosition (screen_width * 0.1, screen_height * 0.8, 10000); fun message_callback (text) {my_image = Bild .Text (text, 1, 1, 1); message_sprite.SetImage (my_image);} Plymouth.SetUpdateStatusFunction (message_callback);
Dessa går sedan på relevanta platser i / usr / share / plymouth / themes / mytheme
tillsammans med mytheme.png.
Sedan aktiverar du mytheme med kommandot plymouth-set-default-theme
.
Nu lite knep. plymouth kan bara läsa de första 1024 bytes av kärnan cmdline ... men Rpi-laddaren FÖRHÅLLER saker till / proc / cmdline, så du kanske TROR att du gjorde det rätt, men om du cat / proc / cmdline kod> senare kan du upptäcka att dina inställningar faktiskt faller utanför 1024 bytegränsen. Så du måste lägga till det tysta stänk och plymouth ignorera inställningarna mycket tidigt i cmdline.txt.
Jag har min cmdline.txt inställd på detta (men vi använder adafruit-pekskärmen, så ymmv):
dwc_otg.lpm_enable = 0 konsol = tty3 root = / dev / mmcblk0p2 rootfstype = ext4 hiss = deadline fsck.repair = ja rootwait tyst stänk plymouth.ignore-seriell-konsoler fbcon = karta: 10 fbcon = typsnitt: VGA8x8
Nu måste du också använda en initramfs, eftersom plasmaskärmen är aktiverad från de tidiga startskripten. Detta är vanligtvis lika enkelt som att köra update-initramfs
och specificera initramfs initrd.img-4.1.9-v7
(eller liknande) i /boot/config.txt.
I mitt fall var jag också tvungen att uppdatera plymouth eftersom versionen som levereras med Jessie skulle fel i frambufferdrivrutinen och som ett resultat kunde jag inte få den att fungera på adafruit-pekskärmen.
Därefter började det fungera för mig. Men jag ville också ha en "säker att stänga av" skärmen i slutet, eftersom Rpi inte har hårdvara för att stänga av sig själv. Så jag lade till ett systemd-skript för det:
[Enhet] Beskrivning = Be Plymouth att visa ett meddelande som är säkert att stänga avDefaultDependencies = noAfter = umount.targetBefore = shutdown.target [Service] ExecStart = - / bin / plymouth uppdatering --status "SAFE TO POWER DOWN" Typ = oneshot [Install] WantedBy = shutdown.target
Nu har det gått minst 6 månader sedan jag gjorde detta, men jag hoppas att det är användbart.
Redigera: Lägg till några tips.
Du kan felsöka Plymouth-teman så. Starta plymouthd i felsökningsläge, t.ex.:
plymouthd --debug --debug-file = / tmp / plymouth-debug-out
Och sedan kan testa ditt tema med:
plymouth --show-splashplymouth --quit
Det var under detta skede som jag fick reda på att jag hade en segfault .
Du kan också stoppa din startprocess och släppa in i ett skal för att testa detta i en starttidsmiljö. Redigera /boot/cmdline.txt och lägg till break = top
, eller se här för mer information om det.
Det här är alla knep jag använde och Jag kom äntligen dit. Men som sagt var det en PITA.