# Dasung integration validation Development reference and historical context. For current operating instructions, use the [user manual](../README.md). Acceptance applies only to the source and artifacts identified in each record. [Documentation index](README.md) ยท [Integration and usage](dasung.md) Validated on 2026-09-20 on the x86_64 Arch development host. This records the FDS port of the existing local `dasungd`; it is separate from the historical live monitor validation in [the imported source](../../rust/dasungd/VALIDATION.md). This is the original integration record. The subsequent rootfs build, emulated ARM execution, and integration rerun are recorded in [M1 validation](m1-validation.md). ## Commands completed successfully ```sh make bootstrap make smoke-test make check make dasung make dasung-test ``` Bootstrap now fetches the locked workspace dependencies. A fresh empty Cargo cache had exposed that resolving the new workspace member also affects an offline build of the dependency-free smoketest; the bootstrap fetch addresses that setup requirement. The original dependency versions were retained; the workspace lock adds the smoketest member to the imported controller lock. ## Checks performed - Static AArch64 ELF validation of both the built daemon and the executable extracted from its `aarch64` XBPS package. No dynamic interpreter, shared-library requirements, or glibc symbol requirements were present. - Six imported unit tests: framing/reassembly, malformed streams, parameter and IPC validation, saved-setting reload, and exact EDID identity/checksum/clock. - Pseudo-terminal monitor tests: late attachment, keepalive, fragmented replies, invalid settings, saved-setting replay, unplug/replug, duplicate-instance exclusion, reply watchdog recovery, restart, and forgetting settings. - Native s6 execution of the packaged service graph in an isolated container with a read-only root and no exposed physical USB or display devices. Startup, logging, socket permissions, restart, and clean stop passed with no monitor. This used the x86_64 test build of the same source, not ARM emulation. - Package contents, exact config/profile, mandatory base package selection, base boot-bundle membership, and compilation of packaged service sources. - The original M0 ELF/source/overlay protections and Rust formatting checks. ## Artifact identities ```text 7a3daf7e7beadde7d4b0991a08af04952495e1ec155bd4a2e3605fb903dcc782 out/dasungd 9c33dc3808549016f388f409658abc3ba37ff0b8d05973dcf1d5f9f8dbd89e94 out/packages/fds-dasungd-0.1.0_1.aarch64.xbps ``` Package dependencies are coreutils, execline, s6, s6-rc, and eudev. The static executable does not add a shared musl, libusb, or libudev runtime dependency. The packet keepalive/pacing and confirmed 304210 kHz EDID are retained. Local generated evidence: [build log](../../out/logs/dasung-build-final.log), [test log](../../out/logs/dasung-test-final.log), and [artifact manifest](../../out/manifests/dasung-artifacts.sha256). These outputs are ignored by Git and must be regenerated in a fresh checkout. ## Not verified There is no complete rootfs, native PID 1 deployment, Pi kernel/initramfs, or bootable image yet. ARM runtime execution, Pi video/cabling, physical image quality, early-boot display handoff, and corrected cold-power recovery were not tested. The workstation's live display service and configuration were not changed. Saved overrides use volatile `/run` until persistent machine storage is integrated. The service test is not a boot or shutdown benchmark.