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:
+11
-4
@@ -26,9 +26,14 @@ provision:
|
||||
apt-get install -y \
|
||||
dbus pipewire wireplumber weston \
|
||||
can-utils python3 python3-venv \
|
||||
systemd-zram-generator fake-hwclock \
|
||||
systemd-zram-generator systemd-oomd fake-hwclock \
|
||||
fonts-dejavu-core fonts-noto-core \
|
||||
build-essential pkg-config curl
|
||||
build-essential pkg-config curl \
|
||||
libfontconfig1-dev libxkbcommon-dev libwayland-dev
|
||||
|
||||
# zram/vcan-модули не входят в базовый vz-образ Lima → доустановить linux-modules-extra
|
||||
# (иначе zram-generator падает). vcan всё равно может отсутствовать — честная VM↔HW-граница.
|
||||
apt-get install -y "linux-modules-extra-$(uname -r)" || true
|
||||
|
||||
# vcan (для Vehicle Simulator, v2 — поднимаем заранее для воспроизводимости)
|
||||
modprobe vcan || true
|
||||
@@ -54,11 +59,13 @@ provision:
|
||||
install -d /etc/systemd/oomd.conf.d
|
||||
install -m644 /shturman/systemd/oomd-shturman.conf /etc/systemd/oomd.conf.d/shturman.conf
|
||||
|
||||
# fake-hwclock → /data (не на rootfs; A07/A11)
|
||||
# fake-hwclock → /data (не на rootfs; A07/A11). Сервис в Lima masked (Lima сам синхронит время) —
|
||||
# на HW он размаскирован и читает FILE из /etc/default/fake-hwclock через EnvironmentFile.
|
||||
echo 'FILE=/data/state/fake-hwclock.data' > /etc/default/fake-hwclock || true
|
||||
rm -f /etc/fake-hwclock.data || true # стоковый файл на rootfs — A11: персист только в /data
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable systemd-oomd.service || true
|
||||
systemctl enable --now systemd-oomd.service || true # защита critical set от OOM (A09); политика — oomd.conf.d
|
||||
# shturman.target включаем, но НЕ стартуем здесь — бинарей ещё нет (just run/e2e).
|
||||
systemctl enable shturman.target || true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user