diff options
| -rw-r--r-- | .extras/docs/plymouth-graphical-boot.md | 87 | ||||
| -rw-r--r-- | README.md | 11 |
2 files changed, 91 insertions, 7 deletions
diff --git a/.extras/docs/plymouth-graphical-boot.md b/.extras/docs/plymouth-graphical-boot.md index 04c8863..c47b121 100644 --- a/.extras/docs/plymouth-graphical-boot.md +++ b/.extras/docs/plymouth-graphical-boot.md @@ -30,6 +30,25 @@ Mint, Debian, Fedora, all the same stack, differing only in theme. Neither package touches the initrd or the init scripts. **That wiring is the entire job** and it is all manual. +### Update 2026-08-08: this repo now ships plymouth 26.134.222 + +SBo's 22.02.122 is four years behind upstream and **predates SimpleDRM**, which +changes the plan substantially (see below). A local package was written at +`plymouth/` in this repo, built and lint-clean on -current. Findings: + +- Upstream switched **autotools to meson**, so the SBo script could not be + version-bumped, it had to be rewritten from the meson template. +- `systemd-integration` now defaults to **true** in meson and must be turned + off explicitly, otherwise the build wants `systemd.pc` and + `systemd-tty-ask-password-agent`. +- All build deps are satisfied by stock -current, so `REQUIRES=""`. +- **It does not build on 15.0**: `PANGO_ATTR_FONT_SCALE` needs pango >= 1.50, + and 15.0 ships 1.48.11. Since 15.0 is the SBo baseline, this is not + submittable to SBo as-is. +- The SBo theme package ships its own `/etc/plymouth/plymouthd.conf` setting + `Theme=slackware-logo`, the same path the main package installs. Installing + the theme after plymouth overwrites that file. + --- ## How the other distributions do it @@ -131,6 +150,19 @@ than no splash at all. So adding `xe` to the initrd is a **prerequisite**, not an optimisation. +**Superseded on 2026-08-08 for plymouth 26.x.** The above holds for SBo's +22.02.122, which has no SimpleDRM support (verified: zero matches for +`simpledrm` anywhere in that tarball). Upstream added SimpleDRM in **24.004.60**, +and on UEFI systems plymouth 26.x uses it **by default** to draw on the EFI +framebuffer, so the GPU driver does not need to be in the initrd at all. This +machine is UEFI, so with the 26.134.222 package in this repo, **step 2.1 below +is no longer a prerequisite**, which also removes the firmware-bloat problem and +the per-kernel-update `xe` maintenance. + +Two caveats: with SimpleDRM secondary monitors stay dark during boot (irrelevant +here, root is plain LVM with no LUKS prompt), and `plymouth.use-simpledrm=0` +disables it if it misbehaves. + --- ## Plan @@ -274,6 +306,21 @@ rather than flashing a bare console. For a console-only boot, call --- +## Do the boot messages stay reachable? + +Yes. This is what Debian and Mint do, and it is not a systemd feature. +Pressing **Esc** during boot switches from the splash to the boot text. +Plymouth also does its own console redirection and logs messages to +`/var/log/boot.log`, independent of any init system, which is why +`plymouth.nolog` is documented as disabling "logging and console redirection". + +Slackware caveat: `rc.S` and `rc.M` are not plymouth-aware the way Debian's +systemd units are, so there are no `plymouth message` progress updates tied to +boot stages. Whether the rc output ends up behind the splash depends on +plymouthd surviving `switch_root` and holding the console, see below. Stage 1 +alone (`quiet loglevel=3`) does **not** silence the rc scripts, it only +suppresses kernel printk, which is why the wall is still there after stage 1. + ## Known problem areas **`switch_root` continuity.** This is the most likely thing to consume time. @@ -323,10 +370,14 @@ choose from, which is what makes the fallback entry usable. - Both SBo READMEs point at an LQ thread for Slackware-specific instructions: <https://www.linuxquestions.org/questions/slackware-14/bootsplash-4175742241/> - It was not readable at the time of writing (LQ returns HTTP 403 to - automated fetches), so **it has not been incorporated here**. Read it - manually before starting stage 2, it may well cover the `switch_root` and - initrd-population details that are the hard part. + It is still not readable (LQ returns HTTP 403 to automated fetches, a + browser User-Agent does not help), so **it has not been incorporated here**. + It is also an old thread, so its value is now doubtful. +- <https://wiki.archlinux.org/title/Plymouth> is the better reference and was + read on 2026-08-08. It is the source for the SimpleDRM behaviour, the Esc + toggle, and the `plymouth.nolog` / `plymouth.debug` / `plymouth.enable=0` + flags. Note it 403s to plain fetches too (Anubis); a browser User-Agent + works, or `?action=raw` for the wikitext. - Theme upstream: <https://github.com/murkl/plymouth-theme-arch-os> - Plymouth upstream: <https://www.freedesktop.org/wiki/Software/Plymouth/> @@ -335,6 +386,28 @@ choose from, which is what makes the fallback entry usable. ## Status -Nothing installed, nothing modified. Stage 1 is a two-line change whenever -wanted. Stage 2 is unstarted, and step 2.1 (`xe` in the initrd) is the gate for -everything after it. +Updated 2026-08-08. + +**Stage 1 is done.** `quiet loglevel=3` is on the kernel command line and +`grub-mkconfig` has been run. Verified after reboot: the kernel printk wall is +gone, but **the Slackware rc script output is not**, which is expected, no +kernel flag suppresses it. That is what motivates stage 2. + +**A plymouth 26.134.222 package exists** at `plymouth/` in this repo. It builds +and passes `sbopkglint` on -current, and fails on 15.0 (pango too old). It is +not installed on this machine yet. + +**Stage 2 is otherwise unstarted**, but it is now cheaper than described below: +step 2.1 (`xe` in the initrd) is **no longer a prerequisite** thanks to +SimpleDRM, so the remaining work is initrd population (2.3), starting the +daemon (2.4), the cmdline (2.5), and the quit hook (2.6). + +Next concrete step, and the cheapest way to derisk everything: install the +package and preview the theme from a console, no reboot and no initrd work +needed: + +``` +plymouthd; plymouth --show-splash; sleep 5; plymouth --quit +``` + +That confirms the renderer works on this GPU before any boot-path change. @@ -63,12 +63,23 @@ Each package lives in its own top-level subfolder: | megasync-bin | ✅ | ✅ | ❌ | 6.5.0.2 | 6.5.0.2 | | claude-desktop-bin | ✅ | ✅ | ❌ | 1.24012.9 | 1.24012.9 | | hyprsunset-qt | ✅ | not tested | ❌ | 0.1.1 | 0.1.1 | +| plymouth | ✅ | ❌ | ✅ [plymouth](https://slackbuilds.org/repository/15.0/system/plymouth/) | 26.134.222 | 26.134.222 | > **Note on `kvantum-qt5`:** the official SBo build lags several releases behind > upstream (1.1.2 vs 1.1.8), so this repo ships an updated build. It provides the > Qt5 style plugin only (`libkvantum.so`); the kvantummanager GUI and bundled > themes come from the `kvantum-qt6` package, which upstream now builds Qt6-only. +> **Note on `plymouth`:** **-current only, it does not build on 15.0.** Upstream +> 26.134.222 uses `PANGO_ATTR_FONT_SCALE`, which needs pango >= 1.50; 15.0 ships +> 1.48.11, so `label-pango` fails to compile. Every other dependency resolves on +> 15.0, and meson there is new enough. Since 15.0 is the SBo baseline, this build +> is not submittable to SBo as-is and is not intended for submission for now. The +> official SBo build is 22.02.122, four years behind upstream and predating +> SimpleDRM support; this repo ships the current release, which also switched +> from autotools to meson. Note that installing the package alone does not give +> a splash screen, the initrd wiring is manual, see the package `README`. + --- ## Usage |
