summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libply-splash-core/ply-device-manager.c8
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;