mirada-usb: el overlay de mesa pisaba libudev-zero con el libudev de eudev — input muerto en el tester NVIDIA
Causa raíz del viaje 2026-07-16 (pantalla viva, teclado/mouse muertos): el apk de mesa arrastra eudev-libs y el 'cp *.so*' del overlay pisaba el libudev.so.1 de libudev-zero. Sin udevd, el libudev de eudev no expone ID_INPUT y libinput ignora TODOS los dispositivos en silencio; la GPU no lo delata porque smithay la encuentra por syspath. Reproducido y verificado A/B en QEMU (usb-kbd): eudev = 0 dispositivos; libudev-zero = 5 y Ctrl+Alt+BackSpace corta el compositor al instante. - 5c-bis: restaurar libudev-zero tras el overlay + aserción cmp (regresión = build roto) - MIRADA_DEBUG_DIR → run-NNNN del pendrive (eventos.log y panics ya no mueren en RAM) - imagen re-empaquetada con el fix + gpt en la cmdline Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -174,6 +174,22 @@ for round in 1 2 3; do
|
||||
done
|
||||
done
|
||||
|
||||
# 5c-bis) libudev = SIEMPRE el de libudev-zero. El apk de mesa arrastra `eudev-libs` y el overlay de
|
||||
# arriba (`cp *.so*`) PISA el libudev.so.1 de libudev-zero con el de eudev. Sin udevd corriendo, el
|
||||
# libudev de eudev enumera CERO dispositivos de entrada (no hay ID_INPUT sin la db de udevd) y
|
||||
# libinput los ignora EN SILENCIO ⇒ pantalla viva, teclado y mouse muertos. Es EXACTAMENTE lo que
|
||||
# pasó en el tester NVIDIA (2026-07-16); reproducido y verificado A/B en QEMU (usb-kbd: eudev = 0
|
||||
# dispositivos; libudev-zero = 5 y Ctrl+Alt+BackSpace corta el compositor). La GPU no lo delata:
|
||||
# smithay la encuentra por syspath, sin propiedades udev — por eso "grafica bien" no salva al input.
|
||||
UZ=$(resolve libudev-zero)
|
||||
[ -n "$UZ" ] || { echo "✗ libudev-zero no está en el store" >&2; exit 1; }
|
||||
echo "==> libudev.so.1 ← libudev-zero (pisa el de eudev que arrastró el apk de mesa)"
|
||||
rm -f "$RFS/usr/lib/libudev.so.1" "$RFS/usr/lib/libudev.so.1."* # el de eudev + sus versionados (.so.1.6.3)
|
||||
cp -L "$STORE/$UZ-libudev-zero/usr/lib/libudev.so.1" "$RFS/usr/lib/libudev.so.1"
|
||||
chmod 755 "$RFS/usr/lib/libudev.so.1"
|
||||
cmp -s "$STORE/$UZ-libudev-zero/usr/lib/libudev.so.1" "$RFS/usr/lib/libudev.so.1" \
|
||||
|| { echo "✗ el libudev.so.1 del rootfs NO es el de libudev-zero — input muerto garantizado" >&2; exit 1; }
|
||||
|
||||
# 5d) FIRMWARE nouveau (aceleración 3D). Pascal/Maxwell2 (GP10x/GM20x) piden los blobs firmados de
|
||||
# ctxsw (gr/) + acr/sec2 para dar GL por hardware; sin ellos nouveau da display pero NO 3D ⇒ el
|
||||
# greeter caería a software (sin float16). Turing+ (RTX) piden ADEMÁS gsp/. CHIP=gp106 para la GTX
|
||||
@@ -232,6 +248,9 @@ while [ -d "$LOG/run-$(printf %04d $N)" ]; do N=$((N+1)); done
|
||||
RUN="$LOG/run-$(printf %04d $N)"
|
||||
/bin/busybox mkdir -p "$RUN"
|
||||
echo " ## telemetría → $RUN (persistente=$TELOK)"
|
||||
# La bitácora interna del compositor (dlog → eventos.log + reportes de panic) también al pendrive:
|
||||
# sin esto caía en ~/.local/state (RAM) y un viaje sin datos es un viaje perdido.
|
||||
export MIRADA_DEBUG_DIR="$RUN"
|
||||
|
||||
snap() { # snap <fichero> <titulo> <comando…>
|
||||
local f="$RUN/$1"; shift; local t="$1"; shift
|
||||
|
||||
Reference in New Issue
Block a user