mirada/USB: telemetría persistente en el pendrive + bump a mirada de hoy (fix musl en tawasuyu)
TELEMETRÍA (el pedido): el rootfs de la imagen es un initramfs = RAM pura y los logs iban a /run (tmpfs) ⇒ al apagar la máquina ajena no sobrevivía NADA. Ahora la imagen lleva 2da partición FAT32 MIRADALOG (512M), montada por findfs+LABEL con -o sync (un cuelgue de GPU o corte de luz no se lleva los logs). Cada arranque vuelca run-NNNN/ con: resumen (modo/GPU/driver), hardware (PCI vía sysfs, módulos, DRM, input, firmware), pantallas (status/modes por conector), dmesg ANTES y DESPUÉS de mirada, seatd, y el log del compositor+greeter con RUST_LOG=wgpu_core=debug + EGL_LOG_LEVEL=debug + LIBGL_DEBUG=verbose (para ver por qué wgpu eligió el backend y si hay float16). Shell de rescate + . FAT32 a propósito: el pendrive se lee después desde cualquier SO. metal-usb-sdboot.sh gana DATA_MB/DATA_LABEL genéricos (partición de datos opcional en la GPT). GOTCHAs verificados antes de confiar: el kernel linux-generic SÍ trae VFAT_FS=y + NLS + USB_STORAGE=y (sin eso no montaba); el busybox de Alpine NO trae el applet 00:00.0 Host bridge: Intel Corporation Tiger Lake-UP3/H35 4 cores Host Bridge/DRAM Registers (rev 01) 00:02.0 VGA compatible controller: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] (rev 01) 00:04.0 Signal processing controller: Intel Corporation TigerLake-LP Dynamic Tuning Processor Participant (rev 01) 00:07.0 PCI bridge: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #0 (rev 01) 00:08.0 System peripheral: Intel Corporation GNA Scoring Accelerator module (rev 01) 00:0a.0 Signal processing controller: Intel Corporation Tigerlake Telemetry Aggregator Driver (rev 01) 00:0d.0 USB controller: Intel Corporation Tiger Lake-LP Thunderbolt 4 USB Controller (rev 01) 00:0d.2 USB controller: Intel Corporation Tiger Lake-LP Thunderbolt 4 NHI #0 (rev 01) 00:12.0 Serial controller: Intel Corporation 500 Series Chipset Family On-Package Integrated Sensor Hub (rev 20) 00:14.0 USB controller: Intel Corporation 500 Series Chipset Family On-Package USB 3.2 Gen 2x1 (10 Gbs) xHCI Host Controller (rev 20) 00:14.2 RAM memory: Intel Corporation 500 Series Chipset Family On-Package Shared SRAM (rev 20) 00:14.3 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 20) 00:15.0 Serial bus controller: Intel Corporation 500 Series Chipset Family On-Package I2C Controller #0 (rev 20) 00:15.1 Serial bus controller: Intel Corporation 500 Series Chipset Family On-Package I2C Controller #1 (rev 20) 00:16.0 Communication controller: Intel Corporation 500 Series Chipset Family On-Package CSME HECI #1 (rev 20) 00:1c.0 PCI bridge: Intel Corporation 500 Series Chipset Family On-Package PCI Express Root Port #5 (rev 20) 00:1d.0 PCI bridge: Intel Corporation 500 Series Chipset Family On-Package PCI Express Root Port #9 (rev 20) 00:1f.0 ISA bridge: Intel Corporation 500 Series Chipset Family On-Package eSPI Controller (rev 20) 00:1f.3 Multimedia audio controller: Intel Corporation 500 Series Chipset Family On-Package High Definition Audio (HD Audio) (rev 20) 00:1f.4 SMBus: Intel Corporation 500 Series Chipset Family On-Package System Management Bus (SMBus) (rev 20) 00:1f.5 Serial bus controller: Intel Corporation 500 Series Chipset Family On-Package SPI (flash) Controller (rev 20) 39:00.0 Non-Volatile memory controller: Kingston Technology Company, Inc. NV2 NVMe SSD [SM2267XT] (DRAM-less) (rev 03) 3a:00.0 Non-Volatile memory controller: ADATA Technology Co., Ltd. IM2P33F3 NVMe SSD (DRAM-less) (rev 03) (sí findfs/blkid) ⇒ el dump de PCI lee /sys/bus/pci/devices/*/ directo; sintaxis del init validada con busybox ash (no bash). BUMP mirada: el pin era 9967b02c (18-jun) — 439 commits viejo. Ahora 9a17fefc, que incluye el fix de portabilidad a musl que hice en tawasuyu (ioctl: glibc usa c_ulong, musl c_int ⇒ las constantes DRM casteaban mal y mirada-compositor NO compilaba para musl). mirada-compositor ya selló (87ced528); greeter/ctl en curso. + scripts/kde/{metal-desktop-image,plasma-start-metal}.sh del hilo KDE (imagen de escritorio en metal). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -25,3 +25,37 @@
|
||||
`hammer --store ./store hydrate b3:fded43c0… <destino>` (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`.
|
||||
|
||||
## 📥 Telemetría persistente en el propio pendrive (2026-07-14)
|
||||
|
||||
**El problema:** el rootfs de esta imagen es un **initramfs = RAM pura**. Los logs iban a `/run` (tmpfs):
|
||||
al apagar la máquina ajena no sobrevivía **nada**. Y la GPU a probar está lejos — un viaje sin datos es
|
||||
un viaje perdido.
|
||||
|
||||
**La solución:** la imagen ahora trae una **2da partición FAT32 `MIRADALOG`** (512M, `DATA_MB` en
|
||||
`scripts/metal-usb-sdboot.sh`, que ganó soporte genérico de partición de datos). FAT32 a propósito: el
|
||||
pendrive se lee después **desde cualquier SO** (Windows/Mac/Linux) sin herramientas.
|
||||
|
||||
`/sbin/init` la monta por `findfs LABEL=MIRADALOG` con **`-o sync`** (cada escritura va al medio: un
|
||||
cuelgue duro de la GPU o un corte de luz no se lleva los logs) y vuelca todo en `run-NNNN/`
|
||||
(numerada: cada arranque/reintento tiene su carpeta):
|
||||
|
||||
| fichero | qué trae |
|
||||
|---|---|
|
||||
| `00-resumen.txt` | modo (hw/sw), cmdline, GPU+driver, DRM, si la telemetría persiste |
|
||||
| `01-hardware.txt` | uname, cpu, RAM, **PCI vía sysfs** (vendor/device/class/**driver**), módulos, /dev/dri, nouveau sysfs, input, firmware nvidia presente |
|
||||
| `02-pantallas.txt` | por conector: `status`/`modes`/`enabled` |
|
||||
| `03-dmesg-early.txt` | dmesg **antes** de mirada → si nouveau bindeó y si el firmware gp106 cargó |
|
||||
| `04-seatd.log` | seatd (DRM master / sesión) |
|
||||
| `05-mirada.log` | compositor + greeter, con `RUST_LOG=wgpu_core=debug,wgpu_hal=debug` + `EGL_LOG_LEVEL=debug` + `LIBGL_DEBUG=verbose` ⇒ **por qué wgpu eligió el backend y si hay float16** |
|
||||
| `06-dmesg-final.txt` | dmesg **después** + exit code → cuelgues/oops/reset de nouveau |
|
||||
| `07-estado-final.txt`| procesos, RAM, /dev/dri al final |
|
||||
|
||||
**GOTCHA:** el busybox de Alpine **no trae el applet `lspci`** (sí `findfs`/`blkid`). El dump de PCI se
|
||||
hace leyendo `/sys/bus/pci/devices/*/{vendor,device,class}` + `readlink driver` — más soberano igual.
|
||||
`vendor 0x10de` = NVIDIA; `class 0x0300*` = VGA.
|
||||
|
||||
**En la máquina ajena:** arranca solo. Si el compositor termina/falla, cae a un shell de rescate con la
|
||||
telemetría ya sincronizada; `relanzar` reintenta y crea un `run-NNNN` nuevo. Se puede apagar sin ceremonia.
|
||||
|
||||
**Al volver:** montar la partición `MIRADALOG` y leer `run-NNNN/`.
|
||||
|
||||
Reference in New Issue
Block a user