The board boots a stage 1 this flake compiled (tasks 5.1, 5.2) ============================================================== 2026-09-22. The image is /nix/store/vs5mll0vif0lnq36srm6qxgx75mgwf5m-k230-sd-image.img, the pure `nix build .#sdImage` recorded in docs/evidence/stage1-from-nix.txt §6: SPL, U-Boot 2022.10, the environment and OpenSBI 1.4 all built by this flake from pinned sources, with OpenSBI passing the device tree through (docs/evidence/opensbi-fdt-passthrough.txt). Who did what. The flash and every command on the board below were run by the coordinator of this change, in their own session, because the board is a single shared resource held by another change's agent. The agent that wrote this file did not touch the board. Everything under "Observed" is quoted from the coordinator's report verbatim; the transcript at the end is the coordinator's serial capture. Observed (coordinator's session) -------------------------------- - Reached the NixOS login prompt; uptime 0:00 at first check; no panic, no emergency shell. - The board hashed its OWN card (/dev/mmcblk1) raw slots: spl@1MiB fe3d537f (len 223348) uboot@2MiB 805bd543 (len 361896) /boot/fw_jump_add_uboot_head.bin 9627edbe Those are the from-source binaries -- result-stage1/SHA256SUMS in stage1-from-nix.txt §6 lists fe3d537f62c3..., 805bd5434a48..., 9627edbeea9b... -- so the BootROM ran this flake's SPL, the SPL ran this flake's U-Boot, and U-Boot ran this flake's OpenSBI. - dmesg: `canaan-mipi-dsi 90850000.dsi: DSI PHY: lane 594000 kbps, voc 0x17, hsfreqrange 0x87` at 3.16 s. - The line "Kernel module BTF mismatch detected" is ABSENT from this boot (it was present on every boot with the vendor OpenSBI). - `dd if=/sys/kernel/btf/vmlinux bs=1 skip=$((0x3875c)) count=8 | od -An -tx1` -> `ee c6 00 00 f5 13 00 00` BTF bytes; on the vendor firmware the same offset read `d0 0d fe ed 00 01 24 a0` (docs/evidence/opensbi-fdt-lands-in-kernel-image.md). The pass-through fix works on hardware. - Panel lit: a white framebuffer fill photographed at mean brightness 204 in the panel region. What was NOT observed --------------------- This serial capture was opened after stage 1 had scrolled by. A second, cold-boot capture from power-on exists -- docs/evidence/boot-from-source-cold.txt -- and it holds U-Boot's bootm relocation lines and the full OpenSBI banner (Next Arg1 0x0a0eb000: the device tree passed through where bootm put it). It still holds no `U-Boot SPL 2022.10` banner, no `PMU Major Msg:` training sequence and no `U-Boot 2022.10` banner, and that file says why: the CH342 bridge loses power with the board and takes ~3.4 s to re-enumerate, which is the window stage 1 prints in. That the SPL trained the DRAM and that U-Boot ran is inferred from what follows -- a kernel that only U-Boot's blinux could have loaded, from a card whose stage-1 slots hash to this flake's output -- not seen. Task 5.2 asks for the banner and the training messages and stays unticked. The slot hashes plus the boot are the grounding this file offers. Transcript (coordinator's serial capture, systemd onward; 217 lines as received) -------------------------------------------------------------------------------- [ 25.630451] systemd[1]: Populated /etc with preset unit settings. [ 26.875385] systemd[1]: initrd-switch-root.service: Deactivated successfully. [ 26.888774] systemd[1]: Stopped initrd-switch-root.service. [ OK ] Stopped initrd-switch-root.service. [ 26.918287] systemd[1]: systemd-journald.service: Scheduled restart job, restart counter is at 1. [ 26.937973] systemd[1]: Created slice Slice /system/getty. [ OK ] Created slice Slice /system/getty. [ 26.967527] systemd[1]: Created slice Slice /system/serial-getty. [ OK ] Created slice Slice /system/serial-getty. [ 26.995567] systemd[1]: Created slice Slice /system/systemd-fsck. [ OK ] Created slice Slice /system/systemd-fsck. [ 27.023255] systemd[1]: Created slice User and Session Slice. [ OK ] Created slice User and Session Slice. [ 27.048376] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [ OK ] Started Dispatch Password Requests to Console Directory Watch. [ 27.080317] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ OK ] Started Forward Password Requests to Wall Directory Watch. [ 27.111941] systemd[1]: Expecting device /dev/disk/by-label/K230_BOOT... Expecting device /dev/disk/by-label/K230_BOOT... [ 27.139851] systemd[1]: Expecting device /dev/ttyS0... Expecting device /dev/ttyS0... [ 27.163932] systemd[1]: Reached target Local Encrypted Volumes. [ OK ] Reached target Local Encrypted Volumes. [ 27.187946] systemd[1]: Stopped target initrd-fs.target. [ OK ] Stopped target initrd-fs.target. [ 27.211875] systemd[1]: Stopped target initrd-root-fs.target. [ OK ] Stopped target initrd-root-fs.target. [ 27.235912] systemd[1]: Stopped target initrd-switch-root.target. [ OK ] Stopped target initrd-switch-root.target. [ 27.260006] systemd[1]: Reached target Virtual Machines and Containers. [ OK ] Reached target Virtual Machines and Containers. [ 27.288048] systemd[1]: Reached target Path Units. [ OK ] Reached target Path Units. [ 27.311959] systemd[1]: Reached target Remote File Systems. [ OK ] Reached target Remote File Systems. [ 27.335942] systemd[1]: Reached target Slice Units. [ OK ] Reached target Slice Units. [ 27.359985] systemd[1]: Reached target Swaps. [ OK ] Reached target Swaps. [ 27.392504] systemd[1]: Listening on Query the User Interactively for a Password. [ OK ] Listening on Query the User Interactively for a Password. [ 27.433800] systemd[1]: Listening on Process Core Dump Socket. [ OK ] Listening on Process Core Dump Socket. [ 27.467060] systemd[1]: Listening on Credential Encryption/Decryption. [ OK ] Listening on Credential Encryption/Decryption. [ 27.505798] systemd[1]: Listening on Factory Reset Management. [ OK ] Listening on Factory Reset Management. [ 27.532518] systemd[1]: Listening on Hostname Service Socket. [ OK ] Listening on Hostname Service Socket. [ 27.568583] systemd[1]: Starting Journal Log Access Socket... Starting Journal Log Access Socket... [ 27.594716] systemd[1]: Listening on Journal Audit Socket. [ OK ] Listening on Journal Audit Socket. [ 27.629731] systemd[1]: Listening on Console Output Muting Service Socket. [ OK ] Listening on Console Output Muting Service Socket. [ 27.660873] systemd[1]: Listening on Userspace Out-Of-Memory (OOM) Killer Socket. [ OK ] Listening on Userspace Out-Of-Memory (OOM) Killer Socket. [ 27.692201] systemd[1]: TPM PCR Measurements skipped, unmet condition check ConditionSecurity=measured-os [ 27.706475] systemd[1]: Make TPM PCR Policy skipped, unmet condition check ConditionSecurity=measured-uki [ 27.735569] systemd[1]: Listening on Disk Repartitioning Service Socket. [ OK ] Listening on Disk Repartitioning Service Socket. [ 27.764517] systemd[1]: Listening on udev Control Socket. [ OK ] Listening on udev Control Socket. [ 27.788633] systemd[1]: Listening on udev Varlink Socket. [ OK ] Listening on udev Varlink Socket. [ 27.821323] systemd[1]: Mounting Huge Pages File System... Mounting Huge Pages File System... [ 27.867143] systemd[1]: Mounting POSIX Message Queue File System... Mounting POSIX Message Queue File System... [ 27.924229] systemd[1]: Mounting Kernel Debug File System... Mounting Kernel Debug File System... [ 27.980217] systemd[1]: Mounting Kernel Trace File System... Mounting Kernel Trace File System... [ 28.072686] systemd[1]: Starting Create List of Static Device Nodes... Starting Create List of Static Device Nodes... [ 28.132826] systemd[1]: Starting Load Kernel Module configfs... Starting Load Kernel Module configfs... [ 28.180456] systemd[1]: Load Kernel Module drm skipped, unmet condition check ConditionKernelModuleLoaded=!drm [ 28.198937] systemd[1]: Load Kernel Module efi_pstore skipped, unmet condition check ConditionKernelModuleLoaded=!efi_pstore [ 28.224111] systemd[1]: Load Kernel Module fuse skipped, unmet condition check ConditionKernelModuleLoaded=!fuse [ 28.264362] systemd[1]: Mounting FUSE Control File System... Mounting FUSE Control File System... [ 28.296239] systemd[1]: Clear Stale Hibernate Storage Info skipped, unmet condition check ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67 [ 28.346042] systemd[1]: Starting Journal Service... Starting Journal Service... [ 28.399615] systemd[1]: Starting Load Kernel Modules... Starting Load Kernel Modules... [ 28.480775] systemd[1]: Starting Userspace Out-Of-Memory (OOM) Killer... Starting Userspace Out-Of-Memory (OOM) Killer... [ 28.581243] systemd[1]: Starting Remount Root and Kernel File Systems... Starting Remount Root and Kernel File Systems... [ 28.645878] systemd-journald[276]: Collecting audit messages is enabled. [ 28.657475] systemd[1]: Early TPM SRK Setup skipped, unmet condition check ConditionSecurity=measured-os [ 28.744624] systemd[1]: Starting Coldplug All udev Devices... Starting Coldplug All udev Devices... [ 28.855455] systemd[1]: Started Journal Service. [ 28.883947] EXT4-fs (mmcblk1p2): re-mounted 44444444-4444-4444-8888-888888888888 r/w. Quota mode: disabled. [ OK ] Started Journal Service. [ OK ] Listening on Journal Log Access Socket. [ OK ] Mounted Huge Pages File System. [ OK ] Mounted POSIX Message Queue File System. [ OK ] Mounted Kernel Debug File System. [ OK ] Mounted Kernel Trace File System. [ OK ] Finished Create List of Static Device Nodes. [ OK ] Finished Load Kernel Module configfs. [ OK ] Mounted FUSE Control File System. [ OK ] Finished Load Kernel Modules. [ OK ] Finished Remount Root and Kernel File Systems. [ OK ] Listening on Disk Image Download Service Socket. Starting Firewall... Starting Flush Journal to Persistent Storage... Starting Load/Save OS Random Seed... Starting Apply Kernel Variables... [ 29.573453] systemd-journald[276]: Received client request to flush runtime journal. Starting Network Time Synchronization... Starting Create Static Device Nodes in /dev gracefully... [ OK ] Started Userspace Out-Of-Memory (OOM) Killer. [ OK ] Finished Load/Save OS Random Seed. [ OK ] Finished Apply Kernel Variables. [ OK ] Finished Flush Journal to Persistent Storage. [ OK ] Reached target First Boot Complete. [ OK ] Finished Create Static Device Nodes in /dev gracefully. Starting Create Static Device Nodes in /dev... [FAILED] Failed to start Firewall. See 'systemctl status firewall.service' for details. [ OK ] Finished Create Static Device Nodes in /dev. [ OK ] Reached target Preparation for Local File Systems. Mounting /run/wrappers... Starting Rule-based Manager for Device Events and Files... [ OK ] Started Network Time Synchronization. [ OK ] Reached target System Time Set. [ OK ] Mounted /run/wrappers. Starting Create SUID/SGID Wrappers... [ OK ] Finished Create SUID/SGID Wrappers. [ OK ] Started Rule-based Manager for Device Events and Files. [* ] (1 of 3) A start job is running for…by-label/K230_BOOT (8s / 1min 30s) M [** ] (1 of 3) A start job is running for…by-label/K230_BOOT (9s / 1min 30s) M [*** ] (1 of 3) A start job is running for…by-label/K230_BOOT (9s / 1min 30s) M [ *** ] (2 of 3) A start job is running for /dev/ttyS0 (10s / 1min 30s) M [ OK ] Finished Coldplug All udev Devices. [ *** ] (2 of 2) A start job is running for /dev/ttyS0 (12s / 1min 30s) M [ ***] (2 of 2) A start job is running for /dev/ttyS0 (12s / 1min 30s) M [ **] (1 of 2) A start job is running for…y-label/K230_BOOT (13s / 1min 30s) M [ OK ] Reached target Sound Card.  Starting Virtual Console Setup... [ OK ] Stopped Virtual Console Setup. Starting Virtual Console Setup... [ OK ] Finished Virtual Console Setup. Starting File System Check on /dev/disk/by-label/K230_BOOT... [ OK ] Finished File System Check on /dev/disk/by-label/K230_BOOT. Mounting /boot... [ OK ] Mounted /boot. [ OK ] Reached target Local File Systems. [ OK ] Listening on Boot Loader Control Service Socket. Starting Save Transient machine-id to Disk... Starting Create System Files and Directories... [ OK ] Finished Save Transient machine-id to Disk. [ OK ] Finished Create System Files and Directories. Starting Rebuild Journal Catalog... Starting Record System Boot/Shutdown in UTMP... [ OK ] Finished Record System Boot/Shutdown in UTMP. [ OK ] Finished Rebuild Journal Catalog. Starting Update is Completed... [ OK ] Finished Update is Completed. [ OK ] Reached target System Initialization. [ OK ] Started Discard unused filesystem blocks once a week. [ OK ] Started Daily Cleanup of Temporary Directories. [ OK ] Reached target Timer Units. [ OK ] Listening on D-Bus System Message Bus Socket. [ OK ] Listening on Nix Daemon Socket. [ OK ] Listening on Virtual Machine and C…tainer Registration Service Socket. [ OK ] Reached target Socket Units. [ OK ] Reached target Basic System. Starting Import lastlog data into lastlog2 database... Starting Name Service Cache Daemon (nsncd)... Starting Post-Boot Actions... [ OK ] Started Reset console on configuration changes. Starting resolvconf update... [ OK ] Started Name Service Cache Daemon (nsncd). [ OK ] Finished Post-Boot Actions. [ OK ] Reached target Host and Network Name Lookups. [ OK ] Reached target User and Group Name Lookups. Starting D-Bus System Message Bus... Starting User Login Management... [ OK ] Finished Import lastlog data into lastlog2 database. [ OK ] Started D-Bus System Message Bus. [ OK ] Stopped target Host and Network Name Lookups. Stopping Host and Network Name Lookups... [ OK ] Stopped target User and Group Name Lookups. Stopping User and Group Name Lookups... Stopping Name Service Cache Daemon (nsncd)... [ OK ] Stopped Name Service Cache Daemon (nsncd). [ OK ] Started User Login Management. Starting linger-users.service... Starting Name Service Cache Daemon (nsncd)... [ OK ] Finished resolvconf update. [ OK ] Reached target Preparation for Network. Starting DHCP Client... Starting Extra networking commands.... [ OK ] Started Name Service Cache Daemon (nsncd). [ OK ] Finished linger-users.service. [ OK ] Reached target Host and Network Name Lookups. [ OK ] Reached target User and Group Name Lookups. [ OK ] Finished Extra networking commands.. [ OK ] Reached target Network. Starting Permit User Sessions... [ OK ] Finished Permit User Sessions. [ OK ] Started Getty on tty1. [ OK ] Started Serial Getty on ttyS0. [ OK ] Reached target Login Prompts. [!p]104\[?7h78[!p]104\[?7h78]3008;start=4435df2974c64016a28bb5951961f80f;user=root;hostname=nixos;machineid=384099c246e445e9a734bd8b399e3487;bootid=df0460a8c090425d8e33a6e49daf0d87;pid=650;comm=(agetty);servicename=serial-getty@ttyS0.service;invocationid=cc5b7c9297184f498fa86b40ffa4194b;type=service\P+q6E616D65\ <<< Welcome to NixOS 26.11.20260919.20b1ddd (riscv64) - ttyS0 >>> nixos login: root (automatic login)