From c7d1d9cf5ce02a136f588fcf75b815261cbac012 Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 10 Jul 2026 21:10:39 -0400 Subject: [PATCH] =?UTF-8?q?arranque-grafo:=20paso=204=20(cero-parpadeo)=20?= =?UTF-8?q?cerrado=20en=20el=20ADR=200010=20(pasos=201=E2=80=935=20?= =?UTF-8?q?=E2=9C=85)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Validado por captura de framebuffer OVMF-GOP: el kernel metal con deferred- takeover + quiet no toca el framebuffer (Δ=0). Falta sólo el seamless i915 y el metal real. Co-Authored-By: Claude Opus 4.8 --- docs/adr/0010-arranque-grafo-mirada.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/docs/adr/0010-arranque-grafo-mirada.md b/docs/adr/0010-arranque-grafo-mirada.md index 88fe5a85..18bb582d 100644 --- a/docs/adr/0010-arranque-grafo-mirada.md +++ b/docs/adr/0010-arranque-grafo-mirada.md @@ -1,8 +1,8 @@ # ADR 0010 — Arranque por grafo: el menú de boot como navegación del grafo de estados (mirada + hammer) -**Estado:** aceptado; lado hammer implementado (pasos 1–3, 5 ✅; paso 2 ✅ vía pivote a ext4; paso 4 -—cero-parpadeo— pendiente). Instalador live EFI validado 2-stage en OVMF ✅. Falta metal real y el lado -mirada. **Fecha:** 2026-07-06 (impl. EFI-stub 2026-07-10). +**Estado:** aceptado; lado hammer implementado (pasos 1–5 ✅). Instalador live EFI validado 2-stage en +OVMF ✅; cero-parpadeo validado por captura de framebuffer ✅ (salvo el *seamless* i915, metal-only). +Falta metal real y el lado mirada. **Fecha:** 2026-07-06 (impl. EFI-stub + cero-parpadeo 2026-07-10). **Contexto cruzado:** hammer (arranque/kernel/generaciones) + tawasuyu/mirada (render). El espejo de este ADR para el lado mirada vive en `tawasuyu/HANDOFF-arranque-grafo.md`. @@ -117,7 +117,14 @@ muerto antes del takeover). (no-op si ya vivo · rollback paso a paso a un ancestro · nodo `recovery` sintético · error honesto ante un "redo" hacia una generación huérfana). Validado e2e por el CLI. **mirada ya puede maquetar contra el grafo real.** -4. **Afinar kernel/cmdline** para el handoff sin costura (punto cero-parpadeo). +4. **Afinar kernel/cmdline para el cero-parpadeo** ✅ (2026-07-10): `linux-metal` con + `CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y` + cmdline horneada `quiet loglevel=3 + vt.global_cursor_default=0` (sin `earlyprintk/ignore_loglevel`) + ttyS0 último (la shell de arje-zero + sale por serial, no pinta tty0). **Validado por captura de framebuffer en OVMF-GOP** + (`scripts/efi-flicker-test.sh`): el kernel NO toca el FB (Δ media de brillo = 0.000 entre handoff y + post-boot; el viejo saltaba ~3→~11) ⇒ el contenido de la firmware sobrevive intacto hasta que mirada + abra el DRM. Los harness EFI pasan a marcadores userspace tee'ados a `/dev/ttyS0` (sobreviven `quiet`). + El *seamless* i915 (firmware GOP → simplefb → i915 sin re-modeset) sólo se valida en metal Intel real. 5. **install-to-disk EFI** ✅ (2026-07-10): el bzImage `linux-metal` ES el binario EFI (`\EFI\BOOT\BOOTX64.EFI`, ruta fallback removible, sin GRUB ni systemd-boot). Como no hay LoadOptions en esa ruta, el `CONFIG_CMDLINE` horneado (`… initrd=/initramfs.cpio.gz rdinit=/init`) activa el