update docs

This commit is contained in:
2026-09-22 13:23:34 +08:00
parent 99bc3d15c5
commit 8a4788fca8
126 changed files with 7198 additions and 2425 deletions
+72
View File
@@ -0,0 +1,72 @@
# 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.