From: Ray Strode Date: Tue, 26 Dec 2023 01:20:31 +0000 (-0500) Subject: ply-device-manager: Fall back to text plugin if no renderers installed X-Git-Tag: 23.360.11^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03842d5201e4486fe62635c7b470eb94696f985d;p=thirdparty%2Fplymouth.git ply-device-manager: Fall back to text plugin if no renderers installed If there's no renderers installed there's no point in continuing to listen for DRM events and trying to load the drm plugin. This commit just forces text mode right away in that case. --- diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c index 99433345..bfdd28d7 100644 --- a/src/libply-splash-core/ply-device-manager.c +++ b/src/libply-splash-core/ply-device-manager.c @@ -52,6 +52,7 @@ static void create_devices_from_udev (ply_device_manager_t *manager); #endif +static void create_non_graphical_devices (ply_device_manager_t *manager); static bool create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager, const char *device_path, ply_terminal_t *terminal, @@ -1097,6 +1098,13 @@ create_devices_for_terminal_and_renderer_type (ply_device_manager_t *manager, renderer = ply_renderer_new (renderer_type, device_path, terminal); if (renderer != NULL && !ply_renderer_open (renderer)) { + if (errno == ENOENT) { + ply_trace ("No renderer plugins installed, creating non-graphical devices"); + ply_renderer_free (renderer); + create_non_graphical_devices (manager); + manager->device_timeout_elapsed = true; + return false; + } ply_trace ("could not open renderer for %s", device_path); ply_renderer_free (renderer); renderer = NULL;