feat(v0.6): Lima E2E зелёный с нуля + shell software-render screenshot
План 5 ч.2: поднял Lima-VM и довёл сквозной E2E до зелёного из чистого yaml (just vm-reset && just e2e — exit 0). Приёмка §9.4 (v0.1 + v0.6 + шагающий скелет). Shell (lib+bin split): - режим --screenshot <path>: headless software-render первого кадра в PNG (Slint software-renderer, без дисплея/композитора, §6); TDD-тест «кадр не пустой + тема отражена», зелёный и на dev-Mac, и в VM (Linux). - shturman-shell.service → oneshot software-render → /run/shturman/frame.png (RemainAfterExit → is-active детерминированно, без хрупкого weston; живой weston-shell — v0.5). just shell-frame — инспекция кадра. E2E (tests/e2e/run.sh, двухфазно pre→reboot→post): - /data+power-safe опции, volatile-tmpfs, first-boot идемпотентность, per-unit active, имена на шине + GetPowerState, fake-ACC SetAcc→AccChanged, первый кадр PNG, base-бюджеты (journald volatile / zram / oomd / fake-hwclock→/data / eMMC-прокси), персист Settings + machine-id every-boot bind после reboot. Провижининг (lima/shturman.yaml) — правки по реальным ошибкам Lima: - build-deps Slint/winit на Linux (libfontconfig1-dev/libxkbcommon-dev/libwayland-dev); - linux-modules-extra (zram/vcan не в vz-ядре); systemd-oomd; rm стокового /etc/fake-hwclock.data (A11); VM-локальный CARGO_TARGET_DIR. Док-синхронизация (спека §13/§8.1/§7.5 + CLAUDE.md): швы реализации, eMMC-порог T=4096 сект, fake-hwclock masked-в-Lima, dev-mock policy не нужен. Перф-вердикт — на RK3588 (в VM — функционально, performance §2). just ci зелёный. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Alexander <akotenev2003@gmail.com>
This commit is contained in:
@@ -1,17 +1,19 @@
|
||||
[Unit]
|
||||
Description=Штурман Shell (первый Slint-кадр)
|
||||
Description=Штурман Shell — первый Slint-кадр (software-render → PNG, §6)
|
||||
Requires=data.mount shturman-firstboot.service
|
||||
After=shturman-power.service shturman-settings.service shturman-machineid.service
|
||||
PartOf=shturman.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/local/bin/shturman-shell
|
||||
Restart=on-failure
|
||||
RestartSec=2
|
||||
# v0.6: headless software-render кадра в PNG (спека §6 — основной автотест кадра, композитор не нужен).
|
||||
# oneshot+RemainAfterExit → is-active=active детерминированно, без хрупкого weston (живой weston-shell — v0.5).
|
||||
# Кадр читает ui.theme/Power с системной шины (After=power/settings) и пишет в tmpfs /run (volatile, A11).
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
RuntimeDirectory=shturman
|
||||
ExecStart=/usr/local/bin/shturman-shell --screenshot /run/shturman/frame.png
|
||||
TimeoutStartSec=30
|
||||
OOMScoreAdjust=-600
|
||||
# Wayland-дисплей: provisioning/E2E поднимает weston headless (финализируется в части 2).
|
||||
Environment=WAYLAND_DISPLAY=wayland-1
|
||||
Environment=XDG_RUNTIME_DIR=/run/user/0
|
||||
|
||||
[Install]
|
||||
WantedBy=shturman.target
|
||||
|
||||
Reference in New Issue
Block a user