- recipes/mesa-swrast.toml: mesa softpipe hammer-nativo (sin LLVM) para render software. - scripts/mirada-usb.sh: ensambla rootfs (dev-fs musl + hydrate mirada/seatd/libinput/ mesa + overlay Alpine llvmpipe/lavapipe/nouveau + XKB + PAM + init seatd+compositor) y empaqueta la USB con linux-generic vía systemd-boot. - docs/mirada-usb-nvidia.md: uso + estado. Validado en QEMU virtio-gpu: el COMPOSITOR arranca entero (libseat→card0→GBM+EGL+ GlesRenderer→[8/8]→escritorio, acepta clientes, dibuja la ventana del greeter). El GREETER (Vello) exige shaders float16 que llvmpipe/lavapipe NO dan ⇒ su login sólo pinta con GPU real (nouveau+firmware, v2). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.2 KiB
Imagen USB de prueba de mirada (GPU ajena / NVIDIA)
Genera una USB live que arranca el compositor mirada para probarlo en hardware ajeno
(NVIDIA/AMD/lo-que-sea). Cierra la parte de imagen del HANDOFF-nvidia-mirada.md.
Armar y quemar
scripts/mirada-usb.sh # → work/hammer-mirada-usb.img (~147 MB)
sudo dd if=work/hammer-mirada-usb.img of=/dev/sdX bs=4M oflag=sync status=progress
Bootear con Secure Boot OFF. Aparece el menú de systemd-boot; ENTER arranca. La tecla e
edita la cmdline en vivo (para alternar software/hardware, ver abajo).
Qué contiene
- Kernel
linux-generic7.1.2 (nouveau/i915/radeon built-in + simpledrm fallback). - mirada ya sellado en el store:
mirada-compositor(smithay) +mirada-greeter(wgpu/Vello) +mirada-ctl. - Stack gráfico por software + nouveau (mesa 26.1.1 de Alpine, musl): llvmpipe (GL) + lavapipe
(Vulkan) +
nouveau_dri.so(GL por hardware si nouveau bindea). Másseatd,libinput,libxkbcommon, datos XKB, PAM permisivo, busybox, loader musl. /sbin/init= lanzador: monta pseudo-fs, arrancaseatd, corremirada-compositor --drm --greeter.
La receta nueva es recipes/mesa-swrast.toml (softpipe hammer-nativo, sin LLVM); el stack robusto de la
imagen viene de Alpine (deuda de soberanía: falta recipes/{llvm,mesa-llvmpipe,nvk} desde fuente).
Estado validado (QEMU virtio-gpu, software)
✅ El compositor arranca entero: libseat → /dev/dri/card0 → GBM+EGL+GlesRenderer →
[8/8] → «escritorio en marcha» → acepta clientes Wayland → dibuja la ventana del greeter.
⚠️ El greeter (login) NO termina de pintar por software. Su renderer Vello exige la capacidad
de shaders float16 (SHADER_FLOAT16_IN_FLOAT32, unpack2x16float) que llvmpipe y lavapipe NO
proveen — sólo una GPU real. Por eso el login sólo se pinta con hardware.
Los dos modos (cmdline)
- Por defecto (
mirada.sw nouveau.modeset=0) → SOFTWARE. Garantiza que el compositor se ve en la pantalla de la NVIDIA en el primer boot, sin driver ni firmware. El greeter no completa (float16). - Hardware nouveau → en el menú,
e, quitámirada.sw nouveau.modeset=0. nouveau intentará manejar la GPU y mesa usaránouveau_dri.so(GL) → el greeter con float16 real debería pintar. Requiere firmware GSP de la GPU en/lib/firmware/nvidia/<chip>/gsp/*.bin(Turing/RTX en adelante).
Falta para el greeter completo en la NVIDIA (v2)
- Modelo EXACTO de la GPU → elegir el firmware GSP correcto (imprescindible para el modeset de nouveau en Turing+) y confirmar soporte.
- Firmware nouveau en
/lib/firmware/(pasarFW_SRC=<dir>al script para hornearlo). - NVK (Vulkan nouveau) para que wgpu use Vulkan por hardware (o GL nouveau vía naga).
Validar en VM
# compositor por software (virtio-gpu); el greeter no completa (float16) — es lo esperado:
qemu-system-x86_64 -enable-kvm -m 4096 -smp 4 \
-kernel store/*-linux-generic/boot/bzImage -initrd work/metal-sdboot/initramfs.cpio.gz \
-append "console=ttyS0,115200 mirada.sw nouveau.modeset=0 rdinit=/init" \
-device virtio-gpu-pci -display none -serial stdio -no-reboot