miércoles, octubre 20, 2010

Cómo recuperar mi router que está inutilizado (con OpenWRT)?

Sucede a veces que la imágen que subimos al router está mala, o simplemente cometemos un error y queda la cagada con el router, este lo reiniciamos, y por más que reiniciemos, este queda con los LEDS, PWR estático, y de LAN 1 al 4 parpadeando cada ciertos segundos, lo más probable es que la única forma de revivirlo sea cargar el sistema operativo o firmware por el cable Serial, para esto tendrán que desarmar el router, y luego, conectar el cable serial a él, ejecutar en Windows, Teraterm, en linux puede ser gtkterm o muchos otros clientes, pero la idea es la siguiente, actualmente tu router se reinicia porque no puede cargar el sistema operativo:

.
No valid address in Flash. Using fixed address
: cfg1 0xf cfg2 0x7114
eth0 up
eth0
Autobooting in 1 seconds


y eso produce un bucle, lo que se debe hacer es una vez con Teraterm, GTKTerm o alternativo, el cable conectado, debes configurar el cliente a "115200 8N1", y luego conectar el cliente serial al router, abrir el puerto COM1 lo más probable, verán el mensaje anterior del reinicio automático... escriban TPL cuando aparece "Autobooting in 1 seconds", en la terminal de u-boot, o "prompt".

1.- Hagan el proceso de limpiar la memoria flash:

erase 0xbf020000 +7c0000

2.- Descarguemos la imágen por TFTP, ponemos la dirección y el nombre del archivo a descargar, por defecto la dirección IP de donde intenta descargar es 192.168.0.5, por lo que deben conectar por cable Ethernet el computador al Router y poner por dirección IP su computador a 192.168.0.5, para que tftp descargue la imágen code.bin desde su PC.

tftpboot 0x81000000 code.bin

3.- Copiemos la imágen en el sector de memoria

cp.b 0x81000000 0xbf020000 0x7c0000

4.- Bootiemos el sector donde acabamos de dejar la imágen, si en este paso no funciona, y sigues obteniendo el error de aubooting, deberás usar otro método para cargar la imágen, yo probé con Kermit, no me funcionó, cambié a TFTP y funcionó muchísimo más rápido y de hecho, funcionó!.

bootm 0xbf020000

Nota: el primer paso, donde dice +7c0000 puede variar dependiendo del tamaño de la imágen, para calcular esto, deben tomar el tamaño de la imágen en bytes, y luego transformar ese valor a HEXadecimal, de esa forma sabrán el tamaño exacto.


Cómo levantar un servidor de TFTP?

Este paso a mí, me funcionó de maravillas, es un paso muy corto, lo hice en Fedora 12, espero que tengan el programa DNSMASQ:

dnsmasq --enable-tftp --tftp-root=/code.bindirectory


Cómo hacer un cable Serial, DB9F a RS232?

La imágen lo explica todo, compren la utilería, materiales y a trabajar, o pueden comprar el cable hecho, para saber como se conectan los pines al router, deben ver la descripción que tienen para cada router, estos pines varían: TX, RX, GND, 3,3V

4 resistencias 1,5K 3,9K 4,7K 22K todas de 1/4Watt
2 transistores BC337
1 terminal DB9F






Fuentes:
http://wiki.openwrt.org/doc/hardware/serial.cable?s[]=serial&s[]=console
https://forum.openwrt.org/viewtopic.php?pid=119338#p119338
http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd#oem.installation.using.the.tftp.and.rs232.method

No hay comentarios.: