diff --git a/scripts/cosmic/metal-desktop-image.sh b/scripts/cosmic/metal-desktop-image.sh index ef98c4fa..d47da48e 100755 --- a/scripts/cosmic/metal-desktop-image.sh +++ b/scripts/cosmic/metal-desktop-image.sh @@ -293,6 +293,37 @@ echo "== desde el laptop: ssh -i ~/.ssh/hammer-metal root@ ==" WIFI chmod 0755 "$MERGED/usr/bin/wifi-up" +# ── el enlace WiFi se caía solo y cortaba la depuración a mitad ───────────────────────────────── +# Medido el 2026-08-06 depurando la OptiPlex por SSH sobre un hotspot: la máquina desaparecía de la +# red cada pocos minutos. Dos causas que se suman, y ninguna es «la WiFi anda mal»: +# - `udhcpc -q` (el que usa wifi-up) pide la dirección UNA vez y termina: nadie renueva el lease. +# - el AP olvida a los clientes ociosos y deja de contestar ARP ⇒ «No route to host» desde fuera, +# mientras la máquina se cree perfectamente conectada. El síntoma engaña: no hay nada en dmesg. +# El ping periódico resuelve las dos a la vez — detecta la caída Y mantiene viva la entrada en el AP. +# Sin esto, cada sesión de depuración remota se interrumpe sola y hay que volver físicamente al +# teclado, que es justo lo que la red venía a evitar. +cat > "$MERGED/usr/bin/wifi-keep" <<'KEEP' +#!/bin/sh +# wifi-keep — mantiene el enlace vivo y reasocia si se cae. +export PATH=/usr/bin:/bin:/usr/sbin:/sbin +GW="$1"; SSID="$2"; PSK="$3" +[ -n "$PSK" ] || { echo "uso: wifi-keep "; exit 1; } +L=/var/log/wifi-keep.log +echo "$(date): vigilante arriba (gw=$GW ssid=$SSID)" >> $L +while :; do + if ping -c1 -W3 "$GW" >/dev/null 2>&1; then + sleep 10 + else + echo "$(date): sin respuesta del gateway — reasociando" >> $L + pkill wpa_supplicant 2>/dev/null + sleep 2 + wifi-up "$SSID" "$PSK" >> $L 2>&1 + sleep 10 + fi +done +KEEP +chmod 0755 "$MERGED/usr/bin/wifi-keep" + # ── getty en tty1: el prompt TIENE que salir por la PANTALLA ──────────────────────────────────── # Lección del 1er viaje físico de KDE, que costó un USB quemado: el CMDLINE horneado es # `console=tty0 console=ttyS0,115200 …` y el kernel hace /dev/console = la ÚLTIMA `console=` ⇒ ttyS0. @@ -382,6 +413,8 @@ cat > "$MERGED/etc/motd" <<'MOTD' GPU detectada: ls /dev/dri ; dmesg | grep -iE 'i915|drm' Logs (en DISCO, sobreviven al apagón): /var/log/cosmic/ Red y SSH: netup-wait ; ip addr (root por clave, sin password) + WiFi: wifi-up + WiFi que no se cae: wifi-keep & (reasocia sola) --------------------------------------------------------------------------- MOTD