Table of Contents
include_toc
| include_toc |
|---|
| true |
M5 software validation
Development reference and historical context. For current operating instructions, use the user manual. Acceptance applies only to the source and artifacts identified in each record.
M5's ordinary-user console and software timing tools passed on the x86_64 Arch build host using the actual AArch64 kernel, initramfs and SYSTEM image in QEMU 11.1.1. Physical Pi boot, power-on, display and timing acceptance is deferred. These runs completed on 2026-09-20 UTC (2026-09-21 in Asia/Shanghai).
Usable console and event evidence
make console-test passed in out/m5-vm.fuml66z0/:
- Native s6 starts the local autologin console as
fds, UID/GID 1000. Commands execute atFDS>, HOME and working directory are/home/fds, the temporary home accepts writes, and SYSTEM rejects writes. - Reports contain stage0 entry, SYSTEM discovery, root mount, root switch, s6 stage-2 entry and first-console readiness for the current boot. Desktop readiness is absent. No missing event is replaced with a zero timestamp.
- Exiting and restarting the console preserves the first readiness event.
- Holding eudev startup behind a test FIFO does not prevent the usable prompt. The test releases that gate after executing a console command.
- Saved-report comparison rejects an unexplained regression greater than 100 ms, permits an explicit explanation, and rejects incompatible platforms.
The normal run measured 1,669.027 ms kernel-clock-to-console and 664.032 ms
s6-stage-2-to-console. The blocked-eudev run measured 1,659.990 ms and
581.113 ms. These are individual emulator observations, not physical budgets.
Nine further boots compare Rust optimization levels in
out/rust-profiles.x_wgx1kp/; see Performance for the table,
raw report locations, clock boundaries and decision to retain opt-level=z.
make console-vm was also opened interactively and verified UID 1000.
Build execution correction
PRoot intermittently aborted during ARM subprocess execution on this host. One
failure also returned a misleading zero status. Runtime checks now require an
explicit final child acknowledgement, and finalization propagates failures.
The image builder now uses a private user-namespace binfmt_misc registration
with static QEMU, requiring Linux 6.7 or newer. It leaves the workstation's
registration table unchanged. The existing Void util-linux package provides
mount and capability-drop helpers; no target package was added for emulation.
tests/integration/rootfs-emulation.py verified nested ARM execution, exact
nonzero exit propagation, isolation from the host registry and removal of
setup capabilities before target execution. Only namespace-local SETFCAP remains
for package configuration. A fresh complete rootfs build passed afterward.
Historical M1/M2 reports retain the older PRoot workflow as historical evidence.
Final artifacts
| Artifact | SHA-256 |
|---|---|
Rootfs TAR, out/rootfs-build.9kTEAH/ |
eef5764034d315b5e012679ef7ed165c6961b69aa88f9514c77cf08ef67bf8f7 |
SYSTEM GPT/EROFS, out/system-build.o948uzwd/ |
d2e00f56f1ecc689de455a9066259cefa95bd0bbd271e7f2d3d4cd3235dffd91 |
Uncompressed initramfs, out/initramfs-build.dzggpetk/ |
2a6009800f4c73707b165a3a3142b5baff688c685b7ea9fcd196e9ab6079a4de |
Production FAT32 boot partition, out/boot-build.bzakcn8s/ |
cd242813ded7c860d291c1dbf984bf69b48cc3b58da93f9bdebf83068139abf1 |
| Kernel Image, unchanged from M4 | 78f027ad3124da7b06d4559f49ea7f63c312cd24e653d0f8e29ee2391f520bc4 |
The rootfs contains 111 packages and 1,169 AArch64 ELF files. Its TAR is 407,480,320 bytes. Per-build package/input inventories accompany the image. The boot FAT is a partition image, not a complete internal NVMe disk.
The final sequential regression run exited zero: make bootstrap,
make smoke-test, make tooling-test, make check, make rootfs-test,
make init-test, make system-card, make boot-volume, make boot-test,
make console-test, and make performance-test. Logs are
out/logs/m5-verified-*.log. The native-init VM is out/m2-vm.sYk3Hu/;
the nine-case stage0 matrix is out/m4-vm.RHUJX5/. Shared Rust tests passed.
M0 still reports its optional host-PATH QEMU skip; project-local ARM execution
and full-system emulation actually ran. No physical boot benchmark is claimed.
FDS/OS
Start here
Use the computer
- Use cartridges and run programs
- DATA and persistent files
- WindowMaker and FDS Control
- Dasung Paperlike display
Install and maintain
- Flash disk images
- Internal storage and machine settings
- Pi 5 EEPROM configuration
- Recovery and rollback
- Verify a release
- Reclaim build space
- Troubleshooting
Build and contribute
Home · All pages · Edit the wiki · Source repository
Maintained directly in the fds-os.wiki repository. Historical acceptance applies only to the source and artifacts identified in each record.