lunes, febrero 12, 2007

RESUCITA TU WRT54GL

Desde luego, los routers Linksys WRT54Gx con firmware basado en Linux no dejan de sorprenderme y os comentaré por qué. Resulta que haciendo experimentos con diferentes firmwares para probar sus funcionalidades (Tomato, dd-wrt, Freifunk, openwrt, etc) uno de mis WRT54GL v.1.1 dejó de responder ("bricked", "un ladrillo" que le dicen los anglosajones). Probé todo lo humanamente posible para resucitar mi querido cacharro (puentear las patillas 15 y 16 de la flash, hard reset, acceso por puerto serie, fail safe mode...) pero nada, el router no respondía a los pings y todas las luces LAN se quedaron encendidas y la de POWER parpadeando (ver vídeo). Así que me di por vencido y lo arrinconé en un armario condenándolo al olvido durante meses, pensando que solo me serviría para sacar piezas de repuesto. Googleando no encontré ningún manual ni recomendaciones en los foros sobre cómo utilizar el método JTAG para este modelo concreto de router, el WRT54GL. De hecho, creí que no podría ser posible utilizar esta técnica porque el supuesto puerto JTAG que incorpora es completamente distinto a las versiones anteriores, ya que le faltan condensadores?/resistencias? junto a los pines. Pensé que el fabricante no los había incorporado para ahorrar costes de producción y "capar" el dispositivo. Sin embargo, sí existía uno de estos microcomponentes instalados en la circuiteria próxima al puerto. Esto me hizo sospechar y decidí fabricarme mi cable JTAG y empezar a cacharrear siguiendo las instrucciones que encontré en la guía de HairyDairyMaid y el wiki de OpenWrt. Y...¡tacháaaaan! ya tengo router nuevo... jejeje. ¡Este equipo es inmortal!

Bueno, os indico paso a paso las instrucciones necesarias, fotos incluidas:

1) Fabrícate un cable JTAG, solo si has utilizado el resto de los métodos para resucitar el router y no funcionan. Es muy fácil de fabricar.
2) Abre tu router y suelda los pines (estos pines son conocidos en electrónica como espadines) al puerto JTAG (el de 12 contactos)
3) Conéctalo todo (puerto paralelo y router a la toma de corriente)
4) Bájate la utilidad de HairyDairyMaid y sigue las instrucciones de su manual para cargar el controlador del puerto paralelo.
5) Ejecuta el programa wrt54g desde la línea de comandos siguiendo el siguiente orden:

a) wrt54g -erase:nvram /noemw
b) wrt54g -erase:kernel /noemw
c) wrt54g -erase:cfe /noemw
d) wrt54g -flash:cfe /noemw ... en este paso necesitas disponer de la imagen CFE correspondiente.

Si el "debricker" se congela en cualquier punto, cierra el ejecutable (ctrl-C), reinicia el router e inténtalo de nuevo.

Si todos los LEDs de los puertos LAN se quedan encendidos, ejecuta:

wrt54g -erase:nvram /noerase

Si has cargado una imagen CFE sin conocer la MAC asociada, deberás definírsela ejecutando:

insmod writemac flag=set_mac string=00:11:22:33:44:55

Una vez que CFE ha sido cargado adecuadamente ya puedes subir cualquier firmware compatible usando el método TFTP.


Enlaces relacionados:

http://www.diygadget.com/store/index.php?act=viewDoc&docId=6
http://myworld.ebay.com/avtouch/
http://www.diygadget.com/downloads/jtag/HairyDairyMaid_WRT54G_Debrick_Utility_v48.zip
http://downloads.openwrt.org/people/inh/cfe/
http://wiki.openwrt.org/OpenWrtDocs/Customizing/Hardware/JTAG_Cable
http://downloads.openwrt.org/utils/
http://ar7.wikispaces.com/JTAG
http://www.wlan-skynet.de/download/index.shtml