From fd5c5c2dd57baa651928c100fbdc8b9db9c15531 Mon Sep 17 00:00:00 2001 From: Alexander Date: Wed, 24 Jun 2026 20:20:32 +0300 Subject: [PATCH] =?UTF-8?q?docs(v0.2):=20=D1=81=D0=B8=D0=BD=D1=85=D1=80?= =?UTF-8?q?=D0=BE=D0=BD=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D1=88=D0=B2?= =?UTF-8?q?=D0=BE=D0=B2=20boot-=D0=BA=D0=BE=D0=BD=D0=B2=D0=B5=D0=B9=D0=B5?= =?UTF-8?q?=D1=80=D0=B0=20+=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit P6.5: CLAUDE.md — v0.2 ГОТОВО, следующее v0.3/v0.5 параллельно поверх v0.2. a-base §4 — dev-VM Stage 0/1/2 = фазовые таргеты + shturman-splash (software-render), U-Boot framebuffer/A-B/secure-boot — HW (VM↔HW-граница). v0.1-v0.6 спека §13 — шов «shturman.target → зонтик; critical set → stage1.target». Co-Authored-By: Claude Opus 4.8 Signed-off-by: Alexander --- CLAUDE.md | 8 +++++++- docs/domains/a-base-system.md | 4 ++++ docs/specs/v0.1-v0.6-foundation.md | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index 98a7221..0894d65 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -52,7 +52,13 @@ vcan + Vehicle Simulator + моки (аудио/BT/камера/GPS/сеть/plu base-бюджеты (journald volatile / zram / oomd / fake-hwclock→/data / eMMC-прокси) → **reboot**: персист Settings + machine-id стабилен. Приёмка §9.4 (v0.1 + v0.6 + шагающий скелет) выполнена. Швы реализации — спека §13. -**Следующее:** `v0.2` boot-конвейер · `v0.3` power-safe · `v0.4` MCU/thermal · `v0.5` полный shell (живой weston-shell). +**v0.2 Boot-конвейер — ГОТОВО (ветка `feat/v0.2-boot-pipeline`):** спека `docs/specs/v0.2-boot-pipeline.md` + план +`docs/specs/plans/06-v0.2-boot-pipeline.md`. `shturman.target` → **зонтик** фаз Stage 0/1/2; `shturman-splash` (Stage 0, +software-render → `/run/shturman/splash.png`, `Before=shell` → до первого кадра) + `shturman-stage2-warmup` (деферред +`After=shell`); общий рендер-хелпер `shturman-render` (shell+splash). `just vm-reset && just e2e` зелёный с нуля: +фазы разделены (splash ≤ frame ≤ stage2), регресс v0.1/v0.6 цел. Приёмка спека v0.2 §9.3 выполнена. + +**Следующее:** `v0.3` power-safe и `v0.5` полный shell (живой weston-shell) — параллельно поверх v0.2 · затем `v0.4` MCU/thermal. > CI: GitHub-Actions-конфиг **удалён** (его ловит Gitea). Гейт — локальный `just ci`. CI на Gitea — решение позже. diff --git a/docs/domains/a-base-system.md b/docs/domains/a-base-system.md index ffc0393..26ae8a0 100644 --- a/docs/domains/a-base-system.md +++ b/docs/domains/a-base-system.md @@ -72,6 +72,10 @@ - **Stage 1 (~3–5 c):** ядро-минимум (шина + Power + Settings + Perm-Broker + App-Host) → **Shell с первым кадром**; - **Stage 2 (фоном):** Vehicle-Data, Assistant, Media, Nav прогреваются после интерактива. - Быстрый boot: минимальный initramfs, параллельный systemd, ленивые сервисы. +- **Dev-VM (v0.2 реализовано):** Stage 0/1/2 = фазовые systemd-таргеты под зонтиком `shturman.target`; splash — + `shturman-splash` (Slint software-render → `/run/shturman/splash.png`, `Before=shell` → до первого кадра); Stage 2 — + warmup-плейсхолдер (`After=shell`, деферред). U-Boot framebuffer-splash + A/B + secure-boot + ранний путь камеры — + HW (VM↔HW-граница, как overlay/A-B в v0.6). Тайминг <10 c — функц. в VM, вердикт на RK3588. - **Secure boot (verified boot, v4):** анкор доверия — **хэш публичного ключа в OTP/eFuse, прожиг НЕОБРАТИМ** (burn-once, без ротации). Приватный ключ — offline/HSM с бэкапом (потеря = кирпич парка). **Dev-ключи ≠ prod**, на dev-платах eFuse НЕ жжём diff --git a/docs/specs/v0.1-v0.6-foundation.md b/docs/specs/v0.1-v0.6-foundation.md index c44e69d..1995420 100644 --- a/docs/specs/v0.1-v0.6-foundation.md +++ b/docs/specs/v0.1-v0.6-foundation.md @@ -691,6 +691,9 @@ SOFTWARE. случай отдельного dev-**имени** на шине. - **E2E reboot (§9.3.4):** двухфазно `just e2e` (pre → guest-reboot Lima → post); персист Settings + machine-id every-boot bind проверяются после реального ребута. `just run` = только pre (без ребута). +- **v0.2 (boot-конвейер):** `shturman.target` стал **зонтиком** фаз; критический набор v0.1 переехал в + `shturman-stage1.target` (тело юнитов без изменений, у shell `RuntimeDirectory` → tmpfiles). Splash (Stage 0) + + warmup (Stage 2) — новые; headless-render плумбинг вынесен в `shturman-render`. Детали — `docs/specs/v0.2-boot-pipeline.md`. ---