From e1e7cdfdca82db358bc6ded1353dd95757e76f0b Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 8 Aug 2026 17:09:00 +0200 Subject: docs: revise Plymouth notes for SimpleDRM and the 26.x package The research doc concluded that getting xe into the initrd was the gate for the whole splash effort. That holds for SBo 22.02.122, which has no SimpleDRM support at all, but upstream added it in 24.004.60 and uses it by default on UEFI to draw on the EFI framebuffer. On this machine that removes the prerequisite entirely, along with the firmware bloat and the per-kernel-update maintenance it implied. Also record that stage 1 is done and verified after reboot: the printk wall is gone, the rc script wall is not, which no kernel flag can fix. Add a section answering whether the boot text stays reachable behind a splash (Esc toggles it, and plymouth does its own console redirection). Replace the unreadable LQ thread with the Arch wiki as the reference, and note the repo README that plymouth is -current only. Co-Authored-By: Claude Opus 5 --- .extras/docs/plymouth-graphical-boot.md | 87 ++++++++++++++++++++++++++++++--- 1 file changed, 80 insertions(+), 7 deletions(-) (limited to '.extras/docs') 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: - 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. +- 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: - Plymouth upstream: @@ -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. -- cgit v1.2.3