73 lines
3.5 KiB
Markdown
73 lines
3.5 KiB
Markdown
# 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.
|