scripts: tarea selfhost-verify end-to-end (correr el 4/4 in-VM en KVM)
El veredicto pleno 4/4 in-VM pide KVM + RAM holgada; el host de dev (7.6 GB, sin KVM) colgó por presión de RAM bajo TCG a los ~17 min del make de musl. Esta tarea traslada la verificación a una máquina capaz (laptop) en un solo comando. - scripts/selfhost-verify.sh: pipeline completo — stage0 → stage1 baseline → stage2 (ancla la ref of_tree) → inyecta overlay.ko/e1000.ko del kernel local al toolchain → ensambla el builder con la ref embebida → empaqueta (cpio --owner=root:root) → bootea + driver no-interactivo → veredicto. KVM auto-detect; PRESEED=hammerd para el camino barato (preseed C+arje, sólo hammerd in-VM). Cross-check entre máquinas: compara su of_tree(stage1) contra EXPECT_REF (198f209f… conocida-buena del dev). - scripts/drive-rebuild.py: driver no-interactivo parametrizado (env: BUILDER_CPIO, KERNEL, MEM, CPU, KVM, NET, DEADLINE, LOG). Bootea, espera la shell de arje-zero, manda rebuild-stage1 y sale 0 si REPRODUCIBLE / 1 si DIVERGENTE. (Versión de repo del driver ad-hoc que vivía en work/.) - scripts/boot-builder-vm.sh: añade la NIC e1000 (NET=1 por defecto) — el vendoring Rust necesita red. - runbook §8c: documenta la tarea y el muro de RAM del host de dev. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
9e3d6862ca
commit
7025f93bcd
@@ -418,11 +418,28 @@ limpio, y se promovió a `./store` (el nativo quedó en `store-native-bak`). `ar
|
||||
el cambio de bytes de arje no movió su key: la misma escotilla C.2). El builder se re-ensambló con
|
||||
ese toolchain + el `hammer` baseline + `--ref-content 198f209f…` (embebida en
|
||||
`/etc/hammer/rebuild.env`) y se repackó **`work/builder.cpio.gz`** (415 MB, 27 027 entradas,
|
||||
`--owner=root:root`). **Listo para bootear:** `scripts/boot-builder-vm.sh` (o `work/drive-rebuild.py`
|
||||
`--owner=root:root`). **Listo para bootear:** `scripts/boot-builder-vm.sh` (o `scripts/drive-rebuild.py`
|
||||
no-interactivo) → adentro `rebuild-stage1` debe reproducir **`198f209f…`** ⇒ **✓ REPRODUCIBLE**
|
||||
cerraría el auto-alojamiento **4/4** bit a bit. Bajo TCG es lento y la RAM va justa; el veredicto
|
||||
pleno gana con **KVM + más RAM** (y boot desde disco).
|
||||
|
||||
**Tarea reproducible end-to-end: `scripts/selfhost-verify.sh`.** Un solo comando hace TODO el pipeline
|
||||
(stage0 → stage1 baseline → stage2 ref → inyectar `overlay.ko`/`e1000.ko` del kernel local → ensamblar
|
||||
builder → empaquetar → bootear + driver no-interactivo → veredicto), pensado para correr en una
|
||||
máquina con **KVM + RAM holgada** (laptop):
|
||||
|
||||
```sh
|
||||
./scripts/bootstrap-devfs.sh # una vez: el lab (.dev-fs/alpine + zig)
|
||||
KVM=1 MEM=10240 ./scripts/selfhost-verify.sh
|
||||
# PRESEED=hammerd → preseed C+arje y reconstruye sólo hammerd in-VM (barato si la RAM va justa)
|
||||
```
|
||||
|
||||
Cross-check de reproducibilidad **entre máquinas**: el script compara su `of_tree(stage1)` contra
|
||||
`EXPECT_REF` (la referencia conocida-buena `198f209f…` del host de dev). Si difieren, o cambió un pin
|
||||
(toolchain/recipes/seed) o hay un no-determinismo nuevo. En el host de dev (Artix, 7.6 GB, **sin KVM**)
|
||||
el rebuild **4/4** in-VM colgó por presión de RAM bajo TCG a los ~17 min del `make` de musl — el muro
|
||||
de hardware que esta tarea traslada a un host capaz.
|
||||
|
||||
## 9. Cross-check opcional — `arje-packager`
|
||||
|
||||
arje trae su propio empaquetador (`03_ukupacha/arje/init/arje-packager`):
|
||||
|
||||
Reference in New Issue
Block a user