Archive for Julio 2008
WIFI: Como Instalar una Tarjeta SD en WRT54G Configuracion en dd-wrt y openwrt kamikaze
Si habéis actualizado a la versión v24 de dd-wrt, en las opciones de administración aparece una nueva opción referida al almacenamiento en tarjetas sd. Esta opción solo esta disponible en las versiones “generic” de dd-wrt y únicamente se puede acceder a ella realizando una modificación en el router. Mas abajo explicare como configurarlo en el firmware dd-wrt v24 y en la versión 7.09 de openwrt kamikaze.
La utilidad de este mod es de aumentar el tamaño disponible para instalar programas en el wrt54g. Lo que nos da la oportunidad de ofrecer servicios http, ftp …etc.
Antes de todo advertir que este tutorial ha sido probado en un router wrt54g v2.2 y que en otras versiones o dispositivos las soldaduras y procedimientos son diferentes.
Puntos de soldadura
Necesitaremos:
- Un cable ide para destripar.
- Una tarjeta SD de un tamaño no mas grande de 2GB ( No las soporta de mas tamaño).
- Un socket de tarjetas SD o un adaptador microSD-SD ( Opcional )
- Soldador y estaño.
Ahora sacamos 6 hilos del cable IDE y los soldamos en las siguientes ubicaciones:
NOTA: La ubicación exacta de el pin DI es en RA10 y CLK en la tercera soldadura de RP4 comenzando desde la izquierda, ambas en la parte de abajo según foto.
Una vez que hemos soldado todos los cables al router pasaremos a soldarlos a un socket SD, o bien como en mi caso a un adaptador microSD-SD, o directamente a la tarjeta de memoria. Este es el esquema:
Aseguramos las soldaduras con cera termofusible o cinta adhesiva y ya lo tenemos:
DD-WRT v24
Lo primero que hay que hacer, en el caso que queramos usar dd-wrt, es flashear el router con el firmware “generic”, seleccionaremos la opción de resetear el router ( esto es recomendable para eliminar cualquier resto de variables en la nvram que nos puedan dar problemas ).
Configurando el router
Vamos a la sección administración seleccionamos las opciones jffs2, limpiar jffs2, Dispositivo MMC y GPIO pins select en auto. Salvamos, aplicamos los cambios y reiniciamos ( es necesario seguir este orden para que dd-wrt formatee y cree un sistema de archivos ext2 en la tarjeta ).
Una vez que haya reiniciado observaremos que en la pagina de información del sistema tenemos nuestra tarjeta SD en funcionamiento mostrándonos los MB disponibles. Si esto no sucede y os aparece como tamaño MMC 2,816.00KB / 0, revisad las soldaduras o volved a repetir el proceso anterior.
Entramos en el router mediante telnet o ssh y debería de tener montada la tarjeta sd en /mmc. Lo comprobaremos con el comando df:
root@dd-wrt:~# df
Filesystem 1k-blocks Used Available Use% Mounted on
rootfs 2816 2816 0 100% /
/dev/root 2816 2816 0 100% /
/dev/mtdblock/4 64 64 0 100% /jffs
/dev/mmc/disc0/part1 118983 13 112823 0% /mmc
Solo tendremos que ejecutar ipkg con la opcion “-d mmc” para instalar programas en la tarjeta sd:
root@dd-wrt:~# ipkg -d mmc install programa
OPENWRT Kamikaze
Lo bueno de openwrt, es que es un sistema operativo muy ligero para el wrt54g, lo cual nos permite disponer de una particion jffs2 de mayor tamaño que en cualquier otro firmware.
Toda la configuración se lleva a través de archivos bajo el directorio /etc/config/ y aunque pueda resultar un poco engorroso en un principio trabajar con estos archivos, merece la pena usarlo ya que ningún otro firmware ofrece tanta libertad.
Openwrt se puede instalar a través de la típica gui de vuestro actual fimware, “Administración-Firmware upgrade”, o a través de el comando tftp. Yo lo voy a hacer con tftp porque si queréis volver a por ej. dd-wrt lo tenéis que hacer como explico a continuación:
Un kamikaze en el router
Lo primero que tenemos que hacer es activar el boot wait. Activarlo hace que el router cuando arranque, mas o menos a los tres segundos, espere durante un breve periodo de tiempo a que se le envíe por ftp un firmware para flashear.
A continuación nos bajaremos el firmware de aquí. Renombramos el archivo a firmware.bin, nos colocamos con una terminal en el directorio del firmware y hacemos:
# apt-get install tftp // Instalamos tftp
Ahora conectamos únicamente el router a nuestro pc y nos asignamos una ip que pueda ver el bootloader ( la IP que se asigna el bootloader es 192.168.1.1 ):
# ifconfig eth0 192.168.1.2 netmask 255.255.255.0
Ponemos en marcha tftp:
$ tftp 192.168.1.1 // Apuntamos al router.
tftp> binary
tftp> put firmware.bin // Lo escribimos en la terminal y no pulsamos enter todavía.
Solo nos queda encender el router y mas o menos a los tres segundos pulsamos enter. Si vemos que nos pone en la terminal “Sent 1839136 bytes in 3.0 seconds” esperamos a que se reinicie el router y ya lo tenemos. En el caso de que te salga “Timeout” ten paciencia y repite el proceso.
La configuración con que viene openwrt es la básica con un cliente dhcp en la wan y con un demonio dhcp escuchando en la lan, con lo que no tendréis problemas para acceder a internet.
Aconsejo, una vez instalado el firmware y antes de editar configuraciones, limpiar la nvram del router para no tener problemas:
$ telnet 192.168.1.1
root@OpenWrt:/# cd /tmp
root@OpenWrt:/# wget http://downloads.openwrt.org/people/kaloz/nvram-clean.sh
root@OpenWrt:/# chmod a+x /tmp/nvram-clean.sh
root@OpenWrt:/# /tmp/nvram-clean.sh
Accediendo a la tarjeta SD
Para que openwrt nos monte la tarjeta, hacemos:
$ telnet 192.168.1.1
root@OpenWrt:/# ipkg update // Actualizamos la lista de programas.
root@OpenWrt:/# ipkg install kmod-fs-ext2
root@OpenWrt:/# ipkg install kmod-broadcom-mmcEn el ultimo comando, hemos instalado el modulo propietario para que el wrt54g pueda trabajar con la tarjeta sd. Este modulo es inestable y tendremos problemas con el. Para arreglar esto, instalaremos uno optimizado para la versión de nuestro router:
root@OpenWrt:/# rmmod mmc
root@OpenWrt:/# cd /tmp
root@OpenWrt:/# wget http://programmingstuff.free.fr/files/openwrt/whiterussian/mmc/1_3_3/gpio5/mmc.o
root@OpenWrt:/# mv mmc.o /lib/modules/2.4.34/
root@OpenWrt:/# insmod mmc
root@OpenWrt:/# dmesg // Visualizamos el log del sistema y no debería de aparecernos ningún log de error.
root@OpenWrt:/# ipkg install e2fsprogs // Instalamos las herramientas para trabajar con particiones ext.
root@OpenWrt:/# mkfs.ext2 /dev/mmc/disc0/part1 // Formateamos la partición de la tarjeta ( Tarda unos minutos en hacerlo ).
Llegados a este punto se pueden hacer varias cosas:
Copiar / a la tarjeta sd y arrancar desde ella: tutorial.
O bien usar la tarjeta como medio de instalación de programas para así no estar limitados por la memoria flash del router, que a continuación explico como hacerlo:
root@OpenWrt:/# mkdir -p /mnt/sd
root@OpenWrt:/# touch /etc/init.d/externalmount
root@OpenWrt:/# vi /etc/init.d/externalmountY añadimos la linea:
mount -t ext2 /dev/mmc/disc0/part1 /mnt/sd
root@OpenWrt:/# ln -s /etc/init.d/externalmount /etc/rc.d/S60externalmount
root@OpenWrt:/# chmod +x /etc/init.d/externalmount
root@OpenWrt:/# vi /etc/ipkg.conf // Configuramos ipkg añadiendo la siguiente linea.dest sd /mnt/sd
root@OpenWrt:/# vi /etc/profile // Editamos /etc/profile para ajustar las rutas.
Cambiamos:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin( lo siento por el tamaño de la fuente pero era la única manera de que el código saliera entero en esta plantilla de wordpress
, si ves la siguiente linea cortada selecciona esa linea hasta el borde derecho de la ventana, solo tenéis que hacer un copy-paste )
Por:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/mnt/sd/bin:/mnt/sd/sbin:/mnt/sd/usr/bin:/mnt/sd/usr/sbin
Y añadimos:
export LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/sd/lib:/mnt/sd/usr/lib
Reiniciamos y volvemos a logearnos por telnet:
root@OpenWrt:/# df // Debería de mostrar la partición /mnt/sd:
Filesystem 1k-blocks Used Available Use% Mounted on
none 7152 28 7124 0% /tmp
/dev/mtdblock/4 2048 716 1332 35% /jffs
mini_fo:/jffs 1216 1216 0 100% /
/dev/mmc/disc0/part1 59869 4127 52700 7% /mnt/sd
Para instalar programas en la tarjeta sd solo tenemos que usar el comando ipkg de la siguiente manera:
root@OpenWrt:/# ipkg -d sd install programa
Un poco de bricolaje
El pequeño monstruo que he montado:
Saludos.
6 comments 15 Julio, 2008







