Saludos a toda la peña.
Hace unas semanas me he comprado un Punto de Acceso Asus WL-500g Premiun, inmediatamente me dedique a cambiarle el firmware original por uno de terceros, específicamente DD-WRT V24 RC-5. Esta maquina además de sus 8MB de memoria Flash y 32 MB de Ram cuenta con dos (2) puertos USB 2.0, así que me he puesto a ver que es lo que se puede hacer con todo eso. Hasta los momentos lo he configurado como servidor de impresión, soporte para dispositivos de almacenamiento externos, servidor Samba2 y he habilitado la opción de memoria SWAP. Estas son solo unas cuantas cosas que pueden hacerse con esta maquina pues podrían hacerse muchas más.
A continuación les muestro como realice cada una de las configuraciones que mencione anteriormente, con la finalidad de orientar un poco a aquellos que tengan estos equipos y deseen sacarle el mejor provecho.
1. Habilitar la partición JFFSPara ello existen dos formas, una a través de la interfaz Web (para los usuarios menos curiosos) y otra a través de la CLI (Interfaz de línea de comandos) (para los linuxeros o usuarios mas entusiastas).
A. Interfaz grafica WEB.En esta opción deben abrir el navegador Web de su preferencia (explorer, firefox etc.) e introducir la dirección IP correspondiente a su equipo, por defecto seria la 192.168.1.1, luego les aparecerá la opción para logearse ya saben username y password, por defecto el username es root y el pass es admin.
Posteriormente presionen la pestaña administración y diríjanse al campo donde aparece JFFS suport, allí marcan la casilla JFFS enable y luego aplican los cambios, esperan un rato y vuelven a ingresar en administración, ahora marquen la casilla clean JFFS. De nuevo esperan un rato.
Para verificar si se ha montado correctamente, puede ser a través de la interfaz Web pero recomiendo que accedan a la CLI del AP a través de telnet o Secure Shell (consola segura SSH). Una vez dentro de la CLI apliquen el siguiente comando:
df –h
B. A través de la CLIAbran una Terminal y accedan a la CLI del equipo vía Telnet o SSH, una vez dentro apliquen los siquientes comandos uno por uno:
nvram set jffs_mounted=1
nvram set enable_jffs2=1
nvram set sys_enable_jffs2=1
nvram set clean_jffs2=1
nvram set sys_clean_jffs2=1
nvram commit
rebootCon todo esto ya deberían tener montada la partición JFFS en su Asus.
2. Puesta en marcha de ipkgUna vez montada la partición JFFS deben verificar que este lista para instalar paquetes y módulos a través de ipkg, para ello ejecuten el siguiente comando en la CLI:
Ipkg updateHe aquí la respuesta a ese comando:
root@DD-WRT:~# ipkg update
Downloading
http://downloads.openwrt.org/whiterussian/packages/Packages ...
Connecting to downloads.openwrt.org [195.56.146.238:80]
Done.
Updated list of available packages in /jffs/usr/lib/ipkg/lists/whiterussian
Downloading
http://downloads.openwrt.org/whiterussian/packages/non-free/Packages ...
Connecting to downloads.openwrt.org [195.56.146.238:80]
Done.
Updated list of available packages in /jffs/usr/lib/ipkg/lists/non-free
Downloading
http://downloads.openwrt.org/backports/rc5/Packages ...
Connecting to downloads.openwrt.org [195.56.146.238:80]
Done.
Updated list of available packages in /jffs/usr/lib/ipkg/lists/backports
Si no les aparece eso o algo parecido, quiere decir que la partición JFFS no se monto correctamente, repitan el paso 1 y vuelvan a intentarlo.
3. Instalación básicaCon la partición JFFS montada y lista, ahora nos toca instalar los módulos respectivos para poder usar los puertos USB del Asus. Vamos por parte:
A. Módulos básicosEs necesario instalar los siguientes módulos para poder usar los puertos usb del ap:
- Drivers básicos usb:
kmod-usb-core -- Kernel Support for USB
kmod-usb-ohci -- Kernel driver for OHCI USB controllers
kmod-usb-uhci -- Kernel driver for UHCI USB controllers
kmod-usb-uhci-iv -- Kernel driver for Intel/VIA UHCI USB controllers
kmod-usb2 -- Kernel driver for USB2 controllers
kmod-usb-acm -- Kernel modules for USB ACM (Abstract Control Model) support
- Drivers para dispositivos almacenamiento:
kmod-usb-storage -- Kernel modules for USB storage support
kmod-ext2 -- Kernel modules for EXT2 filesystem support
kmod-ext3 -- Kernel modules for EXT3 filesystem support
kmod-vfat -- Kernel modules for VFAT filesystem support
- Drivers para escaners e impresoras:
kmod-usb-printer -- Kernel modules for USB Printer support
kmod-usb-scanner -- Kernel modules for USB Scanner support
kmod-videodev -- Video For Linux (webcam/video capture) kernel support
Para la instalación de estos drivers, deben ingresar a la CLI del AP a través de los metodos mencionados anteriormente, ejecuten el siguiente comando para instalar cada modulo:
ipkg install (modulo)
por ejemplo:
ipkg install kmod-usb-core
ipkg install kmod-usb-ohciY asi sucesivamente hasta tenerlos todos instalados, también pueden escribir ipkg install sequido de todos los módulos, para evitar escribir tanto.
NOTA: Es probable que al usar el comando ipkg install les de algún error en versiones nuevas de DD-WRT, si es el caso ejecutar el siguiente comando en lugar de ipkg install:
ipkg -force-depends installSi todo funciono correctamente, ya todos los módulos deben estar instalados y listos para ser cargados desde el directorio /jffs/lib/modules/2.4.30, ahora deben cargar cada uno de los módulos que instalaron con ipkg a través del siguiente comando:
insmod /jffs/lib/modules/2.4.30/moduloPor ejemplo:
insmod /jffs/lib/modules/2.4.30/usbcore.o
insmod /jffs/lib/modules/2.4.30/ehci-hcd.o
insmod /jffs/lib/modules/2.4.30/usb-uhci.o
insmod /jffs/lib/modules/2.4.30/usb-ohci.o
insmod /jffs/lib/modules/2.4.30/scsi_mod.o
insmod /jffs/lib/modules/2.4.30/sd_mod.o
insmod /jffs/lib/modules/2.4.30/sg.o
insmod /jffs/lib/modules/2.4.30/usb-storage.o
insmod /jffs/lib/modules/2.4.30/acm.o
insmod /jffs/lib/modules/2.4.30/fat.o
insmod /jffs/lib/modules/2.4.30/vfat.o
insmod /jffs/lib/modules/2.4.30/jbd.o
insmod /jffs/lib/modules/2.4.30/ext2.o
insmod /jffs/lib/modules/2.4.30/ext3.o
insmod /jffs/lib/modules/2.4.30/uhci.o
insmod /jffs/lib/modules/2.4.30/printer.o
insmod /jffs/lib/modules/2.4.30/scanner.o Hecho esto ahora deben crear un script y hacerlo ejecutable, para ello deben hacer lo siguiente:
mkdir /jffs/etc/config
vi /jffs/etc/config/usb.startupEl comando vi no es mas que un editor de texto, al ejecutarlo les aparecerá una pequeña pantalla en blanco, para editar esta pantalla presionen la tecla i. Luego escriban lo siquiente:
#!/bin/sh
echo "Inserting modules for USB disk support..."
insmod /jffs/lib/modules/2.4.30/usbcore.o
insmod /jffs/lib/modules/2.4.30/ehci-hcd.o
insmod /jffs/lib/modules/2.4.30/usb-uhci.o
insmod /jffs/lib/modules/2.4.30/usb-ohci.o
insmod /jffs/lib/modules/2.4.30/scsi_mod.o
insmod /jffs/lib/modules/2.4.30/sd_mod.o
insmod /jffs/lib/modules/2.4.30/sg.o
insmod /jffs/lib/modules/2.4.30/usb-storage.o
insmod /jffs/lib/modules/2.4.30/acm.o
insmod /jffs/lib/modules/2.4.30/fat.o
insmod /jffs/lib/modules/2.4.30/vfat.o
insmod /jffs/lib/modules/2.4.30/jbd.o
insmod /jffs/lib/modules/2.4.30/ext2.o
insmod /jffs/lib/modules/2.4.30/ext3.o
insmod /jffs/lib/modules/2.4.30/uhci.o
insmod /jffs/lib/modules/2.4.30/printer.o
insmod /jffs/lib/modules/2.4.30/scanner.o
Una vez editado, presionen la tecla esc, luego : y escriban wq. Con eso serán guardados los cambios realizados en fichero.
Ahora deben hacer ejecutable el script usando el siguiente comando:
chmod +x /jffs/etc/config/usb.startupCon todo eso ya tenemos los driver básicos para usar los puertos usb del asus.
B. Impresoras compartidasPara habilitar el uso de impresoras compartidas, el procedimiento a seguir es muy sencillo, veamos:
Si realizaron todo el procedimiento descrito anteriormente, ya deben tener instalado el modulo para impresoras en su AP, el modulo es el siguiente:
/jffs/lib/modules/2.4.30/printer.o
Si no lo instalaron en el paso anterior, simplemente hagan los siguiente:
Ipkg install kmod-usb-printerInsmod /jffs/lib/modules/2.4.30/printer.oPosteriormente agregan la sentencia anterior al fichero usb.startup.
Para comprobar si todo funciona, conecten su impresora a uno de los puertos del asus y reinicien. Luego ingresen a la CLI y apliquen el siguiente comando:
dmesg | grep usb<6>printer.c: usblp0: USB Bidirectional printer dev 5 if 0 alt 0 proto 2 vid 0x04F9 pid 0x000D
<6>printer.c: usblp1: USB Bidirectional printer dev 6 if 0 alt 0 proto 2 vid 0x04A9 pid 0x108C
Esa salida les muestra que se encuentran conectadas dos impresoras a su AP.
Ahora para poder compartir la (s) impresoaras a traves de la red es necesario instalar el paquete p910nd usando ipkg, a continuación se muestran los comandos:
ipkg install p910ndPosteriormente deben editar el fichero /jffs/etc/config/usb.startup y agregar la siguiente línea según la salida que les haya mostrado el dmesg:
/jffs/usr/sbin/p910nd -f /dev/usb/lp0 0
/jffs/usr/sbin/p910nd -f /dev/usb/lp1 1
Con todo esto ya se encuentra el AP preparado para fungir como servidor de impresión en vuestra red, a continuación se describen los pasos a seguir para configurar la impresora en Linux y winxp:
- Ubuntu Linux
• Diríjanse a sistema-administración-impresoras.
• Agregar nueva impresora
• Direccion de red (IP) del AP por defecto sera 192.168.1.1
• Puerto 9100 y 9101 en caso de una segunda impresora
• Presionen siquiente y continuen con el asistente para escojer la marca y modelo de la impresora.
- Winxp
• Diríjanse a panel de control-impresoras y faxes
• Seleccionen agregar nueva impresora
• Seleccionen impresora local
• Seleccionen crear nuevo puerto estándar TCP/IP
• Escojan un nombre para el puerto y escriban la dirección ip del AP
• Asegúrense que el puerto seleccionado por el asistente fue el 9100
• Continúen con el asistente y escojan la marca y modelo de la impresora
C. Dispositivos de almacenamiento masivoEn estos momentos ya tenemos todo los modulos necesarios para conectar nuestros discos duro, pendrive etc. En mi caso he utilizado un disco duro de laptop de 60GB metido en un enclosure usb. En este disco he creado tres particiones dos ext3 y una swap. Antes de hacer cualquier cosa con el disco he instalado los siguientes paquetes usando el comando ipkg:
Ipkg install swap-utils
Ipkg install fdisk
Ipkg install e2fsprogsUna vez instalados esos paquetes y los discos conectados al AP, apliquen el siquiente commando:
Fdisk –lObtendrán un resultado similar a este:
root@DD-WRT:~# fdisk -l
Disk /dev/scsi/host0/bus0/target0/lun0/disc: 60.0 GB, 60011639808 bytes
255 heads, 63 sectors/track, 7295 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/scsi/host0/bus0/target0/lun0/part1 4612 7295 21559230 83 Linux
/dev/scsi/host0/bus0/target0/lun0/part2 259 4611 34965472+ 83 Linux
/dev/scsi/host0/bus0/target0/lun0/part3 1 258 2072353+ 82 Linux swap / Solaris
Partition table entries are not in disk order
Como puede verse en la salida del comando, tengo tres particiones, utilizare una para instalar ficheros con optware, otra para archivos compartidos y la otra como memoria swap.
D. Montaje de particionesD.1. Partición OPT
Para montar la partición opt utilicen el siguiente comando:
mount /dev/scsi/host0/bus0/target0/lun0/part1 /opt/D.2. Partición de archivos compartidos
mount /dev/scsi/host0/bus0/target0/lun0/part2 /mnt/Para verificar que todo salio bien apliquen el siguiente comando:
df –h Obtendra una salida similar a esta:
root@DD-WRT:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 3.1M 3.1M 0 100% /
/dev/mtdblock/4 4.1M 1.1M 3.0M 27% /jffs
/dev/scsi/host0/bus0/target0/lun0/part1 20.2G 92.7M 19.1G 0% /opt
/dev/scsi/host0/bus0/target0/lun0/part2 32.8G 16.9G 14.2G 54% /mnt
E. Instalacion de optwareA continuación ingresen los siguientes comandos para la instalación de optware:
wget http://pastebin.ca/raw/876251 -O - | tr -d '\r' > /tmp/optware-install.sh
sh /tmp/optware-install.shObtendrán una salida similar a esta:
Checking system config ...
Using 192.168.1.1 as default gateway.
Using the following nameserver(s):
nameserver 192.168.1.30
Warning: local nameserver is different than gateway!
Check config or enter:
sed -i s/192.168.*/192.168.1.1/ /tmp/resolv.conf
to correct this.
Installing package uclibc-opt_0.9.28-13_mipsel.ipk ...
Connecting to ipkg.nslu2-linux.org[140.211.166.82]:80
uclibc-opt_0.9.28-12 100% |***********************************************| 832 KB 00:00:00 ETA
Updating /opt/etc/ld.so.cache
/opt/sbin/ldconfig: can't create /opt/etc/ld.so.cache~ (No such file or directory)
Installing package ipkg-opt_0.99.163-9_mipsel.ipk ...
Connecting to ipkg.nslu2-linux.org[140.211.166.82]:80
ipkg-opt_0.99.163-9_ 100% |***********************************************| 75896 00:00:00 ETA
Downloading
http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gzInflating
http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gzUpdated list of available packages in /opt/lib/ipkg/lists/optware
Successfully terminated.
Installing uclibc-opt (0.9.28-12) to /opt/...
Downloading
http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/uclibc-opt_0.9.28-12_mipsel.ipkpackage uclibc-opt suggests installing ipkg-opt
Configuring uclibc-opt
Updating /opt/etc/ld.so.cache
Successfully terminated.
Installing ipkg-opt (0.99.163-9) to /opt/...
Downloading
http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/ipkg-opt_0.99.163-9_mipsel.ipkConfiguring ipkg-opt
Successfully terminated.
Con todo eso ya tienen todo listo para empezar a instalar ficheros en esta particion.
F. Instalación de paquetes a través de optwareSon muchas las aplicaciones que puenden instalarse, por los momentos solo he instalado los módulos para sanba2 y los módulos necesarios para habilitar la partición swap. A continuación muestro como lo he hecho.
F.1. Instalación de sanba2
Ingresen a la CLI del AP e ingresen los siguientes comandos:
/opt/bin/ipkg update
/opt/bin/ipkg remove samba
/opt/bin/ipkg install samba2
/opt/bin/ipkg install xinetd
/opt/etc/init.d/S10xinetd start
/opt/etc/init.d/S80samba startDentro de la partición que he montado previamente en /mnt/, he copiado carpetas de todo tipo, tales como: videos, música, documentos en general etc. La idea es compartir esas carpetas en la red. Para configurar carpetas compartidas en el servidor sanba instalado en el AP, editen el siguiente fichero:
vi /opt/etc/sanba/smb.conf# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
#
# Any line which starts with a ; (semi-colon) or a # (hash)
# is a comment and is ignored. In this example we will use a #
# for commentry and a ; for parts of the config file that you
# may wish to enable
#
# NOTE: Whenever you modify this file you should run the command "testparm"
# to check that you have not made any basic syntactic errors.
#
#======================= Global Settings =====================================
[global]
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = MSHOME# server string is the equivalent of the NT Description field
server string = Samba Optware ServerEditen su grupo de trabajo y el nombre del servidor sanba.
[www]
comment = HTTP server files
path = /opt/share/www
read only = no
public = yes
[videos]
comment = videos
path = /mnt/videos/
read only = no
public = yes
writable = yes
[musica]
comment = musica
path = /mnt/musica/
read only = no
public = yes
writable = yes
Aquí un ejemplo, como veran he agregado dos carpetas compartidas, musica y videos las cuales se encuentran alojadas con su respectivo contenido en la partición /mnt/.
Si estais en winxp y quereis acceder a las carpetas compartidas alojadas en el Asus, simplemente diriganse a mis sitios de red-ver equipos del grupo de trabajo. En esa ventana veran los equipos que forman parte de su red, ahora incluyendo el Asus.
Como pueden observar en la imagen, ya se encuientra montado el servidor samba en el ap, tiene el nombre de samba optware server (dd-wrt), por supuesto en el archivo de configuracion pueden cambiarle el nombre por el que ustedes quieran. Ahora pinchen sobre el icono y veran las carpetas compartidas alojadas en el AP.