mirada-usb: force_gpt en la cmdline + post-mortem del viaje NVIDIA
El firmware del tester reparo el GPT dd-eado en el POST y dejo el header primario invalido (entradas apuntadas a LBA 2016, presentes en LBA 2): Linux sin gpt en cmdline no cae al respaldo, no vio particiones y la telemetria MIRADALOG murio en RAM. Con gpt el kernel usa el respaldo. Documentado: greeter por nouveau GL validado en metal; input muerto queda abierto con el plan de evidencia para el proximo viaje.
This commit is contained in:
@@ -50,6 +50,31 @@ Pascal **no** usa GSP (eso es Turing+). La imagen hornea el firmware de acelerac
|
||||
llvmpipe/lavapipe sobre simpledrm: el **compositor** arranca seguro; el **greeter no completa**
|
||||
(los rasterizadores software no dan float16). Útil si nouveau diera problemas.
|
||||
|
||||
## Post-mortem del primer viaje (GTX 1060, 2026-07-16)
|
||||
|
||||
**Qué se vio en el metal:** booteó, el fondo animado del greeter pintó bien (⇒ nouveau GL +
|
||||
float16 VALIDADOS end-to-end), pero **sin input** (ni teclado ni mouse) y el pendrive volvió
|
||||
**sin telemetría** (partición MIRADALOG vacía).
|
||||
|
||||
**Por qué se perdió la telemetría (resuelto):** el GPT de respaldo de la imagen dd-eada queda en el
|
||||
*medio* del pendrive (al final de la imagen, no del disco) y el firmware de la máquina lo "reparó" en
|
||||
el POST: reconstruyó el respaldo al final del disco (bien) y reescribió el header primario apuntando
|
||||
las entradas a LBA 2016 **sin copiarlas ahí** (quedaron en LBA 2) ⇒ CRC inválido. Linux **no** cae al
|
||||
GPT de respaldo con el primario roto salvo `gpt` en la cmdline (`block/partitions/efi.c`, `force_gpt`)
|
||||
⇒ cero particiones ⇒ `findfs LABEL=MIRADALOG` falló ⇒ logs sólo en RAM. UEFI y Windows sí usan el
|
||||
respaldo — por eso el stick booteaba y Windows lo leía, mientras Linux no veía `sdX1/sdX2`.
|
||||
**Fix:** la cmdline por defecto ahora lleva `gpt`. Si un stick ya quedó mutilado: el header primario
|
||||
se repara apuntando `partition_entry_lba` de vuelta a 2 y recomputando su CRC (o `gdisk` menú
|
||||
recovery, opción `c` = load backup partition table + `w`).
|
||||
|
||||
**Input muerto (abierto):** nunca se validó — la validación QEMU fue `-display none`. Sospechosos, en
|
||||
orden: enumeración libinput sobre `libudev-zero` (¿0 dispositivos?), falta de nodos `/dev/input/event*`
|
||||
(el kernel generic trae usbhid/evdev built-in, debería haberlos), foco. El próximo viaje ya trae la
|
||||
evidencia: `01-hardware.txt` snapshotea `/proc/bus/input/devices` (lado kernel) y mirada ahora loguea
|
||||
cada `DeviceAdded` de libinput con nombre y capacidades (lado userspace, va al `05-mirada.log`) —
|
||||
commit en tawasuyu `mirada-compositor/src/drm_backend/input.rs`. Con telemetría persistente funcionando,
|
||||
ese par de archivos separa kernel vs udev vs foco.
|
||||
|
||||
## Pendiente / deuda
|
||||
|
||||
- **Confirmar en el metal**: el camino nouveau-GL sólo se puede validar en la 1060 real (QEMU no tiene
|
||||
|
||||
@@ -389,9 +389,15 @@ if [ "$PACKAGE" = "1" ]; then
|
||||
# sin esta partición no sobrevive ni un log al apagado — y la GPU a probar está en otra máquina, lejos.
|
||||
# El init la monta por LABEL=MIRADALOG con -o sync y vuelca ahí todo (ver /sbin/init).
|
||||
# FAT32 ⇒ el pendrive se lee después desde cualquier SO, sin herramientas.
|
||||
# `gpt` (force_gpt): la imagen dd-eada deja el GPT de respaldo en el MEDIO del disco (fin de la
|
||||
# imagen, no del pendrive) y hay firmwares UEFI que lo "reparan" en el POST — reescriben el header
|
||||
# primario apuntando las entradas a otro LBA sin copiarlas ⇒ primario INVÁLIDO. Linux, sin `gpt`,
|
||||
# NO cae al respaldo con primario roto (block/partitions/efi.c) ⇒ cero particiones ⇒ findfs no ve
|
||||
# MIRADALOG y la telemetría muere en RAM (pasó en el tester NVIDIA, 2026-07-16). Con `gpt` el kernel
|
||||
# usa el respaldo y la telemetría sobrevive incluso con el primario mutilado.
|
||||
ROOTFS="$RFS" KERNEL="$KGEN" IMG="work/hammer-mirada-usb.img" \
|
||||
DATA_MB="${DATA_MB:-512}" DATA_LABEL="MIRADALOG" \
|
||||
OPTIONS="${CMDLINE:-console=tty0 loglevel=4}" \
|
||||
OPTIONS="${CMDLINE:-console=tty0 loglevel=4 gpt}" \
|
||||
scripts/metal-usb-sdboot.sh
|
||||
echo ""
|
||||
echo "✓ imagen: work/hammer-mirada-usb.img"
|
||||
|
||||
Reference in New Issue
Block a user