Los sistemas Linux suelen estar presentes en muchos aparatos, y aunque hablamos de routers, mucho de esto se aplica a cámaras de seguridad, alarmas wifi, incluso a microcontroladores.
Si uno quiere programar o armar uno, ¿como nos comunicamos? ¿Cómo le instalas el firmware? Si algo falla, ¿cómo rescatas el aparato?
Por una entrada serial, o un puerto UART, etc. (ambas cosas son prácticamente lo mismo)

Si nuestro Linux tiene un problema, nos podemos conectar a una terminal para arreglarlo si queremos. De la misma manera los routers y demás aparatos tienen un puerto serial, donde podemos acceder a una terminal.

Esta funciona gracias al bootloader, que es código que corre apenas inicia el router. Ese código enciende la placa y hace alguna verificación del estado de lo más esencial, que sería la ROM y la RAM. Luego, si hay un sistema Linux, lo inicia.
Cuando Linux no puede iniciar
A veces el sistema operativo dentro del router se rompe. Quizás una actualización falló, y ahora el equipo no puede iniciar.
El bootloader más común, U-Boot, puede ayudarnos. Con una combinación de teclas (Escape, el número 4, etc.) podemos detener el boot y nos da acceso a una línea de comandos. Desde ahí se puede:
- Cargar un sistema operativo a la RAM desde la PC
- Arrancar el sistema desde ahí mismo
- Copiar el sistema a la memoria Flash
- Analizar partes de la memoria (RAM y ROM)
En el caso de la primera fotografía, bloqueé sin querer OpenWrt por una mala configuración (perdí una clave SSH privada) y no pude ingresar más, ya que había «hardenizado» el router para evitar intrusiones y los métodos de reseteo no funcionaban. Al final gracias a UART desarmé el aparato, y desde el modo serial pude resetear el router por completo.
Mucho hardware que se cree dañado puede arreglarse así 🙂