Como agregarle memoria al router inalambrico?
Este proyecto es la base de un proyecto anterior que se llama W:E:P:C (Historia y contrato) las siglas obedecen a Wireless.Embedded.Portable.Community (Splash screen del 2004 firmware EWRT). La idea nacio en un taller que se realizo en Estrasburgo bajo el nombre de OpenSourceCity, propuse usar un Access Point para la creacion de tuneles entre ciudades emplazandolos en callejones sin salida de las ciudades a conectar. Al entrar en el rango de alguno de estos "HotSpots" se estara comunicando con la gente que esta en el rango de cobertura de otro A.P instalado en otra latitud/longitud. Como siempre, mi propuesta consistia en conectar al menos via IRC los colegas de -MW- (MedellinWireless) con gente en Estrasburgo que monta la red libre
Info tecnica
Este documento se basa en lo que esta en estas 3 páginas:
http://www.the-mesh.org/tiki-index.php?page=LinksysSDCard#Starting_off
http://wiki.openwrt.org/OpenWrtDocs/Customizing/Hardware/MMC
http://wiki.openwrt.org/PackagesOnExternalMediaHowTo
De alli sale la información básica, le recomiendo las visite ya que las que yo realize fue completamente basado en ellas, las fotos que realice las hice mas por documentar el proceso que por tener la calidad y precisión que logran las del link de the-mesh.
lo que espero documentar aquí en altred sera el uso de la modificación bajo Freifunk (actualmente la modificación la uso bajo el firmware de Freifunk pero creo que me pasare al OpenWrt ya que me he acostumbrado mas a este último. Pero, primero lo primero!:
Una imagen de la distribucion de los conectores en una memoria SD:
Pin 1 - CS, Chip select |
GPIO 7 |
Pin 2 - DI, Data in |
GPIO2 |
Pin 3 - VSS, Ground |
GND |
Pin 4 - VDD, 3.3v |
3.3v |
Pin 5 - CLK, Clock |
GPIO3 |
Pin 6 - VSS2, Ground |
GND |
Pin 7 - DO, Data out |
GPIO4 |
La tabla corresponde a la distribucion de los GPIO (general purpose input/output) en el wrt54gl v1.1 (tenga en cuenta que dichos GPIOs cambian de lugar segun las versiones de los router inalambricos.
Para mapear cada uno de los conectores a usar, les recomiendo usar la ultildad gpio y asi con un multimetro asegurarnos de los puntos que usaremos. la utilidad se descarga de aca: http://downloads.openwrt.org/utils/gpio.tar.gz y se utiliza corriendo el siguiente comando (en mi caso solo la use para hacer la mediciones y no la agrege al PATH, por eso utilizo ./gpio de la siguiente manera:
while true; do ./gpio enable 1; sleep 1; ./gpio disable 1; sleep 1; done
Las siguientes imagenes describen los lugares que necesite soldar, corresponden a los diferentes GPIO (2,3,4,7) + GND (x2) + 3.3v = 7 conectores en la tarjeta SD.En la primera imagen se ven GPIO2 y GPIO3, estan justo debajo de un boton que no se para que sirve segun el manual del usuario politicamente correcto del router de linksys. En el caso del linksys modificado de ahi se controlan la entrada de datos y el reloj de funcionamiento.
Utilice 7 pines para hacer el contacto y al mismo tiempo sostener la tarjeta, y si, aplique un poquito de estaño en cada punto para estar seguro de que soportaria alguna sacudida o vibracion.
Cuando ya la tarjeta esta en su lugar y hemos instalado via ipkg install kmod-etx2 kmod-ext2 y kmod-vfat procedemos a montar el driver mmc, estamos usando uno mejorado que permite velocidades de transferencia de datos mayores a 300kb/s, dice su desarrollador que 850KB/s for WRITE and 450KB/s for READ (desacrguelo de aca: http://programmingstuff.free.fr/files/openwrt/whiterussian/mmc/1_3_4/gpio2/mmc.o )
Luego procedemos a montarlo con el siguiente comando:
insmod mmc
si todo va bien veremos algo similar a los siguiente:
root@altred:~# insmod mmc Using /lib/modules/2.4.30/mmc.o
cargado el driver! comprobamos via dmesg:
[INFO] mmc_hardware_init: initializing GPIOs [INFO] mmc_card_init: the period of a 380KHz frequency lasts 524 CPU cycles [INFO] mmc_card_init: powering card on. sending 80 CLK [INFO] mmc_card_init: 80 CLK sent in 43675 CPU cycles [INFO] mmc_card_init: resetting card (CMD0) [INFO] mmc_card_init: doing initialization loop [INFO] mmc_card_init: card inited successfully in 567 tries (17492121 CPU cycles). [INFO] mmc_init: MMC/SD Card ID: 18 49 4e 31 32 38 4d 42 02 30 04 d1 6d 00 51 c3 [INFO] Manufacturer ID : 18 [INFO] OEM/Application ID: IN [INFO] Product name : 128MB [INFO] Product revision : 0.2 [INFO] Product SN : 3004d16d [INFO] Product Date : 2005-1 [INFO] mmc_card_config: size = 122752, hardsectsize = 512, sectors = 245504 [WARN] mmc_init: hd_sizes=122752, hd[0].nr_sects=245504 [INFO] mmc_card_init: set_blocklen (CMD16) succeeded ! Partition check: mmca: p1 p2
creamos un directorio para montar en el la particion de la tarjeta SD que queremos usar:
root@altred:~# mkdir -p /mnt/sd
montamos la particion:
root@altred:~# mount /dev/mmc/disc0/part2 /mnt/sd/
vamos a la particion:
root@altred:~# cd /mnt/sd/
listamos sus contenidos:
root@altred:/mnt/sd# ls bin etc lib mnt root tmp boot gpe-ba.tar.bz.tar lost+found oldroot sbin usr dev home media proc sys var
luego comprobamos que espacio disponible tenemos:
root@altred:/mnt/sd# df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.0M 1.0M 0 100% /rom /dev/mtdblock/4 2.2M 884.0k 1.3M 39% / none 7.0M 20.0k 7.0M 0% /tmp /dev/mmc/disc0/part1 116.1M 13.0k 110.1M 0% /mnt/sd
Una vez instalada la tarjeta se deben agregar las siguientes dos lineas al env via el comando export:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/mnt/sd/bin:/mnt/sd/sbin:/mnt/sd/usr/bin:/mnt/sd/usr/sbin
export LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/sd/lib:/mnt/sd/usr/lib
Y en /etc/ipkg.conf es necesario agregar:
dest sd /mnt/sd
asi se ve mi ipkg.conf
src whiterussian http://downloads.openwrt.org/whiterussian/packages src non-free http://downloads.openwrt.org/whiterussian/packages/non-free src mab_whiterussian http://www.comnets.uni-bremen.de/~mab/openwrt/whiterussian/packages dest sd /mnt/sd dest root / dest ram /tmp
con esto nos aseguramos que los paquetes instalados en la memoria SD se puedan ejecutar normalmente. Para instalar un paquete en la memoria SD usamos la variable -d (destino) en el comando ipkg:
ipkg -d sd install lighttpd
Este seria el log de la instalacion de lighttpd:
root@altred:/mnt/sd# ipkg -d sd install lighttpd The following package were previously requested but have not been installed: lighttpd libopenssl libpcre Install them now [Y/n] ? Y Downloading http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk ... Connecting to downloads.openwrt.org[195.56.146.238]:80 libopenssl_0.9.8d-1_ 100% |****************************************************************************| 434 KB 00:00 ETA Done. Unpacking libopenssl...Done. Configuring libopenssl...Done. Downloading http://styx.commando.de/sven-ola/ipkg/packages/libpcre_5.0-3_mipsel.ipk ... Connecting to styx.commando.de[212.91.225.42]:80 libpcre_5.0-3_mipsel 100% |****************************************************************************| 29084 00:00 ETA Done. Unpacking libpcre...Done. Configuring libpcre...Done. Downloading http://downloads.openwrt.org/whiterussian/packages/lighttpd_1.4.11-2_mipsel.ipk ... Connecting to downloads.openwrt.org[195.56.146.238]:80 lighttpd_1.4.11-2_mi 100% |****************************************************************************| 72618 00:00 ETA Done. Unpacking lighttpd...Done. Configuring lighttpd...Done. Downloading http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk ... Connecting to downloads.openwrt.org[195.56.146.238]:80 libopenssl_0.9.8d-1_ 100% |****************************************************************************| 434 KB 00:00 ETA Done. Unpacking libopenssl...Done. Configuring libopenssl...Done. Downloading http://styx.commando.de/sven-ola/ipkg/packages/libpcre_5.0-3_mipsel.ipk ... Connecting to styx.commando.de[212.91.225.42]:80 libpcre_5.0-3_mipsel 100% |****************************************************************************| 29084 00:00 ETA Done. Unpacking libpcre...Done. Configuring libpcre...Done. Downloading http://downloads.openwrt.org/whiterussian/packages/lighttpd_1.4.11-2_mipsel.ipk ... Connecting to downloads.openwrt.org[195.56.146.238]:80 lighttpd_1.4.11-2_mi 100% |****************************************************************************| 72618 00:00 ETA Done. Unpacking lighttpd...Done. Configuring lighttpd...Done.
corremos un df -h para saber que tanto espacio se utilizo con la anterior instalacion de el servidor web.
root@altred:/mnt/sd# df -h /dev/mmc/disc0/part2 88.3M 67.7M 16.0M 81% /mnt/sd
comparandolo con lo que teniamos antes de instalarlo:
/dev/mmc/disc0/part2 88.3M 66.3M 17.4M 79% /mnt/sd
podemos ver que se uso 1.4megas de memoria, es muy poco cuando hablamos en terminos de discos duros o espacios de almacenamiento tradicionales pero para la capacidad limitada del wrt54gl que es de 4megas pues 1.4 megas es bastante y aunque seria posible instalarlo limitaria mucho la instalacion de otros paquetes. Por eso se justifica hacer la modificacion ;)
Paso a seguir? configurar el servidor web dentro del router inalambrico (todo)
La información en esta página es de caracter libre, Dominio Público, agradecemos no solo la copia, tambien invitamos especialmente a que sea mejorarada por la comunidad editando el wiki para hacerlo más claro y profundo. Así quienes lo visiten tengan una buena base. Cualquier duda, sugerencia o comentario al respecto contacte con el respondable:--> alejoATaltred.net
[Description Libra]
