Recuperando un Linksys WRT160NL con un cable DK-U5

Cuando se esta trabajando en el tema de las redes inalámbricas libres se corre siempre el riesgo de dejar “inservible” algún router en el proceso de instalarle el firmware que necesitamos para el trabajo que queramos hacer. Es un riesgo que se corre cuando se quiere instalar software libre en los router que vamos usar en la red, ya sea que usemos DD-WRT o OpenWRT o algún firmware cocinado libre corremos el riesgo de dejar nuestro router en un estado que se conoce como “Brick” o ladrillo, es decir una caja con un led parpadeante que no sirve para nada más.

Hace unos años cuando usábamos los poderosos y todo resistentes Linksys WRT54G, cuando los dejamos en ese estado solíamos usar un cable conocido como JTAG para sacarlos de ese estado, todo el procedimiento consistía en construir un cable que se soldaba en la board del Linksys y conectaba a un PC por el puerto paralelo, para poder escribir directamente en la ROM de la maquina y sacarlo de ese estado. Una buena guia para los que todavia tienen Linksys WRT54G o algun router basado en el chip Broadcom 43xx es esta: http://www.tiaowiki.com/w/Debrick_Routers_Using_JTAG_Cable

Ahora con la evolución en las redes inalambricas y la aparición de los chip Atheros y los routers basados en este chip las formas de recuperación evolucionaron un poco, ya que el firmware de los router con estos chip no carga directamente, sino que la mayoria usan un Pre-Cargador, llamado U-BOOT que es el encargado en lanzar el firmware que esta escrito en la ROM de la maquina, esto según entiendo hace que el router tenga una especie de encendido en dos pasos, primero arranca el bootloader u-boot y luego carga el firmware que hace funcionar el router ya con las diferentes prestaciones que puede prestar.

Que el router arranque de esta forma hace que su recuperación después de una falla en la instalación de un firmware o de intentarle instalar un firmware que no esta diseñado para una maquina especifica, hace que el procedimiento para repararlo sea un poco mas sencillo,  ya que a las board de la mayoría de los router actuales que soportan instalarle algun firmware libre, traen ademas un puerto serial con los pines soldados el cual podemos usar para recuperar el router. No es que los clasicos wrt54g no tuvieran puerto serial, de hecho lo tienen solo que este no podía usarse para entrar al boot-loader de la maquina, Ahora los router nuevos con atheros permiten con una simple conexion serial acceder al bootloader usando software como MiniCom, PicoCom, CuteCom (En Linux) o Putty, HiperTerminal (En Windows), esto realmente facilita el trabajo.

En mi caso especifico el router que se me daño fue un Linksys WRT160NL, es un router bastante interesante desde mi punto de vista ya que tiene un puerto USB que se puede poner en modo host para instalar varios dispositivos y viene con 32mb de ram y 8 de rom, esto en dispositivos embebidos es bastante ademas la cantidad de ram y procesador lo hacen bastante rápido a comparación de otros equipos en el mercado (Mas info aquí: http://wiki.openwrt.org/toh/linksys/wrt160nl)

Para lograr recuperar mi router, consulte las siguientes fuentes:

http://fleshandmachines.wordpress.com/2012/05/28/wrt160nl-debrick/

http://lacachimba.wordpress.com/2011/08/09/recuperando-wrt160nl-consola-serie/

El problema que tenia con esas guías es que en mi poder no tenia el convertidor de Serial a USB que mencionan en las guías anteriores, lo que me llevo a pensar que teóricamente cualquier convertidor SERIAL2USB debería servir para el proceso, después de buscar entre mis cachibaches me encontré con un viejo cable DK-U5 que era utilizando para conectar algunos celulares nokia al pc y sacar info de ellos, al conectar este cable a un Linux, me di cuenta que efectivamente creaba un dispositivo serial ese fue el primer paso para lograrlo, ahora después de una búsqueda en la red me encontré que este cable es usado para algo similar pero para dispositivos basados en ARM9, (http://buffalo.nas-central.org/wiki/Use_a_Nokia_Serial_Cable_on_an_ARM9_Linkstation) no perdía nada con probar, así que procedí a cortar mi cable y seguir las instrucciones para identificar GND , TX, RX del cable para poder conectarlo al linksys, resulto que mi DK-U5 tenia la siguiente configuración:

Tierra (GND) ——–> Cable Amarillo

TX ————–> Cable Blanco

RC ————–> Cable Verde

Al tenerlo identificado bastaba con seguir alguna de las guías encontradas para recuperar el wrt160nl, como las dos me pedían que usara Windows, decidí hacerlo en Linux, así que instale para dicho procedimiento los siguientes paquetes.

PicoCom —–> Para conectarme por serial al U-Boot del Router, el comando usado es el siguiente:

picocom /dev/ttyUSB0 –baud 115200

[Se debe tener en cuenta que antes de encender el router se debe conectar al serial y lanzar el picocom, y al prender el router tiene aproximadamente 1 o 2 segundos para presionar enter y evitar que intente cargar el firmware malo y lo deje en la consola de recuperación de u-Boot. Estando ahi, basta con escribir:

upgrade code.bin

Para que el u-Boot active el servidor TFTP y quede a la espera de mandarle el firmware bueno por TFTP]

ATFTP —> Es el cliente TFTP que me gusta para este tipo de casos. la linea utilizada para enviar el firmware por tftp es:

atftp –option “mode octet” –option “timeout 60” –verbose –trace -p -l code.bin 192.168.1.1

[Se debe tener en cuenta conectar el cable de red al puerto 1 del router, y colocarse una ip entre 192.168.1.2 y 192.168.1.253, después de subir el firmware se debe volver a la consola serial y escribir el comando “go” para que el router instale y cargue el nuevo firmware]

Después de lo anterior el router fue recuperado con éxito.

Tecnología Apropiada (Recuperando un 486)

El reto consistía en instalar una maquina (Compaq Presario 425):

486DX100,
Memoria Ram 12MB,
Disco Duro 270MB

Monitor VGA
Mouse Serial
 
Para que los niños de la escuela de la vereda de los cauchos bajos tuvieran una consola de juegos.
Después de revisar varias opciones, de intentar instalar varias distribuciones de linux, openbsd, freebsd, de buscar distros para equipos viejos, de instalar DSL, y hacer varias pruebas, llegamos a la conclusión que intentar instalar un sistema operativo contemporáneo es como dispararle a los zancudos con una escopeta.
La solución llegó cuando recordamos lo mucho que disfrutábamos con los juegos de D.O.S, y los juegos de Nintendo, especialmente el conocido como Family.
La elección entonces fue instalar FreeDOS un proyecto que le ha dado continuidad a D.O.S creando un sistema operativo que mantiene el viejo DOS vivo y con algunas cosas actuales, de hecho la documentación del proyecto es muy buena y se encuentra todo lo que se puede necesitar para poner a andar un viejo 486 y convertirlo en una consola de juegos.
La instalación es relativamente sencilla, lo que hicimos fue bajar la ISO de la pagina de FreeDOS y conectar el DiscoDuro de nuestro 486 en una maquina mas reciente que tuviera arranque por CD y listo, el proceso es muy sencillo y en menos de 30min tienes un FreeDOS instalado.
Una de las cosas mas interesante de FreeDos es que tiene soporte para red, (http://sourceforge.net/apps/mediawiki/freedos/index.php?title=Networking_FreeDOS) una de las cosas que hice fue instalarle la red para poder transferir archivos que necesitara a la maquina usando SSH y SFTP – No detallare el proceso ya que en la pagina anterior esta todo lo necesario para ponerle red a la maquina, yo use la opción de Packet Driver que es la mas sencilla de todas para poder tener red y usar la implementacion de TCP/IP llamada mTCP, existen para FreeDOS navegadores como DILLO, que permiten la carga de imágenes y visitar paginas sencillas, obviamente no tiene soporte para FLASH, JAVA entre otros, pero es útil por ejemplo para leer wikipedia entre otras paginas.
Como algunos juegos necesitan Mouse, sobre todo el emulador de Nintento (Nesticle fue el usado) utilice un driver que encontré llamado CuteMouse, con solo agregar CMOUSE.EXE en el AutoExec.bat fue suficiente.
Ahora la parte de los juegos casi todos fueron descargados de la siguiente dirección http://www.dosgamesarchive.com/ los juegos de Nintentdo los conseguí en ThePirataBay, ahora después de tener mouse, red y algunos procedimos a crear un Menú que cargara cuando arrancara la maquina para que los juegos fueran de fácil acceso y los niños de la escuela no tuvieran que utilizar comando de DOS para jugar (LINK DEL MENU 0.1ALPHA: http://pastebin.com/4S8T1ze0)
Una de las ventajas del menú es que cuando sales de un juego la maquina vuelve y queda en el menú.
Así se ven dos juegos, el primero el famoso Super Mario Bross corriendo en el emulador de NES – Nesticle, y el segundo un juego nativo para D.O.S llamado Keen que yo jugaba en los 90.
El proceso fue bastante divertido, una de las conclusiones importantes para quienes trabajamos con Linux y Software Libre, es que no siempre Linux es una solución existen otros proyectos como FreeDos, que pueden suplir ciertas necesidades, en especial si quieres tener en un 486 algunos juegos.
Creo que es importante el tema del rescate de maquinas viejas para varias funciones, se pueden usar como servidores de servicios especifico, firewalls, enrutadores usando sistemas operativos tipo UNIX, o como una consola de juegos ARCADE usando FreeDOS o una “Maquina de Escribir” con una interface para FreeDOS como OpenGEM o nano-X que explore poco pero ofrece cosas muy interesante.
Pronto todo el material descargado y la imagen del DD instalado la podrán bajar en esta misma entrada o en la pagina de http://www.vivirenlafinca.org/

Proyecto Recuperacion BCU

Proyecto Recuperando la BCU

La BCU es un sistema de control de ancho de banda propietario de una empresa que desapareció que se llamaba YDI ese sistema solo funcionaba para los equipos YDI y su red inalámbrica, me la regalaron y decidí utilizarla como un cliente liviano, para ello tuve que adaptarle un disco duro IDE y montarle ELive Linux.

El Hardware de la BCU es:

Procesador VIA de 750Mhz

256 Megas de Memoria RAM

Tarjeta de Video + Sonido + Red Integrados

Tarjeta Wireless DWL 510 con Chip Atheros (que le agrege eliminando una de red que tenia )

Sistema Operativos: Debian (ELive) es un debian Etch optimizado para maquinas de bajos recursos y trae como entorno de escritorio Enlightenment uno de los manejadores de ventanas mas livianos y agradable para trabajar que he conocido.

Propósito del Proyecto: Darle a mi hermano menor una maquina donde aprender linux y a programar cosas sencillas, posiblemente en Python y C.