Sei sulla pagina 1di 11

INSTALAR DD-WRT A VIEJO ACCESS

POINT D-LINK DIR-300


MAYO 27, 2015 PHENOBARBITAL 8 COMENTARIOS
Uno como buen geek/friki se va llenando de gadgets, ¡oh, miren! ¡un access point y router a
300Mbps Wireless-N!, y vas olvidando los otros por allí.

Sin embargo, se me presentó un problema y DD-WRT vino en mi rescate!.

El problema
He colocado una micro-ITX con su caja en la parte de atrás de mi TV, es como mi “Teatro
Casero”, con ella, puedo tener Linux en mi TV y poner películas, series, aunque en los
últimos tiempos lo único que se ve allí es Pocoyó (por mi bebé de 15 meses).
Ahora que tengo Internet de banda ancha en mi apartamento, he decidido que le pondría
Internet a la micro-cajita, pero ¿cómo?, la cajita no tiene WIFI (y me daba pereza comprar
un dongle USB) y no voy a cablear UTP por toda la casa, entonces revisando me consigo
en mi depósito de trastes viejos este aparato:

Es un viejo enrutador inalámbrico D-LINK DIR-300, es Wireless-G y red 100MB (tan


viejos que se consiguen como en 8US$ en ebay), ahora ¿qué hacer con él?
La idea
Al instalar DD-WRT garantizo que puedo colocar el viejo enrutador como un Wireless-
Client o un Wireless-Repeater, es decir, que pudiera conectarlo a la WIFI existente en mi
casa y permitirle a los equipos cableados que están detrás de mi TV (Un Guruplug, mi
“teatro-casero” y ocasionalmente algún otro equipo) conectarse de manera cableada al
Access Point, algo más o menos así:

Comencemos!

Búsqueda de información en DD-WRT


El primer paso es la búsqueda de información, necesitamos acceder a la “router database”
de DD-WRT, en la página:

URL: http://www.dd-wrt.com/site/support/router-database
Buscamos nuestro enrutador:
NOTA: Tomen
en cuenta que hay versiones de DD-WRT para la versión A1 y la versión B de este equipo,
revisen que en la parte inferior su equipo indica:
D-Link DIR-300 A1
O no podrán usar esta versión de DD-WRT.

Descargamos los siguientes archivos:

 ap61.ram: la versión para inicio temporal de DD-WRT desde el stock


 ap61.rom: la ROM necesaria para flashear DD-WRT en el equipo
 linux.bin: la versión de DD-WRT de nuestro equipo
Al tenerlos descargados, instalamos nuestras dependencias.

Instalación de dependencias
Lo primero que requerimos, es un servidor de TFTP (Trivial FTP) desde el cual el router
accederá a los archivos, para ello, en Debian/Ubuntu ejecutamos:

aptitude install tftpd-hpa telnet

Esto creará un directorio llamado “/srv/tftp” al cual le aplicaremos los siguientes permisos:

chown tftp /srv/tftp -R

chmod 0775 /srv/tftp -R


cd /srv/tftp

Y copiamos allí los archivos descargados, o alternativamente, los descargamos aquí mismo:

wget -c http://www.dd-wrt.com/routerdb/de/download/D-Link/DIR-
300/A1/ap61.ram/2049

wget -c http://www.dd-wrt.com/routerdb/de/download/D-Link/DIR-
300/A1/ap61.rom/2049

wget -c http://www.dd-wrt.com/routerdb/de/download/D-Link/DIR-
300/A1/linux.bin/2049

Luego de descargado, y preparado el ambiente, procedemos a conectarnos a RedBoot

Conectarse al Router y reemplazar bootloader


 Apaguen el enrutador
 Configuren su equipo con una red en la subnet 192.168.20.0/24, ejemplo:
ifconfig eth0 192.168.20.80 netmask 255.255.255.0

 Conecten su equipo al DIR-300 a través del puerto marcado como WAN.


 Procedan a ejecutar un reset 30/30/30, esto es: “presionan 30 segundos el botón de reset
y apagan, esperan 30 segundos con el botón presionado y luego vuelven a conectar la
energía manteniendo presionado 30 segundos”.
 Ejecuten rápidamente un telnet a la IP 192.168.20.81 en el puerto 9000
telnet 192.168.20.81 9000

NOTA: Tal vez deban repetir el procedimiento de encendido varias veces (apagarlo,
presionar RESET y mantenerlo presionado por 30 segundos) ya que la ventana de ese telnet
es de sólo 5 segundos luego del boot.

Si todo ocurre normalmente, al ejecutar el telnet y dar 2 veces tecla ENTER, verán el
prompt del RedBoot:
Prompt:

RedBoot>

Ya en el prompt del redboot procedemos a configurar manualmente nuestro enrutador:

RedBoot> ip_address -l 192.168.20.81/24 -h 192.168.20.80

IP: 192.168.20.81/255.255.255.0, Gateway: 0.0.0.0


Default server: 192.168.20.80
Como verán, hemos configurado la IP en la subred /24 con servidor remoto 192.168.20.80
(la IP que le pusimos a nuestra máquina).

Allí, procedemos a cargar nuestro primer archivo:

RedBoot> load ap61.ram

Using default protocol (TFTP)


Entry point: 0x800410bc, address range: 0x80041000-0x800680d8
Si les indica un error de “access violation”, asegurense que los archivos en /srv/tftp tienen
los permisos correctos y el servidor TFTP puede leerlos (usuario tftp).

 Desconecten su equipo del puerto WAN y ahora pasen el cable UTP al puerto LAN1.
 Configuren la red de su equipo para la subred 192.168.1.0/24
ifconfig eth0 192.168.1.2 netmask 255.255.255.0

 Vuelvan a conectarse vía telnet, pero esta vez a la IP 192.168.1.1


telnet 192.168.1.1 9000

Este responderá:

Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
DD-WRT>
Ya en la consola temporal del DD-WRT, ejecutamos:

DD-WRT> fconfig -i

Initialize non-volatile configuration - continue (y/n)? y


Run script at boot: false
Use BOOTP for network configuration: true
Default server IP address:
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT>
Hace varias preguntas, la primera es “y”, la segunda es “false”, “true” y así como ven en el
ejemplo.

 Ejecuten fis_init y respondan “y” a la pregunta:


DD-WRT> fis init

About to initialize [format] FLASH image system - continue (y/n)? y


*** Initialize FLASH Image System
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT>
Configuren la red, indicando como remote host la IP de su computadora:

DD-WRT> ip_address -h 192.168.1.2

IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0


Default server: 192.168.1.2
 Ya con esto, podemos cargar ap61.rom (load -r -b %{FREEMEMLO} ap61.rom)
DD-WRT> load -r -b %{FREEMEMLO} ap61.rom

Using default protocol (TFTP)


Raw file loaded 0x80080000-0x800a8717, assumed entry at 0x80080000
DD-WRT>
 Ejecutamos fis create -l 0x30000 -e 0xbfc00000 RedBoot
DD-WRT> fis create -l 0x30000 -e 0xbfc00000 RedBoot

An image named 'RedBoot' exists - continue (y/n)? y


... Erase from 0xbfc00000-0xbfc30000: ...
... Program from 0x80080000-0x800a8718 at 0xbfc00000: ...
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT>
Ya con esto, hemos reemplazado el bootloader, ahora vamos a montar el sistema operativo.
 Reiniciamos el equipo:
DD-WRT> reset

Instalar DD-WRT
Este es el resumen de comandos a ejecutar:

 fis init
 ip_address -h 192.168.1.2
 load -r -b 0x80041000 linux.bin
 fis create linux
 fconfig boot_script true
 fconfig boot_script_timeout 5
Ejecutamos el fis_init

DD-WRT> fis init

About to initialize [format] FLASH image system - continue (y/n)? y


*** Initialize FLASH Image System
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT>
NOTA: este comando suele durar bastante, un promedio de 3 a 5 minutos.

Configuramos el servidor remoto y cargamos el SO:

DD-WRT> ip_address -h 192.168.1.2

IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0


Default server: 192.168.1.2
DD-WRT> load -r -b 0x80041000 linux.bin

Using default protocol (TFTP)


Raw file loaded 0x80041000-0x803ddfff, assumed entry at 0x80041000
DD-WRT>
Y ejecutamos los siguientes comandos:

DD-WRT> fis create linux


... Erase from 0xbfc30000-0xbffcd000:
..........................................................

... Program from 0x80041000-0x803de000 at 0xbfc30000:


..........................................................

... Erase from 0xbffe0000-0xbfff0000: .

... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .

DD-WRT> fconfig boot_script true

boot_script: Setting to true

Update RedBoot non-volatile configuration - continue (y/n)? y

... Erase from 0xbffe0000-0xbfff0000: .

... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .

DD-WRT> fconfig boot_script_timeout 4

boot_script_timeout: Setting to 4

Update RedBoot non-volatile configuration - continue (y/n)? y

... Erase from 0xbffe0000-0xbfff0000: .

... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .

DD-WRT>

DD-WRT> fconfig bootp false

bootp: Setting to false

Update RedBoot non-volatile configuration - continue (y/n)? y

... Erase from 0xbffe0000-0xbfff0000: .

... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .


DD-WRT>

Ya podemos considerar el equipo operativo y con DD-WRT; sin embargo, vamos a


configurar algunos valores por defecto:

DD-WRT> fconfig

Run script at boot: true

Boot script:

Enter script, terminate with empty line

>> fis load -l linux


>> exec
>>
Boot script timeout (1000ms resolution): 4
Use BOOTP for network configuration: false
Gateway IP address:
Local IP address:
Local IP address mask:
Default server IP address:
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT>
Es importante que el bootscript contenga lo indicado en negrillas:

fis load -l linux

exec

Luego de configurado los valores por defecto, configuro la red local del DIR-300:

DD-WRT> fconfig bootp_my_ip 192.168.1.1


bootp_my_ip: Setting to 192.168.1.1
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fconfig bootp_my_ip_mask 255.255.255.0
bootp_my_ip_mask: Setting to 255.255.255.0
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fconfig bootp_my_gateway_ip 0.0.0.0
bootp_my_gateway_ip: Setting to 0.0.0.0
DD-WRT>
En mi caso, he mantenido la sub-red 192.168.1.0/24

Reiniciamos el equipo:

DD-WRT> reset

En una primera oportunidad, el equipo tardará un poco en arrancar, algo como 30 segundos,
verán parpadear el botón de WPS 2 veces, luego de lo cual, el equipo estará completamente
listo.

Asignense una IP (o ejecuten dhclient eth0) en la subred 192.168.1.0/24 y apunten un


navegador a la IP 192.168.1.1:

Luego, cuando le
dan click a “SETUP” por primera vez, verán esto:
Asignen un
nombre de usuario y una clave de administración al equipo y listo!.
Disfruten DD-WRT en su equipo DIR-300!.

Happy Hacking!

Potrebbero piacerti anche