From 6249b09bd2788945cc85567b9e68362590a65f6d Mon Sep 17 00:00:00 2001 From: Vincent Ollivier Date: Mon, 14 Oct 2024 22:47:26 +0200 Subject: [PATCH] Check for device presence --- src/api/vga/mod.rs | 12 +++++++++--- src/usr/render.rs | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/api/vga/mod.rs b/src/api/vga/mod.rs index 245d2503..768b586e 100644 --- a/src/api/vga/mod.rs +++ b/src/api/vga/mod.rs @@ -1,10 +1,16 @@ use crate::api::fs; pub fn graphic_mode() { - fs::write("/dev/vga/mode", b"320x200").ok(); + let dev = "/dev/vga/mode"; + if fs::is_device(dev) { + fs::write(dev, b"320x200").ok(); + } } pub fn text_mode() { - fs::write("/dev/vga/mode", b"80x25").ok(); - print!("\x1b[2J\x1b[1;1H"); // Clear screen and move to top + let dev = "/dev/vga/mode"; + if fs::is_device(dev) { + fs::write(dev, b"80x25").ok(); + print!("\x1b[2J\x1b[1;1H"); // Clear screen and move to top + } } diff --git a/src/usr/render.rs b/src/usr/render.rs index 8784a0bf..bb7324ac 100644 --- a/src/usr/render.rs +++ b/src/usr/render.rs @@ -176,7 +176,8 @@ fn render_bmp(path: &str, config: &mut Config) -> Result { palette[i * 3 + 1] = *g; palette[i * 3 + 2] = *b; } - if fs::write("/dev/vga/palette", &palette).is_err() { + let dev = "/dev/vga/palette"; + if !fs::is_device(dev) || fs::write(dev, &palette).is_err() { error!("Could not set palette"); return Err(ExitCode::Failure); }