linux-metal: cero-parpadeo — deferred-takeover + cmdline quiet (ADR 0010 paso 4)
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 <noreply@anthropic.com>
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user