.
Para poder realizar este tutorial es necesario que dispongas de alguno de estos recursos:
- Router con gran memoria flash libre
- SD/MMC mod.
- Router con USB.
Aqui vamos a explicar cómo hacerlo usando el SD/MMC mod. QUIERO DEJAR CLARO QUE TODA LA INFORMACIÓN ESTÁ EXTRAIDA DEL BLOG MATANDO EL TIEMPO (gracias Edu por tan buen documento).
Primer paso: Instalar SD
Puedes encontrar toda la información en: http://nuwiki.openwrt.org/oldwiki/OpenWrtDocs/Customizing/Hardware/MMC?highlight=%28mmc%29
Video explicativo de Lampi:
Y unas fotos (son las mejores que he encontrado. Extraidas de aquí):



Segundo paso: Instalar Optware
Como se detallada en Matando el Tiempo:
1) Firmware: DD-WRT v24 sp2 (10/10/09) con mod SD, una tarjeta reconocida (las modernas, por ejemplo HC, no las reconoce) y lista para usar.
Me ha reconocido una de 1 Gb (velocidad x66).
2) Montar la partición en la SD
mkdir /mmc/jffsmount --bind /mmc/jffs /jffs3) Instalar Optware
mkdir /jffs/optmount -o bind /jffs/opt /optmkdir /jffs/tmpcd /jffs/tmpwget http://www.wlan-sat.com/boleo/optware/optware-install-ddwrt.sh./optware-install-ddwrt.shAdjunto el código de dicho script de instalación:
#!/bin/sh
# Optware pre-installation script, Leon Kos 2006, 2008
# added -verbose_wget to some lines, MrAlvin 2009
REPOSITORY=http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable
TMP=/tmp
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin
unset LD_PRELOAD
unset LD_LIBRARY_PATH
_check_config()
{
echo "Checking system config ..."
GATEWAY=$(netstat -rn |
sed -n 's/^0.0.0.0[ \t]\{1,\}\([0-9.]\{8,\}\).*/\1/p' )
if [ -n "${GATEWAY}" ]; then
echo "Using ${GATEWAY} as default gateway."
else
echo "Error: No default gateway set!"
exit 2
fi
if [ -s /etc/resolv.conf ]; then
echo "Using the following nameserver(s):"
if grep nameserver /etc/resolv.conf ; then
GATEWAY_SUBNET=$(echo "${GATEWAY}" |
sed 's/\.[0-9]\{1,3\}\.[0-9]\{1,3\}$//')
if [ "${GATEWAY_SUBNET}" = "192.168" ]; then
if grep -q ${GATEWAY} /etc/resolv.conf ; then
echo "Gateway ${GATEWAY} is also nameserver."
else
echo "Warning: local nameserver is different than gateway!"
echo "Check config or enter:"
if test -L /etc/resolv.conf ; then
echo " sed -i s/192.168.*/${GATEWAY}/ /tmp/resolv.conf"
else
echo " sed -i s/192.168.*/${GATEWAY}/ /etc/resolv.conf"
fi
echo "and try again - or wait to see if your download continues anyway."
fi
fi
else
echo "Error: No nameserver specified in /etc/resolv.conf"
exit 5
fi
else
echo "Error: Empty or nonexistent /etc/resolv.conf"
exit 3
fi
if mount | grep -q /opt ; then
[ -d /opt/etc ] && echo "Warning: /opt partition not empty!"
else
echo "Error: /opt partition not mounted."
echo "for running Optware on JFFS (not recommended), Enter"
echo " mkdir /jffs/opt"
echo " mount -o bind /jffs/opt /opt"
echo "to correct this."
exit 4
fi
}
_install_package()
{
PACKAGE=$1
echo "Installing package ${PACKAGE} ..."
echo " Some newer versions of DD-WRT does not show download progress bar,"
echo " so just be patient - or check STATUS -> BANDWIDTH tab for download"
echo " activity in your routers Web-GUI, and then still wait a minute or two."
wget -O ${TMP}/${PACKAGE} ${REPOSITORY}/${PACKAGE}
cd ${TMP}
tar xzf ${TMP}/${PACKAGE}
tar xzf ${TMP}/control.tar.gz
cd /
if [ -f ${TMP}/preinst ] ; then
sh ${TMP}/preinst
rm -f ${TMP}/preints
fi
tar xzf ${TMP}/data.tar.gz
if [ -f ${TMP}/postinst ] ; then
sh ${TMP}/postinst
rm -f ${TMP}/postinst
fi
rm -f ${TMP}/data.tar.gz
rm -f ${TMP}/control.tar.gz
rm -f ${TMP}/control
rm -f ${TMP}/${PACKAGE}
}
_check_config
_install_package uclibc-opt_0.9.28-13_mipsel.ipk
_install_package ipkg-opt_0.99.163-10_mipsel.ipk
/opt/sbin/ldconfig
/opt/bin/ipkg -verbose_wget update
/opt/bin/ipkg -force-reinstall -verbose_wget install uclibc-opt
/opt/bin/ipkg -force-reinstall -verbose_wget install ipkg-opt
¡ Ya podemos instalar paquetes de Optware en nuestro router! Puedes ver una lista resumen aquí y directamente los paquetes aquí.
Para ello, ahora dispones en /opt/bin de la utilidad ipkg-opt para poder instalar paquetes Optware.
4) Tienes que asegurarte que cada vez que se inice el router, se ejecuten las ordenes:
mount --bind /mmc/jffs /jffsmount -o bind /jffs/opt /optGracias a estos dos comandos, /jffs y /opt apuntan a directorios de la MMC.
Para ello, en el menu ADMINISTRATION / COMANDS, puedes grabar un script con las ordenes a ejecutar (SAVE STARTUP).
Nota: Sólo he detallado lo mínimo para poder empezar a instalar paquetes. Se puede necesitar ampliar los comandos en el script de inicio, si se desea usar otros servicios, como por ejemplo servidor web con php u otros.
Si quieres probar el ejemplo de CONTROLAR LCD A TRAVÉS DE WEB EMBEBIDA, lo he adaptado a PHP (necesitas instalarte los paquetes php y php-thttpd):
Dispones de 3 archivos:
- form_lcd.html => Principal. Contiene el formulario a enviar.
- lcd.jpg => Foto que se muestra en la página principal.
- script.php => Recoge los datos enviados por POST y los envia por puerto serie.
Ahora puedes dejar el servidor que viene con DD-WRT para servir las páginas de configuración del router escuchando en el puerto 80 y añadir nuevo/s servidor/es con mayor capacidad para tus páginas personales. (Por ejemplo, php-thttpd por el puerto 8080). ¡Puedes usar PHP 5!
A continuación, pongo las fotos que he realizado del proceso:



Con esta mod al router, ya sólo queda en tu imaginación las aplicaciones que puedes realizar. Ya no perderás nada cuando tu router se reinicie. Repasa los paquetes Optware que puedes descargar, y seguro que se te van ocurriendo ideas.
Notas adicionales:
Tomato dispone de una versión con drivers para manejar SDHC, la he probado con una tarjeta de 4 Gb y ha funcionado perfectamente. Tengo que ver si se pueden usar los paquetes Optware con dicho firmware, ya que el router parece ir más descargado con dicho firmware.
Link: TOMATO firmware with SDHC mod
.


HOla! Oye amigo ya he podido montarme la SD al linksys pero lo que no he entendido bien es donde introducir los comandos? si pudieras hecharme una mano te lo agradeceria mucho.
ResponderEliminarOla! ya he solucionado un poko el problema, lo que pasa es que la direccion que nos das para bajar el optware-install-ddwrt.sh est bn muerta!
ResponderEliminarAquí encontre la siguiente!
---------
wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh
----------
Honor a quien honor merece! estaba en los foros de dd-wrt
Seguimos avanzando!
Hola Manuel Antonio,
ResponderEliminarMe alegro que lo hayas solucionado!!
Con el mierdo que el script de instalación se perdiera, si te fijas esta copiado el código en este post. Podías haberlo copiado y usado.
Pero si ya lo tienes en marcha, perfecto!!!
Saludos
si lo que pasa es que estaba bastante verde y no entendia bien que era ese codigo jeje ahora lo se!, Una pregunta he buscados bastante, y digo bastantisimo, peor no encuentro mucho, sabes alguna manera de instalar Mysql, para de esta manera poder guardar los datos de un sensor en una base de datos, Por tu atencion y rapida respuesta GRacias!
ResponderEliminarHola,
ResponderEliminarEn los paquetes de Optware tienes servidor de mysql.
http://www.nslu2-linux.org/wiki/Optware/HomePage
Saludos