spinner theme displays a blank (black) screen at boot on some systems
[This bug was initially reported on launchpad where I was told it might be good to report it upstream]
I tried the plymouth-theme-spinner ubuntu package to test the flicker free vendor logo boot process. When shutting down the machine, everything works as expected. On my XPS 9380 system, the Dell logo is displayed and the white spinner spins until the machine shuts down.
At boot, the Dell logo is shown by the UEFI firmware, then grub switches immediatly (without timeout) to the linux kernel. Then Plymouth blanks the screen and leaves an empty black screen until the graphical session starts (Wayland or Xorg, it does not matter).
Here is the relevant portion of the plymouth debug log:
00:00:03.245 ./plugin.c:934:create_plugin : Using '/usr/share/plymouth/themes/spinner' as working directory
...
00:00:03.246 main.c:1718:load_theme : attaching plugin to event loop
00:00:03.246 main.c:1721:load_theme : attaching progress to plugin
00:00:03.246 ply-boot-splash.c:138:ply_boot_splash_add_pixel_display : adding 1920x1080 pixel display
00:00:03.246 ./plugin.c:1480:add_pixel_display : adding pixel display to plugin
00:00:03.246 ply-device-manager.c:1029:ply_device_manager_activate_renderer: activating renderers
00:00:03.246 ply-boot-splash.c:486:ply_boot_splash_show : showing splash screen
00:00:03.246 ./plugin.c:1538:show_splash_screen : loading lock image
00:00:03.246 ply-boot-splash.c:492:ply_boot_splash_show : can't show splash: No such file or directory
00:00:03.246 ply-boot-splash.c:390:ply_boot_splash_free : freeing splash
00:00:03.246 main.c:489:show_default_splash : Could not start default splash screen,showing text splash screen
note that i uninstalled plymouth-text. If it is installed then the dummy plymouth text is shown instead of the spinner one.
My hypothesis is the following :
- the bgrt theme contains in its theme file : ImageDir=/usr/share/plymouth/themes/spinner
- the initramfs hook for plymouth only copies the theme directory (bgrt) not the one referenced in the theme file. I checked it using lsinitramfs on the newly generated initramfs image.
- At boot, when plymouth tries to find files under /usr/share/plymouth/themes/spinner, my real root is not mounted yet, plymouth cannot find the files and bails.
If I modify the bgrt theme as follows:
- change the line ImageDir to reference ImageDir=/usr/share/plymouth/themes/bgrt
- copy all the image files from the spinner directory to the bgrt directory
- regenerates the initramfs
Then plymouth works as expected, I have the Dell logo and spinner at boot, or the resume message when exiting from hibernate [*].
I have a ZFS root partition on an nvme disk (might explain why my root partition is not up at that time ?).
[*] Small caveat, on my system it seems there is a mode change after the kernel boot and while plymouth starts, hence my boot is not "flicker free" but this seems like a driver related issue.