Fråga:
Anpassad stänkskärm på Raspbian Jessie?
Kirby
2015-11-01 23:18:56 UTC
view on stackexchange narkive permalink

Många webbplatser förklarar hur man gör en stänkskärm på Pi med SysV init, men jag kunde inte hitta någon information om hur man gör det med systemd på Jessie. Jag försökte bara "konvertera" init-skriptet till en systemd-service, men det gör ingenting.

Har någon lyckats göra detta eller några användbara råd?

har du provat att söka utan att ange Pi?
göra en sökning utan att specificera Pi, skulle det vara plymouth? https://wiki.debian.org/plymouth. Jag använder fortfarande Wheezy, så jag kan inte vara säker ...
Jag letar också efter en lösning på Jessie / RPi ... hade du tur? Plymouth-lösningarna verkar kräva plymouth-drm som inte kan installeras
Tre svar:
izak
2016-03-20 15:26:10 UTC
view on stackexchange narkive permalink

Å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.

Kan inte få det att fungera. Kanske måste jag lägga kommandona för att sätta tidigare i cmdline? EDIT: cat `/ proc / cmdline | wc -c` säger att det bara är 508 byte.
Jag lade till lite mer information om ett felsökningsskal vid start och testade temat separat.
Coolt tack. Jag tittar i morgon eller nästa vecka.
Hur lyckades du uppdatera plymouth?
Jag sammanställde från källan. Jag är en gammal hand i att skapa debianpaket, så jag laddade ner källan från packages.debian.org och använde dpkg-buildpackage för att bygga det. Detta kan göras på pi, om du vill, men jag tror att jag byggde det i en chrot-miljö. Jag kommer inte ihåg exakt, förstår du :-)
Alfredo Pons Menargues
2016-02-24 20:05:38 UTC
view on stackexchange narkive permalink

Du kan använda asplashscreen. Anpassad startskärm

Detta är sättet att göra det på gamla versioner av Debian som använde SysV Init. Jessie använder systemd, så det fungerar inte med det.
Detta sätt fungerar perfekt med systemd. Nu gör jag det i Debian Stretch och fungerar perfekt enligt instruktionerna.
Det här fungerar i Jessie. Jag upptäckte att stänkskärmen skulle visas under inkonsekventa tider - fixat genom att lägga till "sleep 5" innan du avslutar i metoden do_start ().
Bob Van de Vijver
2016-07-19 23:33:40 UTC
view on stackexchange narkive permalink

Svaret från @izak fungerar, men du kommer förmodligen fortfarande att stöta på frågan om Plymouth segfaulting när du använder standardpaketet Jessie. För att åtgärda segfault måste du installera Plymouth från testförvaret.

Följ instruktionerna från dokumentet AptPreferences och kör följande för att uppdatera ditt Plymouth-paket:

apt install plymouth / testing

Detta fixade allt för mig!

(Jag kunde inte posta detta som en kommentar på @izak hans inlägg)



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...