From c7d92071e1dd11c45999457b16554b4abaa73b28 Mon Sep 17 00:00:00 2001 From: salmonik Date: Sun, 2 Aug 2026 15:21:34 +0200 Subject: v0.5.5: crash reports go to a dedicated CRASHLOG USB stick The fault handler now writes crash.log to the volume labeled CRASHLOG (label-selected via fat::crash_vol), falling back to slot 0. On real hardware the boot USB may be unwritable, so a second stick labeled CRASHLOG survives the write; the shell auto-prints the previous crash report from it at next boot (read_crash_log resolves /disk//crash.log through the FAT path, since Disk nodes hold no cached children). - fat.rs: volume_label() + crash_vol() (no allocation) - fs.rs: write_crash_log targets crash_vol(); read_crash_log prefers the CRASHLOG disk node; drop now-unused first_disk() - mkdisk.sh: --label option - test-fault.sh: boots with a dedicated CRASHLOG stick (mkfs -F 32 -n CRASHLOG), verifies crash.log lands there and NOT on the ESP --- rsnix/src/gop.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'rsnix/src/gop.rs') diff --git a/rsnix/src/gop.rs b/rsnix/src/gop.rs index d37468f..7aeb224 100644 --- a/rsnix/src/gop.rs +++ b/rsnix/src/gop.rs @@ -257,7 +257,8 @@ pub fn init(gop: &mut GraphicsOutputProtocol) { let words = (fbinfo.pitch * fbinfo.height) / 4; if words > 0 { let bytes = words * 4; - #[allow(clippy::slow_vector_initialization)] // deliberate: try_reserve must not panic + #[allow(clippy::slow_vector_initialization)] + // deliberate: try_reserve must not panic let mut v: alloc::vec::Vec = alloc::vec::Vec::new(); if v.try_reserve_exact(words).is_ok() { v.resize(words, 0); // can't fail after the reserve @@ -284,8 +285,7 @@ pub fn init(gop: &mut GraphicsOutputProtocol) { rbase + rsize, ); if SHADOW.is_null() { - let msg = - "gop: WARNING — shadow rejected (fb overlap); no-shadow fallback"; + let msg = "gop: WARNING — shadow rejected (fb overlap); no-shadow fallback"; crate::serial_println!("{}", msg); let lines: alloc::vec::Vec<&str> = msg .as_bytes() -- cgit v1.2.3