evidence · 5.5 KiB

README.md

Committed at docs/evidence/omawrite/storage-recovery/README.md. This is what grounds the requirements that cite it.

Open raw source

Storage failure after Omawrite installation

A later user report said Omawrite would not launch and application icons were missing. The reserved physical serial console confirmed repeated SD read failures and a read-only root filesystem. Bash and systemctl could not load from the Nix store. This supersedes any assumption that the earlier passing trial describes the current board state; the earlier trial remains a historical observation.

Procedure and limits

The coordinator held /tmp/k230-board.lock and used tools/console.py on /dev/ttyACM0 at 115200. Ordinary external diagnostic commands failed, so the existing console shell read /proc/mounts and /dev/kmsg with Bash builtins. Only storage-related lines were retained above; protected raw captures remain outside the repository. The filter omits identifiers and unrelated messages.

A normal systemctl reboot failed with an input/output error. The running kernel did not provide /proc/sysrq-trigger, so sync/remount/reboot requests through that interface had no effect. A physical power cycle was requested. During that diagnosis, no filesystem repair, remount-write, image flash or full-card readback was performed. The reason the SD stopped responding remains undetermined; these observations do not distinguish a card, power, connection or driver problem.

Replacement card and preserved demo image

Power cycling and reseating did not restore boot output. The original card then reported zero capacity through the USB reader, which could not read its medium. A different card reported 64,088,965,120 bytes through the same reader. Its first two FAT partitions contained readable vendor/demo files; its third FAT partition reported an invalid cluster and was made read-only by Linux. These are separate cards and separate failure observations.

The user authorized preserving the replacement demo card before replacing it with our current NixOS image. All three partitions were unmounted first. The exact backup command read every source byte without errors, fsynced the saved image, then independently reread and hashed the saved file. The result records matching SHA-256 and byte counts. The full private image, checksum, source identity and restoration notes are at ~/tmp/k230-demo-card-20260927T203725Z/. Only reviewed metadata is committed here. The backup preserves existing filesystem corruption; it is not a repaired image.

The F3 capacity probe passed: usable and announced sizes both equal 125,173,760 sectors. It restored its sampled blocks; independent samples at the beginning, middle and end then matched the verified backup. The probe result preserves the exact command and completion time. This checks capacity, not every possible future failure.

Replacement NixOS image written

The sdImage-coherent build completed successfully from source revision c985854979325057727a825294d8a0d34b26a4f1. Changes after runtime revision 4db47bc0117378efa120c17679a1cea8d506949e were evidence/documentation only. The build command was:

nix build .#sdImage-coherent --out-link result-sd-image-coherent \
  --max-jobs 4 --cores 6 \
  --option substituters https://cache.nixos.org/ --print-out-paths

The output is /nix/store/ijdsbmb6mzhlsbr32yyqpzzpq0pz7rxa-k230-sd-image.img, 4,765,401,088 bytes, SHA-256 86bf43dd943a6208a0b253318b7fa8344defef33ac3e0236275777be2471fdd1. It contains system /nix/store/cmhsqwvzwp3bad15wv5znk4w35wx65d5-nixos-system-nixos-26.11.20260919.20b1ddd. A host inspection confirmed that system’s init, Omawrite desktop entry and profile icon exist; the entry references the expected absolute Omawrite path. This is packaging evidence, not a successful launch on the replacement card.

The preflight checked the approved removable USB slot, capacity, unmounted state, image partition layout and samples matching the preserved demo backup. The writer saved a separate nixos-replacement.img beside demo-card.img, fsynced it and verified its hash before invoking the repository’s tools/flash.sh with the approved by-id path. Both image hashes are in the private directory’s SHA256SUMS.

The flash result and write completion record exit zero, the complete byte count and completion at 2026-09-27T22:59:46Z. dd oflag=sync conv=fsync and the writer’s final sync completed. The reader was then powered off successfully with udisksctl. No routine full-image readback was performed, per the user’s standing request.

First boot on the replacement card

The operator reinstalled the card and reconnected power. The first-boot result records a physical serial observation of the expected system at /run/current-system, /dev/mmcblk1p2 mounted read-write as the root filesystem, the shell runtime socket, the installed desktop entry and the Omawrite SVG icon. The exact serial commands were readlink /run/current-system, cat /proc/mounts | head -n 4, ls /run/shell, test -f /run/current-system/sw/share/applications/k230-editor.desktop, and ls /run/current-system/sw/share/icons/hicolor/*/apps/omawrite*.

UNVERIFIED: activating Omawrite from the on-screen launcher, the resulting window map and icon rendering on glass. Presence of the desktop and icon files does not establish that launcher behavior. No new application or shell source change was made during this recovery.