arranque-grafo: diagnóstico preciso del cero-parpadeo (ADR 0010 paso 4)
Evidencia por captura de framebuffer en OVMF-GOP: el kernel metal pinta todo el log de boot sobre el FB gráfico (simpledrm 160x50). Quitar console=tty0 no alcanza (VT_CONSOLE=y auto-registra); quiet/loglevel por LoadOptions no frena (fbcon redibuja el ring buffer + ignore_loglevel horneado fuerza salida). Fix identificado (requiere rebuild del kernel metal, cambia hash firmado): CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y + cmdline horneada quiet loglevel=3 vt.global_cursor_default=0 sin earlyprintk/ignore_loglevel (CONFIG_LOGO ya off). Seamless i915 sólo validable en metal Intel real. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
1 archivos · +13 −3
diff --git a/docs/adr/0010-arranque-grafo-mirada.md b/docs/adr/0010-arranque-grafo-mirada.md
index 8f224725..88fe5a85 100644
--- a/docs/adr/0010-arranque-grafo-mirada.md
+++ b/docs/adr/0010-arranque-grafo-mirada.md
@@ -77,9 +77,19 @@ Un solo modo de video desde la firmware hasta el compositor:
1. Firmware GOP framebuffer → **`SYSFB_SIMPLEFB`** toma ese mismo FB → **i915 hace *seamless
takeover*** sin cambio de modo. (El kernel ya tiene los tres bits `=y`.)
-2. Cmdline **`quiet loglevel=0`** + sin texto de fbcon ni cursor (`vt.global_cursor_default=0`), sin
- getty en el VT gráfico durante el arranque. **Ajuste pendiente:** hoy `FRAMEBUFFER_CONSOLE=y`
- puede pintar texto encima; afinar cmdline/config del kernel.
+2. Sin texto de fbcon ni cursor durante el arranque, sin getty en el VT gráfico. **Diagnóstico
+ preciso (2026-07-10, evidencia por captura de framebuffer en OVMF-GOP, `scripts/`):** hoy el kernel
+ metal pinta TODO el log de boot sobre el framebuffer gráfico (simpledrm "switching to colour frame
+ buffer device 160x50" + decenas de líneas). Causa: `CONFIG_VT_CONSOLE=y` registra el VT como consola
+ automáticamente (quitar `console=tty0` NO alcanza — probado), y `quiet loglevel=0` por LoadOptions NO
+ lo frena (fbcon redibuja el ring buffer al tomar el FB a ~0.6s; además el `ignore_loglevel earlyprintk`
+ HORNEADO en `CONFIG_CMDLINE` fuerza la salida). **Fix (requiere rebuild del kernel metal, cambia el
+ hash firmado):** (a) `CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y` — fbcon no toca el FB hasta el
+ primer output ⇒ queda negro; (b) cmdline horneada → quitar `earlyprintk=efi,keep ignore_loglevel`,
+ añadir `quiet loglevel=3 vt.global_cursor_default=0`; (c) `CONFIG_LOGO` ya está off ✓. GOTCHA de
+ validación: con `quiet` los marcadores serie kernel-side desaparecen ⇒ los harness EFI deben apoyarse
+ en los marcadores userspace tee'ados a `/dev/ttyS0` (que sobreviven `quiet`). El *seamless* i915 (1)
+ sólo se valida en metal Intel real (OVMF no trae i915).
3. **mirada abre el DRM master directo** y lo sostiene desde el menú hasta el escritorio — nunca
suelta, nunca re-modeset.