spinner theme displays a blank (black) screen at boot on some systems

Bug #1856712 reported by Kim Nguyễn on 2019-12-17
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Plymouth
Fix Released
Unknown
plymouth (Ubuntu)
Low
Unassigned

Bug Description

I tried the plymouth-theme-spinner 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.

ProblemType: Bug
DistroRelease: Ubuntu 19.10
Package: plymouth-theme-spinner 0.9.4git20190712-0ubuntu4.1
ProcVersionSignature: Ubuntu 5.3.0-25.27-generic 5.3.13
Uname: Linux 5.3.0-25-generic x86_64
NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
ApportVersion: 2.20.11-0ubuntu8.3
Architecture: amd64
BootLog: Error: [Errno 13] Permission denied: '/var/log/boot.log'
CurrentDesktop: ubuntu:GNOME
Date: Tue Dec 17 14:49:09 2019
DefaultPlymouth: /usr/share/plymouth/themes/bgrt/bgrt.plymouth
EcryptfsInUse: Yes
InstallationDate: Installed on 2019-10-19 (58 days ago)
InstallationMedia: Ubuntu 19.10 "Eoan Ermine" - Release amd64 (20191017)
MachineType: Dell Inc. XPS 13 9380
ProcCmdLine: BOOT_IMAGE=/BOOT/ubuntu_5to4s3@/vmlinuz-5.3.0-25-generic root=ZFS=rpool/ROOT/ubuntu_5to4s3 ro plymouth:debug resume=UUID=136e5fef-7afe-4cb4-a996-e2d01f197738 quiet splash vt.handoff=1
ProcFB: 0 i915drmfb
ProcKernelCmdLine: BOOT_IMAGE=/BOOT/ubuntu_5to4s3@/vmlinuz-5.3.0-25-generic root=ZFS=rpool/ROOT/ubuntu_5to4s3 ro plymouth:debug resume=UUID=136e5fef-7afe-4cb4-a996-e2d01f197738 quiet splash vt.handoff=1
SourcePackage: plymouth
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 10/01/2019
dmi.bios.vendor: Dell Inc.
dmi.bios.version: 1.8.0
dmi.board.name: 0KTW76
dmi.board.vendor: Dell Inc.
dmi.board.version: A00
dmi.chassis.type: 10
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvr1.8.0:bd10/01/2019:svnDellInc.:pnXPS139380:pvr:rvnDellInc.:rn0KTW76:rvrA00:cvnDellInc.:ct10:cvr:
dmi.product.family: XPS
dmi.product.name: XPS 13 9380
dmi.product.sku: 08AF
dmi.sys.vendor: Dell Inc.

Kim Nguyễn (kim.nguyen) wrote :
description: updated
Sebastien Bacher (seb128) wrote :

Thank you for your bug report, that seems like it could be reported upstream on
https://gitlab.freedesktop.org/plymouth/plymouth/issues
Could you do that?

Changed in plymouth (Ubuntu):
importance: Undecided → Low
Steve Langasek (vorlon) on 2019-12-20
tags: added: bot-stop-nagging
Sebastien Bacher (seb128) wrote :

Thanks

Changed in plymouth (Ubuntu):
status: New → Triaged
Changed in plymouth:
status: Unknown → New
Kim Nguyễn (kim.nguyen) wrote :

Hi,

after inspection upstream, it seems the bug is caused by the ubuntu/debian specific initramfs-tools hook in debian/local/plymouth.hook. The analysis is in comments
https://gitlab.freedesktop.org/plymouth/plymouth/issues/92#note_418076 and
https://gitlab.freedesktop.org/plymouth/plymouth/issues/92#note_418219 of the upstream issue (which is now closed).

To summarize, the ubuntu initramfs-hook does the following while copying a theme to the initramfs:

# copy plugin and images for current theme
 copy_exec "${MODULE}"
 cp -a "${THEMES}/${currtheme}" "${DESTDIR}/${THEMES}"

which misses directories that are not descendants of the ${currtheme} one. Plymouth upstream provides a script which does the right thing, maybe it's worth using.

tags: added: flickerfreeboot
Changed in plymouth:
status: New → Fix Released
Daniel van Vugt (vanvugt) wrote :

Thank you for reporting this bug to Ubuntu.
Ubuntu 19.10 (eoan) reached end-of-life on July 17, 2020.

See this document for currently supported Ubuntu releases:
https://wiki.ubuntu.com/Releases

We appreciate that this bug may be old and you might not be interested in discussing it any more. But if you are then please upgrade to the latest Ubuntu version and re-test. If you then find the bug is still present in the newer Ubuntu version, please add a comment here telling us which new version it is in.

Changed in plymouth (Ubuntu):
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.