device-manager: skip graphical renderer setup when details forced

System Internals / Plymouth - Adam Williamson [] - 7 June 2018 14:12 EDT

If neither "rhgb" nor "splash" is on the kernel cmdline, then plymouth forces the "details" splash. This splash is merely a passthrough plugin, where it makes boot looks like plymouth isn't even running.

In this case, the code sets PLY_DEVICE_MANAGER_FLAGS_IGNORE_UDEV. The idea is to not bother waiting for udev events notifying plymouth when graphics devices show up, since it doesn't need to use the grpahics devices directly anyway.

Unfortunately, it does still erroneously try to setup graphical renderers in this case, including the /dev/fb renderer.

Before commit e4f86e3c, these graphical renderers failed because they were given the wrong device name, but since that fix, they're suceeding. We definitely don't want the /dev/fb renderer to load if we're ignoring udev on efi systems, since during very early boot /dev/fb is backed by efifb, something we never want to use. efifb is supposed to get replaced during the boot process by other fb implementations like say radeondrmfb, virtiodrmfb or bochsdrmfb, and some of those implementations can't handle the transition if /dev/fb is open at switchover time.

This commit adds a new flag to tell the device manager to not bother trying to setup graphical renderers when details are forced.

014c215 device-manager: skip graphical renderer setup when details forced
src/libply-splash-core/ply-device-manager.c | 20 ++++++++++++++++----
src/libply-splash-core/ply-device-manager.h | 3 ++-
src/main.c | 4 +++-
3 files changed, 21 insertions(+), 6 deletions(-)


  • Share