lunes, 16 de abril de 2007

DD-WRT en La Fonera

   Ya comenté hace tiempo que quería actualizar la fonera a dd-wrt. Aunque aún se encuentra en fase beta ya va tomando más forma y hay algunas versiones que son bastante estables. Después de leer bastante los foros y hacerme un pequeño esquema de todos los pasos necesarios para realizar la actualización sin (demasiado) riesgo de romper mi fonera me decidí a intentarlo.

   Primero hay que asegurarse de que cumplimos todos los prerequisitos para poder empezar la actualización:
  • Tener acceso por ssh a la fonera
  • Servidor TFTP: En mi caso para windows.
  • Putty
  • Los binarios del firmware dd-wrt para la fonera.

  •    Nos conectamos por ssh a la fonera y lo primero que tenemos que hacer el instalar el RedBoot con el que procederemos a actulizar el firmware. Esto sólo hay que hacerlo la primera vez que instalemos el firmware, en posteriores actulizaciones nos podemos ahorrar estos pasos:
    root@OpenWrt:~# cd /tmp
    root@OpenWrt:~# wget http://fonera.info/camicia/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
    root@OpenWrt:~# mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
    root@OpenWrt:~# reboot

       Ahora la fonera se reinicia. Después de que arranque volvemos a entrar por ssh y ejecutamos:
    root@OpenWrt:~# cd /tmp
    root@OpenWrt:~# wget http://fonera.info/camicia/out.hex
    root@OpenWrt:~# mtd -e "RedBoot config" write out.hex "RedBoot config"
    root@OpenWrt:~# reboot

       De nuevo la fonera se va a reiniciar pero ya no arrancará más. La desenchufé y me preparé para cargar el nuevo firmware:
  • Copié los archivos root.fs y vmlinux.bin.l7 que descargué al directorio del TFTP y desactivé el firewall para no tener problemas y ejecuté el servidor.
  • Configuré la ip de mi pc a una del rango 192.168.1.xxx (en mi caso 192.168.1.11) con máscara de red 255.255.255.0.
  • Abrí un cmd y ejecuté un ping indefinido ping -t 192.168.1.254. Esta es la ip en la que levanta RedBoot.
  • Desde el putty preparé una conexión por telnet al puerto 9000 de 192.168.1.254.
  • Enchufé de nuevo la fonera y en cuanto empezó a responder a los pings me conecté desde el putty.

  •    En ese momento ya tenía el prompt del RedBoot listo para flashear.
  • Configuré la ip del servidor TFTP del cual iba a obtener el firmware:
    RedBoot> ip_address -l 192.168.1.254/24 -h 192.168.1.11

  •    Y llegó el momento de la verdad, comenzó el flasheo...
    RedBoot> fis init
    RedBoot> load -r -v -b 0x80041000 root.fs
    RedBoot> fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs
    RedBoot> load -r -v -b 0x80041000 vmlinux.bin.l7
    RedBoot> fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7
    RedBoot> fis create -f 0xA83D0000 -l 0x00010000 -n nvram
    RedBoot> reset

       Aparentemente todo funcionó correctamente. Sólo hay que tener paciencia puesto que el segundo paso tardó más de 10 minutos y en pantalla no aparece ninguna información del progreso.

       Cuando terminó la fonera se reinició, obtuvo ip por dhcp y creó la señal wifi dd-wrt. Me conecté a la ip asignada y este es el resultado final.


       Esto lo hice hace ya algún tiempo y he probado en total 7 u 8 versiones distintas del firmware. Como se puede ver en la web de descargas cada 3 ó 4 días de media aparece una versión nueva, por lo que hay que probar si la configuración de red que quieres crear funciona bien con esa versión. Ahora mismo me estoy pegando con la configuración de la fonera en modo cliente wifi y también con wds. Me ha funcionado una vez (justo la primera y sin mirar tutoriales ni nada parecido) pero ahora no soy capaz de repetirlo. Tengo que seguir probando a ver si consigo enlazarla correctamente a mi linksys.

    10 comentarios:

    Dani dijo...

    Gracias por el tutorial!!! si puedes corrige una de las líneas donde pones:
    ip_address -l 192.168.1.254 -h 192.168.1.11/24
    debe de ser:
    ip_address -l 192.168.1.254/24 -h 192.168.1.11

    me ha molado mucho el ver la nueva interfaz y todas las posibilidades que ofrece dd-wrt
    Saludicos

    Iván dijo...

    Hola Dani,

    me alegro de que te haya gustado el tutorial. Gracias por la anotación, ya lo he corregido.

    La verdad es que este firmware está genial. Tengo pendiente terminar de hacer unas pruebas y poner algun post con cosas chulas que se pueden hacer con este firmware y la fonera, como por ejemplo el modo "Wireless Bridge Client".

    Saludos, Iván.

    Anónimo dijo...

    hola Ivan, te felicito por el blog. Te voy a hacer una pregunta ya q demostras idoneidad en el tema. Tengo ganas de comprarme un WRT54GL y quiero instalar el mejor firm p/ este router.. ahora bien, q version del WRT54GL debo comprar, ya q mencionas q hay algunos q tienen poca capacidad.. muchas gracias!

    Iván dijo...

    Hola Anónimo,

    pues la verdad es que en los distintos modelos no estoy muy puesto. El mío es WRT54GL v1.1 y estoy realmente encantado con él. Si quieres instalarle dd-wrt deberías mirar esta entrada que puse hace tiempo.
    Además, aquí encuentras una tabla con todos los modelos de routers en los que se puede instalar dd-wrt y las características hardware de cada uno.

    Espero que te sea útil.

    Muchas gracias por el comentario.

    Saludos, Iván.

    Anónimo dijo...

    gracias por la respuesta anterior.. no tengo mucha idea de hard, por lo tanto te hago la ste pregunta, si tendrias q elegir 3 routers [url=http://www.dd-wrt.com/wiki/index.php/Supported_Devices#Box_based_Routers]de la lista q me pusiste[/url] , cuales elegirias..

    ordenamelo de mejor a peor.. gracias

    Iván dijo...

    Ufff Franco, la verdad es que me lo pones muy difícil porque de esa lista sólo conozco el linksys que yo tengo y la fonera. Además, supongo que habrá modelos antiguos y algunos ya no se fabricarán.
    - De los Linksys creo que el WRT54GS está muy bien porque hay versión de 32 MB de RAM y 8 de Flash.
    - Sino, el WRT54GL que tengo yo también es bueno.
    - Otra marca que también he oido que es buena es Buffalo.

    Mira en tu ciudad a ver cual encuentras y con el modelo exacto mira en la tabla a ver si es o no compatible con dd-wrt. Luego, como ya dije en el post, lee con mucho cuidado el wiki para asegurarte de que utilizas la versión correcta del firmware. El resto, coser y cantar.

    Saludos, Iván.

    Anónimo dijo...

    Sobre el espacio si siempre tiene un ordenador encendido o dos :P el espacio no te será problemas.

    Puedes compartir una carpeta por samba y usarla como almacenamiento para tu router.

    Iván dijo...

    Hola Ceritium,

    como dices, no hay ningún problema en compartir una carpeta en una máquina windows y montarla en la fonera. Así amplías el espacio hasta el infinito...

    Saludos, Iván.

    Jose Luis Lopez dijo...

    Una pregunta, tengo por ahí una fonera, ¿merece la pena meterle el dd-wrt? ¿para que podria usarla? (sin soldar)

    Iván dijo...

    Hola Jose Luis Lopez,

    pues alguna de las cosas que puedes hacer son:
    - Usarla como punto de acceso wifi en el caso de que tu router no sea wifi. Por ejemplo, yo la he configurado así para mis padres.
    - Usarla como "wireless client bridge". Así lo que consigues es ampliar la cobertura de tu red wifi. Esta opción también te puede servir para "dar" wifi a algo que no lo tiene. Por ejemplo, la puedes usar para conectarla a una xbox360 por cable ethernet y luego por la fonera se conectaría a tu router wifi para salir a internet. Así te ahorras los 50-60€ del adaptador wifi.
    - Y muchas más opciones. El firmware es muy completo...

    Si finalmente te decides, revisa con atención el modelo de fonera que tienes porque este tutorial es para las primeras que salieron. Si tienes una de las segundas no te servirá.

    Saludos, Iván.

    Publicar un comentario