- [edit] Initial flashing instruction
- [edit] Install RedBoot
- [edit] Install DD-WRT
- [edit] Recovery and Upgrade
- [edit] Redboot access script for Windows
- [edit] Redboot access script for Linux
- [edit] Putty
- [edit] Telnet
- [edit] Flashing back to stock firmware
- [edit] Hardware
- [edit] Serial port
- [edit] Initial flashing instruction
- [edit] Install RedBoot
- [edit] Install DD-WRT
- [edit] Recovery and Upgrade
- [edit] Redboot access script for Windows
- [edit] Redboot access script for Linux
- [edit] Putty
- [edit] Telnet
- [edit] Flashing back to stock firmware
- [edit] Hardware
- [edit] Serial port
[edit] Initial flashing instruction
See Where do I download firmware? for links to files to upgrade firmware.
Windows flashing instruction for the D-Link DIR-300 to DD-WRT (by Brainslayer, modified by Sash, v24_SP1 specific added by Deepak)
[edit] Install RedBoot
configure your local ip to 192.168.20.80 connect your lan cable to the WAN port of the router. plugoff the power cord and replug it. You must press the RESET key for 5 sec. now enter the redboot using telnet and ip 192.168.20.81 and port 9000. connect your lan cable to the dir300 wan port. you might need several tries since its only available for 1 second after aprox. 5 sec. of booting (below is a Windows & Linux access script for an easy way to connect to redboot)
When you succeed you will be rewarded with a RedBoot> prompt.
DIR-300 Info:
IP: 192.168.20.81/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.20.80
now start a local tftp server on your computer and place ap61.ram as well as ap61.rom in the root dir of this server
back to the redboot enter:
now a new temporarily bootloader should start. (on serial console it will display some warning. but you dont need to care about). It will be waiting for connection at the LAN side of the router, so follow the instructions that follow. Plug off your cable from the wan port and reconfigure your local (computer) ip to 192.168.1.2 (set your DHCP server to serve 192.168.1.1 as the only address in the DHCP pool and the TFTP must also be available at 192.168.1.2). Now you should be pluging on to any of the lan ports. Then connect via telnet to 192.168.1.1 (or to the ip your dhcp server served to the redboot) and port 9000. A DD-WRT> prompt should welcome you.
IMPORTANT: while doing the following steps. never plugoff the lan cable or the power cord
fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System . Erase from 0xbffe0000-0xbfff0000: . . Program from 0x807f0000-0x80800000 at 0xbffe0000: . 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 load -r -b % ap61.rom Using default protocol (TFTP) Raw file loaded 0x80080000-0x800a8717, assumed entry at 0x80080000 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 0x807f0000-0x80800000 at 0xbffe0000: . reset
now the unit will reboot and the new bootloader will be executed and is waiting for your connection. this will take 30+ sec.
[edit] Install DD-WRT
The following will work for the initial flash AND a recovery
connect to the bootloader with telnet on port 9000 and ip 192.168.1.1 (If you have installed Micro_Redboot read the wiki page about it first)
now do the following (consider that fis create operations are taking sometimes *several* minutes to finish, in my particular case it took more than 5 minutes):
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
now type fconfig again and configure the bootscript to:
and press enter for every other option to confirm the defaults.
Now type reset again. The unit should now boot dd-wrt and work as known from other atheros based platforms
You are done now. Wait for your router to reboot. It will take about 1-2 minutes. It may blink and reset once or twice (as noted).
Now open a Browser and connect to address 192.168.1.1 you should be able to see the dd-wrt page.
[edit] Recovery and Upgrade
connect to the bootloader with telnet on port 9000 and ip 192.168.1.1
do the following: (consider that fis create operations are taking sometimes several minutes to finish)
now load the latest linux.bin from your tftp-server:
ip_address -h 192.168.1.2 load -r -b 0x80041000 linux.bin fis create linux
[edit] Redboot access script for Windows
Make a folder and download putty.exe to it
create a file in the same folder called redboot.txt, with the following content:
create a file in the same folder called redboot.bat with the following content:
start the bat file and power on the router. here comes redboot
[edit] Redboot access script for Linux
[edit] Putty
download putty.exe to c:\ create a file called redboot.txt, with the following content:
create a file called redboot in the same folder with the following content:
#!/bin/bash echo echo "" echo "Enter hostname or ip address: " read host while true do if eval "ping -c 1 $host" > /dev/null; then putty telnet://$host 9000 -m redboot.txt echo "Router Awake" break else echo "Waiting for Redboot to boot. Press CTRL + C to quit" sleep 1 fi done
[edit] Telnet
If you don’t want to install putty for linux, you may use standard telnet and arping. It would be so (replace eth2 by your ethernet card name):
#!/bin/sh echo "192.168.20.81 send ip" >> ~/.telnetrc arping -f 192.168.20.81 -I eth2; telnet 192.168.20.81 9000
[edit] Flashing back to stock firmware
[edit] Hardware
[edit] Serial port
[edit] Initial flashing instruction
See Where do I download firmware? for links to files to upgrade firmware.
Windows flashing instruction for the D-Link DIR-300 to DD-WRT (by Brainslayer, modified by Sash, v24_SP1 specific added by Deepak)
[edit] Install RedBoot
configure your local ip to 192.168.20.80 connect your lan cable to the WAN port of the router. plugoff the power cord and replug it. You must press the RESET key for 5 sec. now enter the redboot using telnet and ip 192.168.20.81 and port 9000. connect your lan cable to the dir300 wan port. you might need several tries since its only available for 1 second after aprox. 5 sec. of booting (below is a Windows & Linux access script for an easy way to connect to redboot)
When you succeed you will be rewarded with a RedBoot> prompt.
DIR-300 Info:
IP: 192.168.20.81/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.20.80
now start a local tftp server on your computer and place ap61.ram as well as ap61.rom in the root dir of this server
back to the redboot enter:
now a new temporarily bootloader should start. (on serial console it will display some warning. but you dont need to care about). It will be waiting for connection at the LAN side of the router, so follow the instructions that follow. Plug off your cable from the wan port and reconfigure your local (computer) ip to 192.168.1.2 (set your DHCP server to serve 192.168.1.1 as the only address in the DHCP pool and the TFTP must also be available at 192.168.1.2). Now you should be pluging on to any of the lan ports. Then connect via telnet to 192.168.1.1 (or to the ip your dhcp server served to the redboot) and port 9000. A DD-WRT> prompt should welcome you.
IMPORTANT: while doing the following steps. never plugoff the lan cable or the power cord
fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System . Erase from 0xbffe0000-0xbfff0000: . . Program from 0x807f0000-0x80800000 at 0xbffe0000: . 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 load -r -b % ap61.rom Using default protocol (TFTP) Raw file loaded 0x80080000-0x800a8717, assumed entry at 0x80080000 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 0x807f0000-0x80800000 at 0xbffe0000: . reset
now the unit will reboot and the new bootloader will be executed and is waiting for your connection. this will take 30+ sec.
[edit] Install DD-WRT
The following will work for the initial flash AND a recovery
connect to the bootloader with telnet on port 9000 and ip 192.168.1.1 (If you have installed Micro_Redboot read the wiki page about it first)
now do the following (consider that fis create operations are taking sometimes *several* minutes to finish, in my particular case it took more than 5 minutes):
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
now type fconfig again and configure the bootscript to:
and press enter for every other option to confirm the defaults.
Now type reset again. The unit should now boot dd-wrt and work as known from other atheros based platforms
You are done now. Wait for your router to reboot. It will take about 1-2 minutes. It may blink and reset once or twice (as noted).
Now open a Browser and connect to address 192.168.1.1 you should be able to see the dd-wrt page.
[edit] Recovery and Upgrade
connect to the bootloader with telnet on port 9000 and ip 192.168.1.1
do the following: (consider that fis create operations are taking sometimes several minutes to finish)
now load the latest linux.bin from your tftp-server:
ip_address -h 192.168.1.2 load -r -b 0x80041000 linux.bin fis create linux
[edit] Redboot access script for Windows
Make a folder and download putty.exe to it
create a file in the same folder called redboot.txt, with the following content:
create a file in the same folder called redboot.bat with the following content:
start the bat file and power on the router. here comes redboot
[edit] Redboot access script for Linux
[edit] Putty
download putty.exe to c:\ create a file called redboot.txt, with the following content:
create a file called redboot in the same folder with the following content:
#!/bin/bash echo echo "" echo "Enter hostname or ip address: " read host while true do if eval "ping -c 1 $host" > /dev/null; then putty telnet://$host 9000 -m redboot.txt echo "Router Awake" break else echo "Waiting for Redboot to boot. Press CTRL + C to quit" sleep 1 fi done
[edit] Telnet
If you don’t want to install putty for linux, you may use standard telnet and arping. It would be so (replace eth2 by your ethernet card name):
#!/bin/sh echo "192.168.20.81 send ip" >> ~/.telnetrc arping -f 192.168.20.81 -I eth2; telnet 192.168.20.81 9000