Para encontrar algo que me guste, hay que rebuscar mucho

User login

Instalar programas en un router con firmware DD-WRT

0. Introducción

Jajaja, pa ke kieres hacer eso…

Hace poco que lo tengo, pero un router con el firmware DD-WRT instalado es una maravilla; lo convierte en un mini-servidor Linux y podemos con hacer con él practicamente lo que nos venga en gana. La principal limitación que vamos a encontrar es que es una distribución Linux MUY recortada para ocupar poco espacio y consumir muy pocos recursos. Por ejemplo, no trae Python, y eso para mi es un gran handicap. Por suerte, es muy fácil de solucionar.

Aunque algunos routers modernos traen por defecto suficiente memoria flash interna para instalar paquetes extra y DD-WRT nos permite esa opción, es poco recomendable ya que este tipo de memoria se degrada si es escrita múltiples veces. Prefiero usar un pendrive, barato y fácilmente reemplazable, para instalar mis cosas y que el router me dure muchos años.

1. Formateo del pendrive

DD-WRT viene tan pelado que ni siquiera podemos formatear el pendrive desde el propio router y tenemos que hacerlo en un PC. Los sistemas de archivo que soporta son: EXT2 y EXT3 pero se recomienda el primero ya que reliza menos escrituras al no tener "journaling". Este paso lo realizamos con gparted, normalmente disponible en cualquier distribución de Linux, o desde consola con fdisk si nos gusta compliarnos un poco más la vida.

2. Montado del pendrive en el router

Enchufamos el pendrive al router y abrimos su web de administración. Vamos a Services > USB y activamos:

     Core USB Support: ENABLED
  USB Printer Support: disabled
  USB Storage Support: ENABLED
          USB Over IP: disabled
Automatic Drive Mount: ENABLED

Tras unos segundos (5-10), el router debería reconocer automáticamente nuestro pendrive y mostrar información sobre el mismo en la parte inforiror de la pantalla, como el sistema de archivos y la identificación UUID del pendrive.

Para montar /opt en el pendrive, basta con copiar la UUID y pegarla en Mount this Partition to /opt.

alternate

Grabamos, aplicamos los cambios y, por si las moscas, reiniciamos el router desde (arriba) Administration > Management > (abajo) Reboot Router.

3. Instalación de EntWare

Si el procesador es un ARM, desde /tmp escribiremos:

wget -O - http://pkg.entware.net/binaries/armv7/installer/entware_install.sh | sh

Mientras que si el procesador es un MIPS:

wget -O - http://pkg.entware.net/binaries/mipsel/installer/installer.sh | sh

Si todo ha ido bien, tenemos EntWare instaldo y podemos empezar a instalar los paquetes que necesitemos.

4. Instalación de los paquetes necesarios

El gestor de paquetes incluído en EntWare es opkg. Para ver los paquetes disponibles hacemos:

opkg list

Y, por ejemplo, para instalar el editor de texto nano (más que recomendable, salvo que sepamos manejarnos con el satánico vi que trae DD-WRT por defecto) hacemos:

opkg install nano

Para desinstalarlo, haríamos:

opkg remove nano

En wiki.openwrt.org/doc/techref/opkg tenemos un listado completo de los comandos disponibles opkg.

Recordad que el router no es una máquina muy potente (salvo que os hayáis gastado un pastón) y que sobre todo nos interesa que sea estable y nos de la menor lata posible, así que no os volváis locos instalando cosas ;)