qemu: display + touch scenario, ADR-0006, docs
Phase 4+5 of the device sim: - Display + touch verified end-to-end: virtio-gpu at 720x720 (fbdev emulation) renders the real WardenOS dashboard from the static LVGL fbdev+evdev UI build (flare-edge qemu-vm-support tools/build-ui-vm.sh); QMP input-send-event taps the Metrics tab and qemu/tests/ui-shot.sh asserts the repaint from screendumps. Two load-bearing QEMU flags found and documented: -global virtio-mmio.force-legacy=false (gpu/input are VERSION_1-only) and the 200ms press hold (an instantaneous press+release lands inside one LVGL indev poll and never clicks). - qemu/tests/qmp.py: minimal QMP client (screendump, tap, quit). - stage-2 init starts warden-ui when present and fb0 exists. - docs/decisions/0006-qemu-device-sim.md: virt-not-custom-board, the enters-at-kernel boundary, fragment policy, naming, consequences. - docs/architecture.md: new section 7 (device emulation), order-of-work item 7; modbus cross-reference to the bridge. - qemu/README.md: emulated-vs-not table, scenarios, gotchas, host/runner requirements. docs/ci-cd.md: runner needs one-time qemu-system-arm install (fail-closed smoke until then, [maintainer]-gated). Repo README updated. Final sweep on this commit: shellcheck clean, bridge 7/7 tests, boot smoke PASS, portal scenario PASS (check-in + fw pull + signed .wfw download), ui-shot PASS (touch navigates to Metrics) — all under the final flags. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018HUayid7W5w7jBdb9Rrj1K
This commit is contained in:
co-authored by
Claude Fable 5
parent
c7e06514ad
commit
13b7d063a2
@@ -45,6 +45,14 @@ A **third** repo-scoped runner instance on `bfe-mpc-0640` (alongside `flare` and
|
||||
|
||||
Host build deps: `dtc bc flex bison libssl-dev` — already present on 0640.
|
||||
|
||||
5. **`qemu-system-arm`** (for the boot-smoke step inside `kernel-build`, added
|
||||
with the `qemu/` device sim — ADR-0006): one-time
|
||||
`sudo apt-get install qemu-system-arm cpio` on 0640. The step is
|
||||
**fail-closed** — a missing qemu binary fails the job with a message
|
||||
pointing here; it never silently skips. NOT YET PROVISIONED (2026-08-29):
|
||||
the first dispatched `kernel-build` after this lands will fail its smoke
|
||||
step until the install is done ([maintainer]-gated sudo on 0640).
|
||||
|
||||
## Badges
|
||||
|
||||
Static shields SVGs are committed by the `badges` job (private repo can't use
|
||||
|
||||
Reference in New Issue
Block a user