Installing plymouth

Hello! I was wondering if anyone has had any luck installing plymouth for prettier boot process and graphical disk decryption prompt. I’m on a311d on pocket reform, for context, but I’m curious if this works on other SoCs too!

My first stab was installing plymouth and plymouth-themes, and adding “splash” to /etc/default/flash-kernel, (and running sudo flash-kernel). This slightly changes the disk decryption prompt, including some errors, but it still seems to be all text-mode. It looks like this:

Done.
Begin: Mounting root file system ... Begin: running: /scripts/local-top ...  meson-pcie fc000000.pcie: error: wait linkup timeout
debugfs: Directory 'ff800280.cec' with parent 'regmap' already present!
panel-mnt-pocket-reform ffd07000.dsi.0: error -ENOENT: cannot get reset-gpios 0
panel-mnt-pocket-reform ffd07000.dsi.0: error -ENOENT: cannot get dcdc-en-gpio 
panfrost ffe40000.gpu: error -ENODEV: _opp_set_regulators: no regulator (mali) found
panel-mnt-pocket-reform ffd07000.dsi.0: [mnt pocket reform display] read register 12a: 0x77
mdio_bus mdio_mux-0.0: MDIO device at address 0 is missing.

Please unlock disk reform_crypt:_

and noticeably, typing the disk password produces asterisks on the prompt, so something is definitely changing.

If I uninstall plymouth and plymouth-themes, remove the “splash” parameter, and reboot, I no longer see any errors on the disk decryption prompt and typing in my disk decryption passphrase doesn’t produce any asterisks.

I do note that those error messages still appear in dmesg so I suspect they’re happening regardless of plymouth, but somehow installing plymouth is changing the text-mode prompt but not making Plymouth itself work? Not sure, curious if others have had luck

For some reason, I remember hearing that the reason plymouth wasn’t be using was that it had issues on the Reform. I would image that this follows with the Pocket’s imx based SoC. Don’t quote me on it, but I’m pretty sure that is what was discussed in the past.

plymouth needs KMS support and KMS support is not a given: plymouth - Debian Wiki

On imx8mq classic Reform I get this when I install plymouth, plymouth-themes and add splash to my boot options:

Starting kernel ...

[    1.258182] simple-framebuffer fe540000.framebuffer: probe with driver simple-framebuffer failed with error -12
[    3.665783] mxsfb 30320000.lcd-controller: error -ENODEV: Cannot connect bridge
KASLR disabled due to lack of seed
ITS: No ITS available, not enabling LPIs
simple-framebuffer fe540000.framebuffer: simplefb: cannot reserve video memory at [mem 0xfe540000-0xfed28fff]
------------[ cut here ]------------
WARNING: CPU: 1 PID: 1 at arch/arm64/mm/ioremap.c:28 ioremap_prot+0xb0/0xf0
Modules linked in:
CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.17-mnt-reform-arm64 #1  Debian 6.12.17-1+reform20250310T174627Z
Hardware name: MNT Reform 2 (DT)
pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : ioremap_prot+0xb0/0xf0
lr : ioremap_prot+0x64/0xf0
sp : ffff800081e8baa0
x29: ffff800081e8bab0 x28: 0000000000000000 x27: 0000000000000000
x26: 00000000fe540000 x25: ffff0000c08e9000 x24: ffff80008119cb78
x23: ffff0000c08e9378 x22: ffff0000c0bb9410 x21: ffff0000c0aebe80
x20: 00000000007e9000 x19: 00000000fe540000 x18: 0000000000000008
x17: 7672657365722074 x16: 6f6e6e6163203a62 x15: 66656c706d697320
x14: 3a72656666756265 x13: 5d66666638326465 x12: ffff800081a42cc0
x11: ffff8000819ead18 x10: ffff800081a42d18 x9 : ffff8000800367b8
x8 : 0000000100000000 x7 : 0000000000000018 x6 : ffff800081dbd550
x5 : ffff800081dbd550 x4 : 0000000000000001 x3 : 0000000000000001
x2 : 0000000140000000 x1 : 0000000000000000 x0 : 0000000000000001
Call trace:
 ioremap_prot+0xb0/0xf0
 simplefb_probe+0x23c/0x9f8
 platform_probe+0x70/0xe8
 really_probe+0xc8/0x3a0
 __driver_probe_device+0x84/0x160
 driver_probe_device+0x44/0x130
 __driver_attach+0xcc/0x208
 bus_for_each_dev+0x84/0x100
 driver_attach+0x2c/0x40
 bus_add_driver+0x118/0x250
 driver_register+0x70/0x138
 __platform_driver_register+0x2c/0x40
 simplefb_driver_init+0x24/0x38
 do_one_initcall+0x60/0x298
 kernel_init_freeable+0x280/0x2f0
 kernel_init+0x28/0x150
 ret_from_fork+0x10/0x20
---[ end trace 0000000000000000 ]---
simple-framebuffer fe540000.framebuffer: probe with driver simple-framebuffer failed with error -12
imx-bus-devfreq 32700000.interconnect: Missing property fsl,ddrc, skip scaling DRAM
gpio gpiochip0: Static allocation of GPIO base is deprecated, use dynamic allocation.
gpio gpiochip1: Static allocation of GPIO base is deprecated, use dynamic allocation.
gpio gpiochip2: Static allocation of GPIO base is deprecated, use dynamic allocation.
gpio gpiochip3: Static allocation of GPIO base is deprecated, use dynamic allocation.
gpio gpiochip4: Static allocation of GPIO base is deprecated, use dynamic allocation.
mxsfb 30320000.lcd-controller: error -ENODEV: Cannot connect bridge
mmc1: host does not support reading read-only switch, assuming write-enable
pca954x 0-0070: supply vdd not found, using dummy regulator
nvme nvme0: missing or invalid SUBNQN field.
meson_vdec: module is from the staging directory, the quality is unknown, you have been warned.
device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate IMA measurements will not be recorded in the IMA log.

Thanks for trying it out, interesting that there’s an actual stacktrace on at least one cpu module

On a311d, the kernel seems to switch to full resolution during boot in a way that I assumed was before hitting userspace, which I thought was kms, but now I’m realizing I’m not sure? I wish it were easier to look up device and driver specific feature support, curious if anyone has any general advice on this.