Fonera Openwrt

De GALPon WiKi

Tabla de contenidos

Instalación de OpenWRT en la Fonera

Introducción

Este mini-howto es una pequeña recopilación de información obtenida de diferentes lugares. Me servirá de recordatorio a la hora de toquetear en alguna de mis foneras y espero que ahorre tiempo a alguien más que se decida a hacer lo mismo que yo.

En este howto conseguiremos:

  • Instalar OpenWRT 7.09 "Kamikaze" en una Fonera.

Este howto ha sido escrito el 15/12/2007 y las versiones probadas son:

  • Fonera 2200 con firmwares 0.7.1 r2 y 0.7.2 r2.
  • OpenWRT 7.09 "Kamikaze".
  • En el PC, Debian SID actualizada.

La Fonera

La Fonera es el router que actualmente regala/vende FON. Es un pequeño cacharrito que como punto de acceso funciona bastante bien. Pero es una pena que el firmware de FON lo condene a una insulsa vida como AP, así que intentaremos cambiarle ese firmware a uno que le permita un mayor crecimiento espiritual.

Para cambiarle el sistema operativo existen diversos métodos, que varían dependiendo de las distintas versiones del firmware que venga instalado en la ROM de la Fonera. Un dato interesante es que la gente de FON actualiza remotamente nuestras foneras, así que puede ocurrir que tengamos un firmware más nuevo del que viene en la ROM. Si por cualquier motivo quisiésemos volver al firmware de la ROM basta con:

  • Desconectar el cable de red de la Fonera ( para evitar que se actualice remotamente)
  • Pulsar el botón de reset que se encuentra en la parte inferior durante unos 25 segundos (atentos, no hay que desenchufar la alimentación).
  • Al soltar el botón, esperar unos 5 minutos a que se reestablezca el firmware original.

El método a seguir

Como antes comentamos, existen varios métodos para vencer el candado que FON impone sobre nuestras foneras, pero me he decantado por uno en concreto debido a que funciona con todas mis foneras. Estas foneras vienen de fábrica con distintos firmwares, lógico, ya que las recibí con más de un año de diferencia.

Por lo tanto deduzco que este método funciona con la mayoría de las foneras actuales, y será el que utilice. También creo que es el más sencillo y directo de todos.

En grandes pasos, el método a seguir consistirá en:

  • Acceder al Redboot del router.
  • Flashear el OpenWRT almacenado en un servidor tftp.

Pasos detallados

Por sencillez y claridad, explicaré ahora el proceso en diversos pasos:

Preparación.

  • Instalar un servidor tftp en nuestro ordenador.
  • Descargar y colocar en el directorio raíz del servidor tftp los siguientes ficheros de la página de openwrt:
    • openwrt-atheros-2.6-root.squashfs
    • openwrt-atheros-2.6-vmlinux.lzma
  • Conectar el router con nuestro ordenador mediante un cable ethernet cruzado.
  • Como el Redboot del router va a tomar la IP 192.168.1.1 , nosotros deberemos configurar el interfaz ethernet en la misma red. A efectos de ejemplo, a partir de ahora nuestro ordenador tendrá la IP 192.168.1.2.
  • Necesitaremos un cliente telnet que envie un Ctrl+C justo después de conectarse al servidor telnet. Como el cliente telnet de toda la vida no lo hace, a ese efecto instalamos putty en el ordenador.

Acceso a Redboot.

El acceso a Redboot es extremadamente fácil, pero tenemos únicamente unos 2 segundos para realizarlo antes de que se cargue el sistema operativo. El método que yo recomiendo es este:

  • Abrimos el putty, y lo configuramos para que acceda al router utilizando el protocolo telnet utilizando el puerto 9000. No le damos a conectar aún.
  • En un terminal hacemos ping a la IP que va a tomar el router. En estos momentos debería empezar a devolvernos mensajes de error.
  • Reiniciamos el router.
  • Cuando veamos que el router responde al ping, le damos a conectar al putty.
  • El putty se conectará al router y enviará el Ctrl+C necesario para que no cargue el sistema operativo. Es probable que nos muestre algunos errores, a mí me los mostró pero eso no influyó en el proceso.
  • Al final de este paso obtenemos el siguiente prompt: Redboot>

Flasheo de OpenWRT.

Ejecutamos:

ip_address -l 192.168.1.1  -h 192.168.1.2

Esto indica a la fonera (.1) quien es el servidor tftp (.2)

load -r -b %{FREEMEMLO} openwrt-atheros-2.6-vmlinux.lzma

Tal cual, carga el fichero desde el servidor tftp.

fis init

Prepara la flash.

fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7

Flashea el kernel.

fis free

Nos devuelve un par de valores en hexadecimal. Restamos el menor al mayor, y anotamos el resultado obtenido. En mi caso coincidía exactamente con el de un tutorial, daba 0x6f0000

load -r -b %{FREEMEMLO} openwrt-atheros-2.6-root.squashfs

Carga el segundo fichero desde el servidor tftp.

fis create -l 0x6f0000 rootfs

Flashea el root filesystem en donde le digamos. Atentos, el 0x6f0000 es el resultado que hemos anotado en el paso de la resta. Ambos pasos de flasheo tardan un buen rato, el segundo puede tardar hasta 20 minutos según algunos tutoriales.

reset

Autoexplicativo. Tras unos segundos, reiniciamos el router y arrancará ya OpenWRT.

Últimos detalles

OpenWRT arrancará con la IP 192.168.1.1 y con un servidor telnet que no nos pedirá contraseña y nos dará acceso root. Debemos cambiar el password de root (con passwd, como un linux normal). Después reiniciamos el router y comprobamos que el telnet se ha desactivado y en su lugar ha activado un servidor ssh (dropbear).

Y a partir de ahora, cada uno que lo configure a su gusto :) .

Una buena idea sería instalar X-wrt, un interfaz web que nos ayudará en la configuración. He elegido no hacerlo dado que en la página de X-wrt nos indican que la versión para Kamikaze no está totalmente completada, y la configuración mediante la edición de ficheros de texto es bastante sencilla.

Algo que muy probablemente tengáis que hacer será conectar el router a internet e instalar paquetes mediante el conocido ipkg. Yo tuve que hacerlo para instalar wpa_supplicant, que no viene instalado por defecto.




X-wrt

Para instalar X-wrt será necesario añadir su repositorio a /etc/ipkg.conf.

src X-Wrt http://downloads.x-wrt.org/xwrt/kamikaze/7.09/atheros-2.6/packages

e instalar el paquete webif. Si queremos, podremos instalar alguna traducción del interfaz como webif-lang-es.




(C) José Antonio Insua (ungoliant) < ungoliant en gmail >

Contenido disponible bajo los términos de la licencia GNU GPL.

Para cualquier duda, aclaración, corrección, observación, comentario, insulto o donación de cantidades millonarias, mandarme un correo.

Herramientas personales
GALPon Web