From 548f30b3ef62a324ac97cdfb5fc0b2913e98672d Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 10 Jul 2026 20:18:16 -0400 Subject: [PATCH] =?UTF-8?q?linux-metal:=20cero-parpadeo=20=E2=80=94=20defe?= =?UTF-8?q?rred-takeover=20+=20cmdline=20quiet=20(ADR=200010=20paso=204)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (fbcon no toca el framebuffer hasta el primer output ⇒ pantalla negra desde la firmware hasta que mirada abre el DRM). Cmdline horneada: quiet loglevel=3 vt.global_cursor_default=0, sin el earlyprintk=efi,keep ignore_loglevel de bringup (forzaban salida y rompían el deferred-takeover). Orden de consola: ttyS0 ÚLTIMO ⇒ /dev/console=serie ⇒ la shell de arje-zero sale por serial, no pinta tty0 (pantalla). CONFIG_LOGO ya off. Fix diagnosticado por captura de framebuffer en OVMF-GOP. Rebuild en curso. Co-Authored-By: Claude Opus 4.8 --- recipes/linux-metal.toml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/recipes/linux-metal.toml b/recipes/linux-metal.toml index 256089bb..23ac96c0 100644 --- a/recipes/linux-metal.toml +++ b/recipes/linux-metal.toml @@ -24,6 +24,15 @@ # va horneado: console=tty0 (pantalla) + initrd=/initramfs.cpio.gz (el EFI-stub lo carga de # la ESP; file.c convierte '/'→'\'). En boot BIOS, GRUB provee su propio cmdline (se # antepone el embebido, inocuo) y su propio initrd ⇒ ambas ramas conviven. +# - Cero-parpadeo (ADR 0010 paso 4): FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y (fbcon NO toca el +# framebuffer hasta el primer output ⇒ pantalla negra desde la firmware hasta que mirada +# abre el DRM master) + cmdline `quiet loglevel=3 vt.global_cursor_default=0` (sin texto de +# boot ni cursor). Se quitó el `earlyprintk=efi,keep ignore_loglevel` de bringup (forzaba +# salida sobre el FB gráfico, rompía el deferred-takeover). CONFIG_LOGO ya estaba off. +# ORDEN DE CONSOLA: ttyS0 va ÚLTIMO ⇒ /dev/console = serie ⇒ la shell/getty de arje-zero +# sale por el serial, NO por tty0 (pantalla) — si tty0 fuera /dev/console, arje pintaría el +# prompt sobre el FB gráfico y rompería el cero-parpadeo. tty0 queda registrado pero mudo. +# Diagnosticado por captura de framebuffer en OVMF-GOP (2026-07-10). # # Conserva TODO lo que hammer necesita (de linux.toml): E1000/OVERLAY_FS(+subfeatures)/USER_NS/ # NAMESPACES/FANOTIFY/VIRTIO* ⇒ esta misma imagen sigue booteando en QEMU (para poder testear el boot @@ -69,6 +78,7 @@ scripts/config -d MODULE_SIG -d MODULE_SIG_ALL -d DEBUG_INFO_BTF -d DEBUG_INFO - -e DRM -e DRM_SIMPLEDRM -e SYSFB_SIMPLEFB -e FB -e FB_EFI \ -e DRM_I915 -e DRM_FBDEV_EMULATION \ -e FRAMEBUFFER_CONSOLE -e FRAMEBUFFER_CONSOLE_DETECT_PRIMARY \ + -e FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER \ -e EFI -e EFI_STUB -e EFI_PARTITION -e EFIVAR_FS -e CMDLINE_BOOL \ -e VFAT_FS -e FAT_FS -e MSDOS_FS -e NLS_CODEPAGE_437 -e NLS_ISO8859_1 -e NLS_UTF8 \ -e ISO9660_FS -e JOLIET \ @@ -81,7 +91,7 @@ scripts/config -d MODULE_SIG -d MODULE_SIG_ALL -d DEBUG_INFO_BTF -d DEBUG_INFO - -d SOUND -d SND -d MEDIA_SUPPORT -d INFINIBAND -d BT -d NFC -d CAN \ -d WATCHDOG -d THUNDERBOLT -d FIREWIRE -d DEBUG_WX \ -d XFS_FS -d BTRFS_FS -d F2FS_FS -d JFS_FS -d REISERFS_FS -d GFS2_FS -d NTFS3_FS && \ -scripts/config --set-str CMDLINE "console=ttyS0,115200 console=tty0 earlyprintk=efi,keep ignore_loglevel efi=novamap initrd=/initramfs.cpio.gz rdinit=/init" && \ +scripts/config --set-str CMDLINE "console=tty0 console=ttyS0,115200 quiet loglevel=3 vt.global_cursor_default=0 efi=novamap initrd=/initramfs.cpio.gz rdinit=/init" && \ make ARCH=x86_64 olddefconfig """ compile = "make ARCH=x86_64 CC=gcc HOSTCC=gcc -j\"$(nproc)\" bzImage"