Skip to content

Fix #69: install Plymouth ourselves instead of relying on Armbian's flag - #70

Open
eliasbakken wants to merge 1 commit into
mainfrom
fix/69-plymouth-splash-screen
Open

Fix #69: install Plymouth ourselves instead of relying on Armbian's flag#70
eliasbakken wants to merge 1 commit into
mainfrom
fix/69-plymouth-splash-screen

Conversation

@eliasbakken

Copy link
Copy Markdown
Contributor

Problem

Fixes #69. No splash screen during boot on Recore.

Root cause

recore.csc's extension_finish_config__enable_plymouth() hook (which set PLYMOUTH=yes) was commented out and never actually ran. Not a BUILD_MINIMAL conflict as first suspected while investigating - just dead code that silently did nothing. Plymouth was never installed at all.

Fix

Rather than re-enable Armbian's own PLYMOUTH/armbian-plymouth-theme mechanism, install plymouth ourselves via a new install_components script, the same way Rebuild already installs Klipper/Moonraker/weston/etc. Avoids depending on Armbian's internal variable semantics, which is exactly what broke this in the first place and could break again on a future Armbian bump.

  • New install_components/plymouth.sh: installs plymouth + plymouth-themes, wires Recore's watermark into the spinner theme's logo (moved from the dead armbian/watermark.png path, which rebuild.sh was copying into a package we never actually build), and re-centers it (the theme's default WatermarkVerticalAlignment of .96 puts it right at the bottom of the screen).
  • Wired into fluidd/mainsail/octoprint (not barebone - no display).
  • weston.service now has After=plymouth-quit-wait.service. Found while testing: without it, weston can race Plymouth's DRM handoff and come up with a broken/black display even though the process itself reports healthy - a manual restart recovers it, but shouldn't be needed. Only affects octoprint (toggle.sh); fluidd/mainsail use KlipperScreen over X11, which was confirmed clean on the same test.

Rotation (panel_orientation) is handled separately by a matching change to Reflash's rotate-screen (new PLYMOUTH place).

Test plan

  • Validated live on real hardware before formalizing into a build script (installed plain plymouth+plymouth-themes, confirmed the splash renders on this kernel/hardware at all)
  • Built rebuild-fluidd and rebuild-octoprint locally with these changes and flashed both to real hardware
  • Fluidd: splash + centered watermark confirmed, KlipperScreen comes up clean afterward (no ordering fix needed there)
  • Octoprint: splash + centered watermark confirmed; without the weston.service ordering fix, hit the black-screen race; with it, Toggle comes up clean without a manual restart
  • Rotation confirmed correct end-to-end together with the matching Reflash change

🤖 Generated with Claude Code

Root cause: recore.csc's extension_finish_config__enable_plymouth()
hook (which set PLYMOUTH=yes) was commented out and never actually
ran - not a BUILD_MINIMAL conflict as first suspected, just dead code
that silently did nothing.

Rather than re-enable Armbian's own PLYMOUTH/armbian-plymouth-theme
mechanism, install plymouth ourselves via a new install_components
script, the same way Rebuild already installs Klipper/Moonraker/
weston/etc - avoids depending on Armbian's internal variable
semantics, which is exactly what broke this in the first place.

- New install_components/plymouth.sh: installs plymouth +
  plymouth-themes, wires Recore's watermark into the spinner theme's
  logo (moved from the dead armbian/watermark.png path, which
  rebuild.sh was copying into a package we never actually build), and
  re-centers it (the theme's default WatermarkVerticalAlignment of
  .96 puts it right at the bottom of the screen).
- Wired into fluidd/mainsail/octoprint (not barebone - no display).
- weston.service now has After=plymouth-quit-wait.service. Found
  while testing: without it, weston can race Plymouth's DRM handoff
  and come up with a broken/black display even though the process
  itself reports healthy - a restart recovers it, but shouldn't be
  needed. Only affects octoprint (toggle.sh); fluidd/mainsail use
  KlipperScreen over X11, which was confirmed clean on the same test.

Validated end-to-end on real hardware on both fluidd and octoprint
builds: splash shows, watermark centered, and (with the matching
Reflash rotate-screen PLYMOUTH place change) correctly rotated.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing splash screen during boot

1 participant