From 03842d5201e4486fe62635c7b470eb94696f985d Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 25 Dec 2023 20:20:31 -0500 Subject: 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. --- src/libply-splash-core/ply-device-manager.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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; -- cgit v1.2.3