feat(arje): cadena DM activa — kmod virtio_gpu + carmen-dm en arje-prod
- seed arje-prod gana dos Cards antes de getty-tty1:
* kmod-gpu (OneShot): modprobe virtio_gpu — pone /dev/dri/card0
listo antes de que el compositor intente abrir DRM/KMS.
* carmen-dm (Restart): /usr/bin/mirada-compositor --greeter --drm,
con MIRADA_GREETER_BIN apuntando a /usr/bin/mirada-greeter.
- install-arje-as-init.sh gana paso 1b: build nativo (no-musl) de
mirada-compositor y mirada-greeter. GPUI/Mesa/EGL son dinámicos
contra glibc — la cadena DM no puede vivir en el binario musl
estático de arje-zero. Si el build falla por dev-libs ausentes,
se imprime la lista de paquetes Fedora que faltan y se sigue
(la instalación de arje-zero no se rompe).
- En el paso de instalación, los binarios del compositor se copian
a /usr/bin/ sólo si el build de paso 1b tuvo éxito; ldconfig
comprueba libEGL en runtime y avisa si falta.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -85,6 +85,21 @@ echo " (la PRIMERA vez tarda 10-20 minutos en una VPS de 4 GB; la salida"
|
||||
echo " de cargo va a fluir directo a esta terminal — no es un cuelgue)"
|
||||
"$SCRIPT_DIR/build-arje-initrd.sh" "$SEED" /tmp/arje-noop.cpio.gz
|
||||
rm -f /tmp/arje-noop.cpio.gz
|
||||
|
||||
# Paso 1b: compositor + greeter (target nativo, no musl — arrastran
|
||||
# Mesa/EGL/Wayland dinámicos). Si fallan, el resto del install sigue:
|
||||
# arje-zero y los shims andan sin la cadena DM.
|
||||
echo "[install-arje] paso 1b/5: compilar mirada-compositor + mirada-greeter (target nativo)"
|
||||
HOST_BIN_DIR=""
|
||||
if cargo build --release -p mirada-compositor -p mirada-greeter; then
|
||||
HOST_BIN_DIR="$REPO_DIR/target/release"
|
||||
else
|
||||
echo "[install-arje] WARN: el compositor no compiló — la cadena DM no se va a activar." >&2
|
||||
echo " Probablemente faltan dev-libs en Fedora. Instalá y reintentá:" >&2
|
||||
echo " dnf install -y mesa-libGL-devel mesa-libgbm-devel libdrm-devel \\" >&2
|
||||
echo " libxkbcommon-devel wayland-devel libinput-devel systemd-devel \\" >&2
|
||||
echo " libseat-devel" >&2
|
||||
fi
|
||||
BIN_DIR="$REPO_DIR/target/$TARGET/release"
|
||||
EX_DIR="$BIN_DIR/examples"
|
||||
|
||||
@@ -105,6 +120,23 @@ done
|
||||
# espera. Lo invoca el Card `net-up` del seed.
|
||||
install -m 0755 "$SCRIPT_DIR/arje-net-up.sh" /usr/sbin/arje-net-up
|
||||
|
||||
# Compositor + greeter, si compilaron en el paso 1b.
|
||||
if [ -n "$HOST_BIN_DIR" ]; then
|
||||
for b in mirada-compositor mirada-greeter; do
|
||||
if [ -f "$HOST_BIN_DIR/$b" ]; then
|
||||
install -m 0755 "$HOST_BIN_DIR/$b" "/usr/bin/$b"
|
||||
else
|
||||
echo "[install-arje] WARN: $HOST_BIN_DIR/$b no existe — no se instala" >&2
|
||||
fi
|
||||
done
|
||||
fi
|
||||
# Aviso de libs runtime — no son fatales para arje-zero, pero sí para
|
||||
# que el compositor pueda dibujar.
|
||||
if ! ldconfig -p 2>/dev/null | grep -q 'libEGL'; then
|
||||
echo "[install-arje] aviso: libEGL no detectada en runtime — el compositor no podrá renderear" >&2
|
||||
echo " Para activar la cadena DM: dnf install -y mesa-dri-drivers mesa-libgbm mesa-libEGL libxkbcommon libseat" >&2
|
||||
fi
|
||||
|
||||
echo "[install-arje] paso 3/5: instalar seed en /ente/seed.card.json"
|
||||
mkdir -p /ente
|
||||
# Backup del seed previo (si lo hay) — nunca sobrescribimos sin guardar.
|
||||
|
||||
Reference in New Issue
Block a user