From d724db65560cd626da90e7ad66c4ee714d85b3c8 Mon Sep 17 00:00:00 2001 From: sergio Date: Mon, 20 Jul 2026 12:22:07 -0400 Subject: [PATCH] =?UTF-8?q?kde/qemu:=20-vga=20none=20=E2=80=94=20el=20escr?= =?UTF-8?q?itorio=20por=20fin=20SE=20VE=20(no=20m=C3=A1s=20TianoCore=20con?= =?UTF-8?q?gelado)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El escritorio booteaba y kwin pintaba por dentro (serial: kwin vivo), pero el scanout REAL (verificado por `screendump` del monitor QEMU → PNG) seguía congelado en el logo TianoCore. Causa: sin -vga none, QEMU añade una VGA estándar por defecto ADEMÁS del virtio-gpu-pci. OVMF pinta su GOP en la VGA estándar ⇒ el kernel la envuelve con simpledrm (card1) y ESE es el scanout que se muestra; kwin pinta en virtio-gpu (card0), otro device que no se ve. Como son devices distintos, virtio no expulsa simpledrm ⇒ pantalla clavada en el frame EFI. (Con VARS reusados el timing lo tapaba; al resetear los VARS quedó expuesto.) Fix: -vga none ⇒ virtio-gpu-pci es el único display ⇒ OVMF pinta ahí ⇒ virtio-gpu-DRM expulsa simpledrm (mismo device) ⇒ un solo card0, y el modeset de kwin toma la pantalla. Verificado por screendump: se ve el wallpaper de Plasma 6 (1592x960), no TianoCore. Herramienta nueva: -monitor unix socket en run-qemu-desktop.sh ⇒ `screendump` captura el framebuffer REAL del guest (oráculo independiente de la ventana gtk, que puede congelarse si mirada reinicia su Xwayland). Co-Authored-By: Claude Opus 4.8 (1M context) --- scripts/kde/run-qemu-desktop.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/kde/run-qemu-desktop.sh b/scripts/kde/run-qemu-desktop.sh index 140e586e..057e7eb0 100755 --- a/scripts/kde/run-qemu-desktop.sh +++ b/scripts/kde/run-qemu-desktop.sh @@ -36,11 +36,16 @@ esac QEMU_ARGS=( -machine q35 -accel kvm -cpu host -m "$MEM" -smp "$SMP" + -vga none # virtio-gpu-pci (abajo) es el ÚNICO display: sin esto QEMU añade una VGA estándar por + # defecto y OVMF pinta el GOP ahí ⇒ simpledrm (card1) muestra el framebuffer EFI y kwin + # pinta en virtio-gpu (card0, otro device que no se ve) ⇒ pantalla congelada en TianoCore. + # Con -vga none, OVMF usa virtio-gpu ⇒ virtio-gpu-DRM expulsa simpledrm ⇒ un solo output. -drive if=pflash,format=raw,unit=0,file="$OVMF_CODE",readonly=on -drive if=pflash,format=raw,unit=1,file="$VARS" -drive file="$IMG",format=raw,if=virtio "${DISPLAY_ARGS[@]}" -serial "file:$SERIAL" + -monitor "unix:${MON:-work/qemu-monitor.sock},server,nowait" -no-reboot )