Delirios de un Informático

Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003

OpenWRT en un Asus WL-520GU con sporte USB

votar
Archivado en Software con fecha 12/Jul/2009 - 8 comentarios
Ver en Bitacoras.com - Etiquetado con: , ,

Recientemente me he hecho con un router Asus WL-520GU para reemplazar al viejo Linksys WRT54GL. Lo interesante de este dispositivo es su conexión USB 2.0, que al instalarle OpenWRT (o cualquier variante) multiplica sus posibilidades permitiendo usar impresoras en red, cámaras web o dispositivos de almacenamiento masivo.

Pero, ¿porqué OpenWRT y no DD-WRT u otras distribuciones derivadas?. Porque se parece mucho a Debian: la instalación es mínima, ligera y con lo imprescindible y porque dispone de un gestor de paquetes (opkg, al más puro estilo apt-get) que permite añadir software o módulos al kernel desde un repositorio. DD-WRT proporciona firmwares preconfigurados para tener soporte USB, VPN o VoIP, pero con muchas cosas extra que no se usan para nada. Con OpenWRT puede personalizarse por completo, teniendo únicamente lo que se necesita.

El primer paso es flashear el router. El firmware adecuado es la versión con el kernel 2.4 (con el 2.6 no funciona la wifi), concretamente openwrt-brcm-2.4-squashfs.trx. El flasheo se realiza con el comando tftp:

tftp 192.168.1.1
> binary
> put openwrt-brcm-2.4-squashfs.trx

Previamente, es necesario poner el router en modo actualización, desenchufándolo y enchufándolo teniendo pulsado el botón de reseteo hasta que parpadee el led de encendido. En algunos foros sugieren utilizar la utilidad de restauración oficial de Asus, pero no logré hacerlo funcionar.

Una vez actualizado el dispositivo, es necesario establecer la contraseña. Bastará con acceder a la interfaz web con cualquier contraseña para luego cambiarla desde System » Admin Password. Esto permitirá acceder via SSH con el usuario root para poder instalar lo necesario.

El siguiente paso es instalar los módulos del kernel que dan soporte para USB y para ello debemos usar opkg (antes conocido como ipkg). Accediendo via SSH, será necesario actualizar la lista de paquetes antes de instalar los módulos:

opkg update
opkg install kmod-usb-uhci kmod-usb-ohci kmod-usb2 kmod-usb-storage kmod-fs-ext3 swap-utils

Para comprobar que funciona, basta con enchufar un pinganillo USB formateado a ext3 (la instalación de software requiere ext2/ext3 para crear enlaces) y ejecutar:

mount -t ext3 /dev/scsi/host0/bus0/target0/lun0/part1 /mnt/usb

También es necesario tener una memoria swap disponible para las aplicaciones que no tengan memoria suficiente. Por ese motivo se instaló el paquete que añade los comandos mkswap y swapon. No es necesaria una partición swap como en Linux, basta con crear un archivo vacío en el dispositivo USB con el comando dd:

dd if=/dev/zero of=swap count=1024 bs=65536

Una vez testeado el funcionamiento, ha de crearse el archivo /etc/init.d/usbdrive (para montar la partición al iniciar el sistema) y enlazándolo a /etc/rc.d/S99usbdrive. El script es el siguiente:

#!/bin/sh /etc/rc.common
START=99
STOP=40
start()
{
        echo -n "Mounting USB drive: "
        mount -t ext3 -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /mnt/usb
        mkswap /mnt/usb/swap
        swapon /mnt/usb/swap
        echo "Done."
}
stop()
{
        echo -n "Umounting USB drive:  "
        sync
        sync
        umount /dev/scsi/host0/bus0/target0/lun0/part1
        echo "Done."
}
restart()
{
        stop
        start
}

El último paso es añadir crear el archivo /bin/opkg-link como se indica en el wiki de OpenWRT y añadir las siguientes líneas a /etc/opkg.conf:

dest /mnt/usb
option force_space

Con estos pasos tendremos listo el sistema. Para instalar un paquete, será necesario utilizar opkg y opkg-link del siguiente modo:

opkg -dest usb install vim
opkg-link add vim

El segundo comando enlaza todos los archivos del paquete a los directorios de sistema para así tener todo lo necesario como si estuviera instalado en la ROM.

Antes de comentar...

Puedes escribir lo que quieras, pero por favor hazlo respetando a los demás y en relación al tema que se está tratando. Todo comentario insultante o fuera de lugar será eliminado

Está permitido utilizar las siguientes etiquetas HTML para formatear tu comentario: <a> <b> <blockquote> <i> <u>. Además también puedes utilizar estos emoticonos:

:) :( :'( :P ;) :D XD :O :S 8) :$ (A) (L) (K) |) (6) :@ +o( :|

Puedes enviar referencias a esta anotación utilizando esta dirección

Comentarios

patoroco dijo hace 136 días:

Yo aún ando con el Linksys WRT54GL que me subvencionó FON cuando molaba (me salió por 11€ portes incluidos ^^). Eso sí, no le he sacado tanto jugo como pensaba sacarlo en un principio, pero ya se sabe que el tiempo no es algo que sobre a nadie últimamente xD

David Martínez dijo hace 136 días:

Si te defiendes con un soldador, al WRT54GL es posible añadirle un lector MMC :)

David Martínez dijo hace 136 días:

Por cierto, en el wiki de OpenWRT hay cosas muy interesantes, como montar un servidor radius

“Tuneando” OpenWRT « Delirios de un Informático referenció hace 136 días:

[...] – 0 comentarios Ver en Bitacoras.com – Etiquetado con: asus, openwrt, router Como comenté en mi anterior entrada, opté por OpenWRT como firmware para mi nuevo router principalmente por su parecido con Debian: [...]

Servidor web Lighttpd con PHP en OpenWRT « Delirios de un Informático referenció hace 135 días:

[...] en Software con fecha 14/Jul/2009 – 0 comentarios Ver en Bitacoras.com Para empezar a aprovechar mi nuevo router Asus me puse a instalar un servidor web que me permitiera tener siempre disponible el software que [...]

raquel dijo hace 64 días:

Hola, estoy intentando instalar bluetooth en el asus wl 500gp, tiene instalado el OpenWrt, me descargué los paquetes kmod-bluetooth_2.4.35.4-brcm-2.4-1_mipsel.ipk, bluez-hcidump_1.42-1_mipsel.ipk, bluez-libs_3.36-6_mipsel.ipk, luez-utils_3.36-6_mipsel.ipk. Los pasé al router mediante scp, intento instalarlos con la orden/,pkg kmod-bluetooth needs 212. Es importante y estoy un poco perdida, agradecería mucho que me ayudárais, gracias.

raquel dijo hace 64 días:

quería decir:
intento instalarlos con la orden ipkg install kmod…, y me da el error: only have 0 available blocks on filesystem/,pkg kmod-bluetooth needs 212.

David Martínez dijo hace 64 días:

Hola raquel

Tuve el mismo problema. Para arreglarlo, edita el archivo /etc/opkg.conf y agrega al final lo siguiente:

option force_space

Eso evitará la comprobación del espacio yen disco ;)

Haz tu comentario

Nombre Correo electrónico Página web

Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons