gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

⎇ main scripts/bitacora-arranque.sh Shell · 35 líneas · 1.9 KB Historia crudo

feat(diagnostico): el dmesg de CADA arranque en disco, que falto tres veces 6525d4e51 · sergio ·

1#!/bin/sh
2# bitacora-arranque.sh — el dmesg de CADA arranque, en disco.
3#
4# ── Por qué existe ───────────────────────────────────────────────────────────────────────────────
5# Tres veces hizo falta el log del kernel de esta máquina para diagnosticar el wifi, y las tres
6# veces el único que había era un `/dmesg.log` del 2026-10-12 escrito a mano. `hammerd` no recoge el
7# klog (es un watcher de ficheros y el diario de mutaciones), así que cuando la máquina se apaga el
8# arranque se pierde entero — y «el firmware no carga» no se puede diagnosticar sin ver qué pidió el
9# kernel y qué contestó el loader.
10#
11# Espera a que el kernel haya terminado de probar el hardware: el `.ucode` del wifi se pide a los
12# 0,49 s, pero un USB enchufado o un módulo lento aparecen más tarde, y un volcado inmediato los
13# perdería. Veinte segundos cubren un arranque normal con margen.
14#
15# Y guarda el arranque ANTERIOR: el síntoma casi siempre se compara con «antes andaba».
16set -u
17sleep 20
18mkdir -p /var/log
19[ -f /var/log/dmesg-arranque.log ] && mv -f /var/log/dmesg-arranque.log /var/log/dmesg-arranque.log.1
20{
21	echo "=== dmesg · $(date -u '+%Y-%m-%dT%H:%M:%SZ') · uptime $(cut -d. -f1 /proc/uptime 2>/dev/null)s ==="
22	dmesg 2>&1
23	echo
24	echo "=== interfaces de red (ip -br link) ==="
25	ip -br link 2>&1 || echo "(sin ip)"
26	echo
27	echo "=== lo que el loader de firmware pidió y no encontró ==="
28	dmesg 2>/dev/null | grep -iE "firmware|ucode" || echo "(nada sobre firmware: o cargó todo, o el driver no pidió)"
29	echo
30	echo "=== /lib/firmware que la raíz ofrece ==="
31	ls -1 /lib/firmware 2>&1 | head -40
32} > /var/log/dmesg-arranque.log 2>&1
33chmod 644 /var/log/dmesg-arranque.log
34# Un Ente que termina lo reinicia arje en bucle: se queda quieto después de hacer su trabajo.
35exec sleep 2147483647