D-Link G624T

La batalla librada por los proveedores de acceso a internet, ya sea por cable o por ADSL, para conseguir clientes propicio que ofreciesen routers gratis para “ayudarnos” a decidir que oferta era la que mas nos interesaba. Esto ha provocado que nos encontremos con routers abandonados en cajones, a los cuales no les sacamos ningún provecho. Sustituyendo el firmware original por OpenWrt podemos resucitar estos viejos equipos y hacer que vuelvan a ser útiles.

La sustitución del firmware no es una tarea sencilla y por tanto no es recomendable que sea realizada por principiantes ya que podría dejar el router inservible.

Vamos a ver como instalar OpenWrt en un viejo router D-Link G624T.

Este router lleva un microprocesador AR7 de Texas Instruments que usa el bootloader ADAM2. Durante el inicio, el bootloader espera durante unos segundos una petición FTP, sino recibe ninguna petición el router se inicia de forma normal.

IP del bootloader.

Antes de realizar ningún cambio debemos averiguar la dirección IP del bootloader, ya que no tiene porque ser la misma que la que usamos para conectarnos al interfaz web del router, para ello nos conectaremos por telnet:

Desde windows : Inicio->Ejecutar->telnet 192.168.1.1 (suponiendo que esta sea la IP del router), el usuario y password son los mismo que los de la interface web.

# cat /proc/ticfg/env | grep my_ipaddress (Para ver la IP del bootloader)
# echo "my_ipaddress 192.168.1.199" > /proc/sys/dev/adam2/environment  (Esto sólo es necesario si queremos cambiar la IP del bootloader a 192.168.1.199)
# exit (para salir de telnet)

La memoria flash esta dividida en varias particiones, el firmware original usa estas:

Nombre Inicio Fin Tamaño Uso
mtd2 0x90000000 0x90010000 64 Kb Bootloader
mtd1 0x90010000 0x90091000 ~516 Kb Kernel
mtd0 0x90091000 0x903f0000 3452 KB Root filesystem
mtd3 0x903f0000 0x90400000 64 Kb Configuración

Además existe otra partición virtual que engloba la mtd0 y mtd1:

Nombre Inicio Fin Tamaño Uso
mtd4 0x90010090 0x903f0000 3968 Kb Kernel + FS

La partición mtd2 nunca debe ser modificada ya que contiene el bootloader, si se corrompiese, sería necesario volver a cargarlo por medio de JTAG. La partición mtd3 contiene opciones de configuración del bootloader y del firmware original, tampoco se debe realizar ninguna modificación en esta partición.

 

Modificación de las partición

Para poder instalar OpenWrt es necesario modificar el direccionamiento de la partición mtd1 para que apunte a la misma zona de memoria que la mtd0 y transferir la imagen de OpenWrt.

Tenemos que volver a conectarnos al router por telnet, pero esta vez lo haremos al bootloader, para lo cual es necesario realizar los siguientes pasos.

  • Asignar una IP estática en la misma subred que la del bootloader, esta la hemos obtenido siguiendo los pasos indicados al principio de artículo.
  • Reiniciar el router.
  • Cuando el icono de “Conexión de area local” indique que tiene conexión y antes de que el bootloader finalice su proceso, conectar por telnet al puerto 21:

    Desde windows : Inicio->Ejecutar->telnet 192.168.1.199 21 (suponiendo que esta sea la IP del bootloader)

  • Cuando recibamos la confirmación de que estamos conectados tenemos que validarnos usando el usuario es “adam2” y el password es “adam2” (ambos sin las comillas).

    220 ADAM2 FTP Server ready.
  • Introducimos el nombre de usuario con el comando  USER

    USER adam2
  • El router solicitará el password

    331 Password required for adam2.
  • Introducimos el password con el comando PASS

    PASS adam2
  • Si todo ha ido bien obtenemos la confirmación de que ya estamos validados.

    230 User adam2 successfully logged in.
  • Para modificar la partición mtd1 usaremos el  comando SETENV:
    SETENV mtd1,0x90010000,0x903f0000
  • Recibimos la confirmación de que el comando se ha ejecutado correctamente.
    200 SETENV command successful
  • Nos aseguramos que la partición se ha modificado:
    GETENV mtd1
  • Una vez mas el router nos responderá con la confirmación de la correcta ejecución del comando.
    200 GETENV command successful 
  • Si la modificación se ha realizado con éxito, cerramos la sesión telnet y reiniciamos el router:
    REBOOT
  • Nos envía el mensaje de despedida y se reinicia.
    221-Thank you for using the FTP service on ADAM2. 221 Goodbye.

Instalación de OpenWrt.

Llegados a este punto sin errores, podemos proceder a instalar OpenWrt. Descargamos desde la web de OpenWrt la versión que sea compatible con el router, en este caso instalaremos la versión kamikaze 8.09.2.

Volvemos a conectarnos al bootloader siguiendo estos pasos:

  • Al igual que en la conexión anterior por telnet, el PC debe tener una IP estática en la misma subred que la del bootloader.
  • Reiniciar el router.
  • Cuando el icono de “Conexión de area local” indique que tiene conexión y antes de que el bootloader finalice su proceso, conectar por ftp:

    Desde windows : Inicio->Ejecutar->ftp 192.168.1.199 (suponiendo que esta sea la IP del bootloader).

  • Una vez conectados, nos pedirá el nombre de usuario, debemos introducir “adam2”, sin las comillas :
    Conectado a 192.168.1.199.
    220 ADAM2 FTP Server ready.
    Usuario (192.168.1.199:(none)):adam2
  • A continuación el password, es “adam2”, sin las comillas:
    331 Password required for adam2.
    Contraseña:
  • Si el usuario y password son correctos nos responderá :
    230 User adam2 successfully logged in.
  • Con el comando HELP podemos obtener una lista de los comandos válidos.
    ftp> HELP
    Los comandos se pueden abreviar.  Comandos:
    
    !               delete          literal         prompt          send
    ?               debug           ls              put             status
    append          dir             mdelete         pwd             trace
    ascii           disconnect      mdir            quit            type
    bell            get             mget            quote           user
    binary          glob            mkdir           recv            verbose
    bye             hash            mls             remotehelp
    cd              help            mput            rename
    close 
  • Cambiamos el modo de transferencia a binario:
    ftp> binary 
    
    200 Type set to I.
  • Indicamos que vamos a cargar un nuevo firmware en la memoria flash
    ftp> quote MEDIA FLSH 
    
    200 Media set to FLSH.
  • Transferimos la imagen del firmware OpenWrt al router. Si aparece un error indicando que no se encuentra el archivo, hay que copiar la imagen del firmware al directorio desde el cual se esta ejecutando la consola de windows, en este ejemplo a : C:\Documents and Settings\omega. La transferencia es lenta, no realizar ninguna operación hasta que no se obtenga algún mensaje del router.
    ftp> PUT openwrt-ar7-squashfs.bin "openwrt-ar7-squashfs.bin mtd1"
    200 Port command successful. 
    
    150 Opening BINARY mode data connection for file transfer.
    226 Transfer complete.
    ftp: 2818052 bytes enviados en 37,17 segundos 75,81 a KB/s.
  • Finalizada la transferencia solo queda reiniciar el router.
    ftp> quote REBOOT 
    221-Thank you for using the FTP service on ADAM2. 
    
    221 Goodbye.
    Conexión cerrada por el host remoto.
  • Cerramos la conexión FTP
    ftp> QUIT

Una vez que el router se haya reiniciado, será posible acceder a través del gestor web de OpenWrt que se llama LUCI, la dirección IP por defecto es 192.168.1.1, para esto es necesario cambiar la IP del PC a esta nueva subred en el caso de que sea distinta de la del bootloader.

5248897198_cb2ee15b10

 

Desbloqueo.

Si después de realizar alguna modificación en la configuración del nuevo firmware, el router se quedase bloqueado, es posible volver a recuperar el control realizando los pasos indicados para instalar OpenWrt.

De esta forma borraremos la instalación anterior y volvemos a disponer de una instalación limpia, eso sí, a cambio de perder todos los cambios realizados en la configuración.