Fonera Openwrt

De GALPon WiKi

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, 8.09 ó 10.03 en una Fonera. El proceso de instalación es exactamente el mismo para ambas versiones.

Este howto ha sido escrito el 15/12/2007, actualizado el 18/03/2009, 18/08/2010 y 04/01/2011. Las versiones probadas son:

  • Fonera 2200 con firmwares 0.7.1 r2 y 0.7.2 r2.
  • OpenWRT 7.09, 8.09 "Kamikaze" y 10.03 "Backfire".
  • 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-root.squashfs para 10.03 )
    • openwrt-atheros-2.6-vmlinux.lzma ( openwrt-atheros-vmlinux.lzma para 10.03 )
  • 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 a la fonera 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. Ojo, este valor cambia en la versión 10.03 ( en concreto 0x6D0000 ).

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

Carga el segundo fichero desde el servidor tftp.

fis create -l 0xXXXXXX 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 :) .

La versión 8.09 incluye una interfaz web llamada LuCI que nos permite configurar fácilmente la fonera. Sin embargo es bastante fácil configurar el sistema editando los archivos que se encuentran en /etc/config/ .

Para la versión 7.09 puede instalarse X-wrt como interfaz web de configuración.

Algo que muy probablemente tengáis que hacer será conectar el router a internet e instalar paquetes. No recomiendo utilizar LuCI para ello ya que me ha dado algún problema. Lo mejor será conectarse por ssh e instalar mediante opkg (versión 8.09) o ipkg (versión 7.09).

Necesitaremos instalar wpa_supplicant y/o la versión completa de hostapd para trabajar con cifrados más avanzados que WEP. Este paso no será necesario para la versión 10.03


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.

Actualización de OpenWRT

Una vez instalada la última versión de OpenWRT puede resultarnos interesante actualizar su firmware conservando la configuración sin tener que flashear y reconfigurar la Fonera a cada nueva versión que salga.

Este proceso ha sido probando actualizando OpenWRT de la versión 10.03 a la versión 10.03.1

Pasos detallados

Preparación

Para empezar, debemos maximizar la cantidad de RAM disponible en la Fonera. Para ello realizaremos lo siguiente:

  • Detenemos todos los servicios no imprescindibles
  • En caso de que exista, borramos /tmp/opkg-lists/
  • Vaciamos las caches con
echo 3 > /proc/sys/vm/drop_caches

Una vez el sistema esté preparado, descargamos en /tmp el fichero openwrt-atheros-root.squashfs y opcionalmente md5sums para comprobar la integridad de la imagen.

wget http://downloads.openwrt.org/backfire/10.03.1/atheros/openwrt-atheros-combined.squashfs.img 
wget http://downloads.openwrt.org/backfire/10.03.1/atheros/md5sums
md5sum -c md5sums

Actualización

La actualización se realizará con el programa sysupgrade. Los pasos a seguir serán:

  • Editar /etc/sysupgrade.conf y añadir los directorios cuyo contenido quiere reservarse (/etc/config).
  • Ejecutar
sysupgrade -v /tmp/openwrt-atheros-combined.squashfs.img
  • Se espera a que acabe. Si todo ha salido bien, la Fonera se reiniciará con los ajustes que hayamos decidido conservar.



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

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