Cómo instalar software adicional en su enrutador doméstico (DD-WRT)
¿Alguna vez ha deseado tener funciones adicionales como correo electrónico, Bit-torrent o incluso MySQL directamente en su enrutador? Bueno, tal vez ahora puedas. How-To Geek se sumerge en cómo instalar el software Opkg en DD-WRT.
Imagen de Jean Spector y Aviad Raviv.
Si aún no lo ha hecho, asegúrese de revisar los artículos anteriores de la serie:
- Convierta su enrutador doméstico en un enrutador de gran potencia con DD-WRT
- Cómo eliminar anuncios con Pixelserv en DD-WRT
Suponiendo que esté familiarizado con esos temas, siga leyendo. Tenga en cuenta que esta guía es un poco más técnica, y los principiantes deben tener cuidado al modificar su enrutador.
Aflicciones
Recientemente he comprado un nuevo Buffalo WZR-HP-AG300H que viene con una versión de marca de DD-WRT. Debido al hecho de que este enrutador tiene un puerto USB, inmediatamente conecté un HD y traté de usar la guía wiki "Optware, The Right Way". Desafortunadamente, rápidamente descubrí que el enrutador que obtuve, está basado en Atheros y el script de esa página wiki, no lo admite. Así que empecé a excavar (como siempre) y encontré varias guías (1, 2, 3 y 4) que tenían como objetivo explicar cómo hacer que Opkg funcione manualmente. Si bien su contribución (entre otras fuentes en la web) a esta guía fue invaluable, algunas de las instrucciones (IMHO) simplemente no son lo suficientemente claras. Por ejemplo, proporcionándole los archivos "lib" de pesca, pero no le enseñe a pescar desde la fuente. También tengo que hacer uso de un HD con formato Linux o al menos una partición de uno (que en realidad ni siquiera funciona en los firmwares que he probado). Es por eso que sentí la necesidad de crear el siguiente procedimiento conciso, fácil de seguir y reproducible para que el administrador de paquetes OpenWRT Opkg funcione en dichos enrutadores.
Actualización: la capacidad de partición de montaje se ha reintroducido en la versión rediseñada en la compilación alfa 17798.
Que es opkg?
Opkg es un gestor de paquetes como apt / aptitude y yum. Actúa como un reemplazo para el gestor de paquetes Ipkg, y se puede usar para instalar software como: el demonio Transmission BitTorrent, el remitente de correo electrónico ssmtp y Knockd un demonio que ejecuta scripts después de una secuencia de activación de puerto especificada, por nombrar algunos. Desde el sitio de OpenWRT:
La utilidad opkg (una bifurcación ipkg) es un administrador de paquetes liviano que se utiliza para descargar e instalar paquetes OpenWrt desde repositorios de paquetes locales o ubicados en Internet..
Opkg
Intenta resolver dependencias con paquetes en los repositorios: si esto falla, informará un error y abortará la instalación de ese paquete.
Por lo tanto, con Opkg podemos instalar cosas como hicimos con Ipkg en la guía "Libera aún más poder de tu enrutador doméstico". Las principales diferencias, son:
- Con el fin de dar los ejemplos de SSMTP y Knockd, el suyo realmente tuvo que averiguar las dependencias manualmente. El procedimiento para hacer esto manualmente es molesto y no muy sencillo. Opkg hace esto automáticamente.
- Esta vez estaremos añadiendo Software encima del firmware que está en su lugar, en lugar de reemplazarlo. Aunque reemplazarlo fue un excelente ejercicio geek, fue sin lugar a dudas: peligroso, propenso a los problemas, irreversible y, lo peor de todo, específico del enrutador. No hace falta decir que esto es mucho más sencillo y seguro..
Prerrequisitos
Para completar esta guía, tenga en cuenta lo siguiente:
- Como se indicó anteriormente, esta guía se creó y se probó en Buffalo WZR-HP-AG300H con la versión de firmware “Pro” de Buffalo 17135. Debería funcionar en cualquier enrutador basado en Atheros (ar71xx) con cualquier versión de DD-WRT de la misma revisión o superior , pero su kilometraje puede muy.
- Deberá habilitar SSH en el enrutador, así como instalar y usar WinSCP para conectarse a él. Esto se explicó en la guía "Cómo eliminar anuncios con Pixelserv en DD-WRT". De hecho, se asumirá que usted puede hacer todo lo que se explica en esa guía..
- Debe poder conectarse al enrutador utilizando un terminal (se recomienda SSH). Algunos consejos sobre cómo hacer esto, están en la wiki de DD-WRT.
- Espacio para JFFS y aproximadamente 4 MB de espacio con formato posterior para la configuración básica. El espacio JFFS no es solo un requisito previo, es un programa que detiene los eventos. Esto se debe a que, si su enrutador no tiene al menos los 4 MB de espacio de publicación posterior mencionados anteriormente, no obtendrá ningún beneficio real de esta guía, y estará mejor utilizando el "Liberar aún más poder de su enrutador doméstico" guía para instalar paquetes de Ipkg directamente en el firmware o instalar los paquetes de Ipkg manualmente. Siga las instrucciones de la guía "Cómo eliminar anuncios con Pixelserv en DD-WRT" para habilitar JFFS y vea cuánto espacio libre tiene realmente después esta formateado.
Nota: Es posible hacer esto con solo 2 MB de espacio para la configuración, pero luego perderíamos el resultado de que "/ etc" se puede leer y escribir y tendríamos que invocar Opkg, mientras especificamos el archivo de configuración manualmente cada vez ... lo cual es como muuuy cojo ...
Pongamos manos a la obra
En este punto, debería haber habilitado JFFS y poder SSH / WinSCP en el enrutador.
- Abrir una sesión de terminal al router..
- Crea un directorio temporal en el que trabajaremos:
mkdir / tmp / 1
cd / tmp / 1
Usa Ipkg para instalar Opkg
Mientras vamos a reemplazar a Ipkg como administrador de paquetes, lo usaremos para instalar manualmente el paquete de instalación de Opkg.
- Para hacer esto, descargue el paquete de instalación Opkg para la arquitectura ar71xx desde el tronco del proyecto OpenWRT:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
Nota 1: En el momento de redactar este documento, 618 es la última versión, esto puede estar sujeto a cambios en el futuro, por lo tanto, ajústelo.
Nota 2: Es posible que la única diferencia para que esta guía funcione con otras arquitecturas es obtener el instalador de Opkg de la arquitectura aplicable para su enrutador ... sin embargo, esto no lo ha probado el tuyo. - Invoque Ipkg para instalar manualmente Opkg usando:
ipkg install opkg_618-2_ar71xx.ipk
Nota: Si lo desea, también puede instalar todos los paquetes en el repositorio manualmente de esta manera. Sin embargo, esto significaría que tendrá que resolver las dependencias por su cuenta ... y cuál sería la diversión en eso.?
Obtención de los archivos de la biblioteca dinámica ("lib" s)
Los archivos "lib" requeridos para hacer que Opkg funcione, son parte de la distribución OpenWRT. Para obtenerlos, uno tiene que extraerlos del "Sistema de archivos raíz" de dicha distribución..
- Para hacer esto, descargue el último "Sistema de archivos raíz" básico para la declaración openWRT que contiene las "lib" necesarias de la troncal del proyecto OpenWRT:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
- Extraerlo utilizando:
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
- Copie los archivos "libs" de los "rootfs" que hemos extraído anteriormente al directorio "libs" en nuestro JFFS, al tiempo que conserva sus atributos y enlaces simbólicos:
cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /
Nota: Recibirá mensajes que indican que se están omitiendo los subdirectorios. Como no necesitamos nada más que los archivos "lib", esto está bien y puede ignorar estos mensajes de forma segura.
Arreglando el LD_LIBRARY "PATH"
Necesitamos decirle al enrutador, dónde buscar las bibliotecas compartidas (libs) que acabamos de "instalar" y que necesita hacer esto antes de Los que venían con el firmware..
- Para hacer esto, configure la variable de entorno LD_LIBRARY manualmente (por ahora), para que la ubicación donde copiamos los nuevos archivos lib sea la primera en el "PATH":
exportar LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
"/ Etc" de escritura
Vamos a copiar “/ etc” a JFFS y luego hacer el punto de montaje “/ etc” regular, señalarlo. Al hacerlo, se abrirá un mundo de posibilidades, ya que "/ etc" será de fácil lectura (que personalmente he estado esperando para dar o tomar 7 años) y permite que los paquetes que esperan este comportamiento funcionen correctamente..
- Cree el directorio que contendrá "/ etc":
mkdir -p / jffs / geek / etc
- Copie recursivamente la totalidad de "/ etc" a la vez que conserva todos los subdirectorios, atributos de archivo y enlaces simbólicos.
cp -a / etc / * / jffs / geek / etc /
- Manualmente (por ahora) "enlace de montaje" el directorio "/ etc" a la JFFS uno:
mount -o bind / jffs / geek / etc / / etc /
Establecer el directorio de Optware ("/ opt")
Opkg de OpenWRT, se espera que se use cuando se construye el firmware del enrutador. Como en ese momento, el sistema de archivos aún no está en el enrutador y, por lo tanto, todavía está sujeto a cambios, no hay problemas para instalarlo en ninguna ubicación del sistema de archivos. Es por eso que el archivo de configuración de Opkg apunta los paquetes para instalar en la "raíz" (/) del sistema de archivos. Sin embargo, estamos usando Opkg después el firmware se creó e instaló en el enrutador y, como no podemos cambiar la raíz del sistema de archivos para que sea de fácil lectura, señalaremos todas las instalaciones que se instalarán en "/ opt". Sin embargo, actualmente "/ opt" también apunta a una ubicación de solo lectura en el firmware del enrutador. Para superar esto, haremos que "/ opt" apunte a JFFS, que es de lectura y escritura..
- Para hacer esto, cree el directorio que contendrá los paquetes de Optware:
mkdir -p / jffs / opt
- Manualmente (por ahora) "bind mount" el directorio "/ opt" al JFFS:
mount -o bind / jffs / opt / / opt /
Nota: aunque esté fuera del alcance de esta guía, los usuarios más avanzados pueden querer cambiar este punto de montaje para apuntar a un HD.
Ajustando el archivo de configuraciones de Opkg
Queremos que el archivo de configuración de Opkg esté donde Opkg lo busque de forma predeterminada (que es "/ etc") y se ajuste para instalarlo en "/ opt".
- Para hacer esto, mueva el archivo de configuración de opkg instalado por el paquete de Opkg a la ubicación "/ etc" de escritura legible:
mv /jffs/etc/opkg.conf / etc /
- Cambie el destino para que las instalaciones de Optware sean "/ opt" en lugar de "root" (/).
Para hacer esto, con el editor “vi” o WinSCP navegue a “/ etc /” y haga que el contenido del archivo “opkg.conf”:vi /etc/opkg.conf
Haz que se vea como:
snapshots src / gz http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
dest root / opt
dest ram / tmp
lists_dir ext / var / opkg-lists
opción overlay_root / overlayNota: Puede cambiar la directiva "lists_dir" para que apunte a una ubicación que no esté en la RAM, sino en JFFS. Si bien esto lo liberaría de la actualización de las listas, antes de que pueda instalar software adicional (si su enrutador se reinicia desde la última vez), perdería alrededor de 1.5 MB del espacio JFFS escaso y estaría agravando su erosión..
Hola bebé
Debería poder ver que Opkg está funcionando al emitir los comandos de actualización y lista.
- Si todo salió bien, debería ver que las listas de Opkg se han actualizado sin errores y está listo para implementar el script en el siguiente paso:
actualización de opkg; lista de opkg
- Tómese el tiempo para comenzar a explorar los paquetes disponibles en el repositorio ... .
Script de inicio
Ahora debemos hacerlo para que todo el montaje y la ruta necesarios se realicen automáticamente cuando se inicie el enrutador. Para ello, hemos creado para ti, este script de inicialización geek-init..
- Descargue, luego extráigalo y colóquelo en "/ jffs / geek / etc /". (Considera hacer esto con WinSCP).
- Haga el script ejecutable entrando en sus propiedades con WinSCP o ejecutando:
chmod + x /jffs/geek/etc/geek-init.sh
- Haga que el script se ejecute en el inicio del enrutador, utilizando el WebGUI. En Administración -> Comandos, en el cuadro de texto, coloque:
/jffs/geek/etc/geek-init.sh web-gui
Y haga clic en "Guardar inicio".
Pateando las llantas
Si todo salió bien, ahora debería poder reiniciar el enrutador y seguir utilizando el gestor de paquetes Opkg. Eso es actualizar, listar e instalar aplicaciones..
Probemos que todo funciona al instalar el comando "netstat", que por alguna razón se ha omitido en las versiones de DD-WRT últimamente. Antes de hacer esto, ejecute el comando netstat en el terminal y verá que está molesto por un error del shell que dice "-sh: netstat: no encontrado".
- El primer paso siempre será actualizar las listas de Opkg para obtener la lista de los últimos paquetes del repositorio:
actualización de opkg
- Si no sabe qué paquete contiene el comando "netstat", puede filtrar los resultados usando.
lista de opkg | grep netstat
- Y ahora instale "netstat" usando:
opkg instalar net-tools-netstat
Y ahora, cuando ejecutas el comando netstat de nuevo, funciona ... neat ha? :)
Hasta los futuros artículos en los que instalaremos y configuraremos paquetes de software con este método, puede que tenga un montón de diversión friki explorando la gran cantidad de software que ahora está al alcance de su mano..
Si tal máquina es una imposibilidad virtual, lógicamente debe ser una improbabilidad finita. Así que todo lo que tengo que hacer para hacer uno es descubrir qué tan improbable es exactamente, introducir esa figura en el generador de improbabilidad finita, darle una taza de té realmente caliente y encenderlo ... ... ... lo único que hicieron. Realmente no me gusta, es un "Smart-Ass"..