diff --git a/HANDOFF-nvidia-mirada.md b/HANDOFF-nvidia-mirada.md new file mode 100644 index 00000000..e7b8e20f --- /dev/null +++ b/HANDOFF-nvidia-mirada.md @@ -0,0 +1,27 @@ +# Handoff → agente tawasuyu (mesa/mirada/USB): correr mirada en el tester NVIDIA + +**De:** agente hammer (frente Go/kernel). **Fecha:** 2026-06-29. +**Objetivo:** un tester con GPU **NVIDIA en Windows** quiere probar el **compositor mirada** booteando un **USB live** (no WSLg — WSLg usa el compositor de Microsoft, no mirada; sólo serviría para el userland CLI). + +## ✅ Lo que YA entregué (kernel) — listo para usar +- **`recipes/linux-generic.toml`** (Linux **7.1.2** estable), bzImage 16M, sellado **`b3:fded43c0dd83c650952e437f1a89927fdec906207e5b2d4cf624bcc1a552da2f`** (en el store del hub y del worker, en `boot/bzImage`). +- Genérico (no clavado al TigerLake como `linux-metal`): **i915 + radeon + nouveau** built-in + simpledrm fallback, **squashfs+overlay** (live USB), storage/USB/input/EFI/VFAT/ISO9660 amplios, monolítico (sin módulos). +- Da **`/dev/dri/cardN` con KMS por nouveau** → es lo que mirada necesita del kernel. +- **amdgpu (AMD moderno) excluido en v1** (ICE de gcc en 7.1; ver memoria etapa-metal-usb). radeon (AMD viejo) sí. Si algún tester futuro tiene AMD reciente → v2. + +## 🔧 Tareas para vos (el kernel es necesario pero NO suficiente para NVIDIA) +1. **MESA con nouveau/NVK** (lo bloqueante). La `recipes/mesa.toml` actual es **iris-only** (`-Dgallium-drivers=iris`, sin LLVM). mirada (wgpu) necesita en NVIDIA: + - **Vulkan NVK** (`-Dvulkan-drivers=nouveau`) — lo que wgpu prefiere; requiere mesa reciente + probablemente LLVM/SPIR-V. + - y/o **gallium nouveau** (`-Dgallium-drivers=nouveau`) para GL (o zink sobre NVK). + - Hacé una variante `recipes/mesa-nouveau.toml` (no toques la iris-only, que es del escritorio TigerLake). Ojo: nouveau gallium suele pedir LLVM — choca con el plan "iris sin LLVM", pero acá es otra imagen. +2. **FIRMWARE nouveau** en el rootfs `/lib/firmware/`: + - Turing+ / RTX (20xx en adelante): **GSP-RM** en `nvidia//gsp/*.bin` — **imprescindible**, sin él nouveau no hace modeset. + - Pre-Turing: blobs ctxsw en `nouveau/`. + - **Pedile al tester el modelo exacto de GPU** para elegir el `` correcto (y confirmar que nouveau lo soporta). +3. **USB live**: armá la imagen (squashfs+overlay, boot EFI-stub) con el bzImage `linux-generic` + rootfs con mirada + mesa-nouveau + firmware. Base: `scripts/metal-iso.sh` / `scripts/metal-usb-sdboot.sh` (adaptar de `linux-metal` → `linux-generic`; el cmdline del generic NO viene horneado, ponelo en el bootloader/EFI-stub). +4. **Validación**: probá mirada primero en **VM con virtio-gpu** (`DRM_VIRTIO_GPU` ya está =y en el kernel) para aislar el compositor; recién después en el metal NVIDIA. + +## Cómo sacar el bzImage del store +`hammer --store ./store hydrate b3:fded43c0… ` (o copialo de `store/fded43c0…-linux-generic/boot/bzImage`). Reconstruible: `hammer build recipes/linux-generic.toml` (deps flex/bison/m4/openssl/elfutils + zig-0.13, ya en el worker). + +Dudas del kernel (drivers a agregar, cmdline, otra config) → pedímelas y reviso `linux-generic.toml`.