mirada-usb: modo hardware nouveau para GTX 1060 (Pascal/GP106)
- Hornea firmware nvidia/gp106 (ctxsw/acr/sec2) descomprimido a .bin (nouveau da GL 3D). - init: modo HARDWARE por defecto (WGPU_BACKEND=gl sobre gallium-nouveau, que da float16 vía unpackHalf2x16; tapa lavapipe). Pascal no tiene NVK ⇒ greeter va por GL, no Vulkan. - cmdline default = hardware; 'mirada.sw nouveau.modeset=0' = fallback software. - CHIP/FW_SRC parametrizables para otras GPUs. Regresión: el fallback software sigue levantando el compositor en la imagen final. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+20
-11
@@ -34,20 +34,29 @@ imagen viene de Alpine (deuda de soberanía: falta `recipes/{llvm,mesa-llvmpipe,
|
||||
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)
|
||||
## Target actual: GTX 1060 (Pascal / GP106)
|
||||
|
||||
- **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).
|
||||
Pascal **no** usa GSP (eso es Turing+). La imagen hornea el firmware de aceleración `nvidia/gp106/`
|
||||
(ctxsw `gr/` + `acr`/`sec2`, **descomprimido a `.bin`**) que nouveau necesita para dar **GL 3D**.
|
||||
**NVK (Vulkan) no soporta Pascal** ⇒ el greeter va por el **backend GL de wgpu sobre gallium-nouveau**
|
||||
(que da `unpackHalf2x16` = float16). Reconstruir para otra GPU: `CHIP=<gpXXX> FW_SRC=<dir> scripts/mirada-usb.sh`.
|
||||
|
||||
## Falta para el greeter completo en la NVIDIA (v2)
|
||||
## Los dos modos (cmdline, editable con `e` en systemd-boot)
|
||||
|
||||
1. **Modelo EXACTO de la GPU** → elegir el firmware GSP correcto (imprescindible para el modeset de
|
||||
nouveau en Turing+) y confirmar soporte.
|
||||
2. **Firmware nouveau** en `/lib/firmware/` (pasar `FW_SRC=<dir>` al script para hornearlo).
|
||||
3. **NVK** (Vulkan nouveau) para que wgpu use Vulkan por hardware (o GL nouveau vía naga).
|
||||
- **Por defecto (`console=tty0`)** → HARDWARE nouveau. nouveau maneja la GTX 1060 (firmware ya horneado),
|
||||
el compositor y el greeter pintan por gallium-nouveau GL. El init exporta `WGPU_BACKEND=gl` y tapa
|
||||
lavapipe para que wgpu no caiga a software.
|
||||
- **Fallback software** → en el menú, `e`, agregá **`mirada.sw nouveau.modeset=0`**. Fuerza
|
||||
llvmpipe/lavapipe sobre simpledrm: el **compositor** arranca seguro; el **greeter no completa**
|
||||
(los rasterizadores software no dan float16). Útil si nouveau diera problemas.
|
||||
|
||||
## Pendiente / deuda
|
||||
|
||||
- **Confirmar en el metal**: el camino nouveau-GL sólo se puede validar en la 1060 real (QEMU no tiene
|
||||
nouveau; el proxy virgl requiere `egl-headless`, no disponible acá). El software sí está validado.
|
||||
- **Soberanía**: el stack GL/Vulkan viene de Alpine (mesa 26 + LLVM 22). Falta
|
||||
`recipes/{llvm,mesa-llvmpipe,mesa-nouveau}` desde fuente. El firmware nouveau es un blob NVIDIA (no
|
||||
reproducible por naturaleza).
|
||||
|
||||
## Validar en VM
|
||||
|
||||
|
||||
Reference in New Issue
Block a user