diff options
author | Ray Strode <rstrode@redhat.com> | 2023-12-25 20:20:31 -0500 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2023-12-25 20:49:01 -0500 |
commit | 03842d5201e4486fe62635c7b470eb94696f985d (patch) | |
tree | 0ee7710e2312ae3a2edaf12fc903efdef08ce454 | |
parent | 32d930bdda47f4abd5c8c8707708bfbb2ad83570 (diff) |
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.
-rw-r--r-- | src/libply-splash-core/ply-device-manager.c | 8 |
1 files changed, 8 insertions, 0 deletions
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; |