📶 metal: el enlace WiFi se caÃa solo y cortaba la depuración remota a mitad
Depurando la OptiPlex por SSH sobre un hotspot, la máquina desaparecÃa de la red cada
pocos minutos. No es «la WiFi anda mal»: son dos causas que se suman y ninguna deja
rastro en dmesg.
- `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. Desde fuera se ve «No
route to host» mientras la máquina se cree perfectamente conectada.
El sÃntoma engaña justo en la dirección peor: la máquina no reporta nada, asà que parece
que se colgó lo que estabas depurando.
`wifi-keep` hace ping al gateway cada 10s, que resuelve las dos a la vez — detecta la
caÃda para reasociar Y mantiene viva la entrada del cliente en la tabla del AP.
Sin esto cada sesión remota se interrumpe sola y hay que volver fÃsicamente al teclado,
que es exactamente lo que la red venÃa a evitar.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Semántico sayk'uy
Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.
1 qillqakuna · +33 −0
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@<la IP de arriba> =="
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 <gateway> <SSID> <clave> — 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 <gateway> <SSID> <clave>"; 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 <SSID> <clave>
+ WiFi que no se cae: wifi-keep <gateway> <SSID> <clave> & (reasocia sola)
---------------------------------------------------------------------------
MOTD