jueves, 15 de marzo de 2012

Instalar opkg en DD-WRT con Atheros

Update: Esta entrada fue reconstruida completamente, debido a un par de problemas en la instalación de ciertos paquetes con los apuntes anteriores.
 
Lo pasos descritos a continuación corresponden a un resumen personal del documento publicado por "How-To Geek", el cual puede ser consultado en el siguiente link

* Para instalar el comando opkg, es necesario que el router soporte almacenamiento externo (hardware) y que dicho almacenamiento este con formado de archivos "jffs".

* El router utilizado, el cual funcionó perfecto (ahora si), fue el Linksys E2100l (el cual posee una tarjeta Atheros), con la versión de DD-WRT v24-sp2 (12/20/11) std.

Los pasos son los siguientes:

1.- Se debe configurar el router para que monte automáticamente la unidad USB en "/jffs".
Esto se puede configurar en:


Service -> USB -> Disk Mount Point -> /jffs


2.- Nos conectamos al router mediante telnet o ssh y ejecutamos lo siguiente:


# Creamos un directorio temporal.
mkdir /tmp/1
cd /tmp/1

# Instalamos opkg (buscar versión más nueva).
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
ipkg install opkg_618-2_ar71xx.ipk

# Descargamos las librerías de opkg.
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

# Copiamos las librerías (los mensajes de omisión son válidos).
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
cp -Pp /tmp/1/lib/* /jffs/usr/lib/

# Ocupamos las nuevas librerías.
export LD_LIBRARY_PATH=/jffs/usr/lib:$LD_LIBRARY_PATH

# Le damos permisos de escritura/lectura al "/etc".
mkdir -p /jffs/geek/etc
cp -a /etc/* /jffs/geek/etc/
mount -o bind /jffs/geek/etc/ /etc/

# Hacemos algo parecido con "/opt".
mkdir -p /jffs/opt
mount -o bind /jffs/opt/ /opt/

# Eliminamos el "opkg.conf".
rm /jffs/etc/opkg.conf

# Recreamos el "opkg.conf" en "/etc".
cat > /etc/opkg.conf << EOF
src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
dest root /opt
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
EOF


# Probamos el opkg.
opkg update
opkg list


3.- Descargamos y extraemos el script de inicio:


http://www.howtogeek.com/wp-content/uploads/2011/12/geek-init1.1.zip


4.- Lo movemos dentro del router a la ruta:


/jffs/geek/etc/geek-init.sh


5.- Le damos permisos de ejecución.


chmod +x /jffs/geek/etc/geek-init.sh


6.- Dentro del WebGUI -> Administration -> Commands, agregamos la siguiente linea al "Startup":


/jffs/geek/etc/geek-init.sh web-gui


Reboot & Enjoy

Fuente:
http://www.howtogeek.com/98408/how-to-install-additional-software-on-your-router-dd-wrt/




Bonus:
Agregar la siguiente linea al script "geek-init.sh":

export PS1='\[\033[01;31m\]\u@\h \[\033[01;34m\]\W \$ \[\033[00m\]' >>/tmp/root/.profile


5 comentarios:

Leps dijo...

Muchas gracias por el excelente aporte. Estoy intentando hacer que mi TP-Link TL-MR3420 monte un USB (solo para aprender a usar el medio de almacenamiento) Pero al intentar la siguiente instrucción:

wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
ipkg install opkg_618-2_ar71xx.ipk

lo sustituyo por:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin
aunque esta el paquete sysupgrade.bin

Lo cierto es que hasta aquí llego porque no se como ejecutar lo siguiente.

Si hay alguien que haya podido instalar esto por favor le agradezco que colaboren con mi curiosidad xD
Saludos!

Zort dijo...

No debes hacer esa sustitución ya que los archivos .IPK son paquetes de programas y los archivos (en este caso) .BIN son imágenes del sistema operativo, son dos cosas radicalmente distintas. Suerte!

Zort dijo...

Si tu problema es no poder descargar el paquete de "opkg", intenta con el siguiente link: "http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/base/opkg_9c97d5ecd795709c8584e972bfdf3aee3a5b846d-7_ar71xx.ipk"

Leps dijo...

Muy agradecido Zort por explicarme la diferencia entre paquetes .BIN y . IPK, lo hice porque el enlace del post y ya no existe,y encontré fue este
http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/

seguí el enlace que me dijiste y lo pude descargar pero ahorita me arroja otro error y no encuentro como solventarlo, he indagado en google y nada!

ipkg install opkg_9c97d5ecd795709c8584e972bfdf3aee3a5b846d-7_ar71xx.ipk
ERROR: File not found: //usr/local/lib/ipkg/lists/whiterussian
You probably want to run `ipkg update'
ERROR: File not found: //usr/local/lib/ipkg/lists/non-free
You probably want to run `ipkg update'
ERROR: File not found: //usr/local/lib/ipkg/lists/backports
You probably want to run `ipkg update'
/bin/ipkg: line 1184: sort: not found

Luego hago el 'update' sugerido
root@fedoraDD-WRT:/tmp/1# ipkg update
y el error continua.
=(

Leps dijo...

encontré
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=86912

ahí dicen que haga caso omiso a el error
You probably want to run `ipkg update'

Así que intenté descargar las librerías pero el enlace no es correcto, si tienen el .tar.gz se los agradezco
=D
Aunque no he llegado pero tengo fé que lo hare xD pregundo adelantandome,
al momento de Recrear el "opkg.conf" en "/etc". en
cat > /etc/opkg.conf << EOF
src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages

debo sustituir ese enlace por cúal? Pregunto porque ese enlace actualmente no está en uso, el 404 que tanto sale.