D-Link DIR-300(Bx)/DIR-600(Bx)

This device is NOT RECOMMENDED for future use with OpenWrt due to low flash/ram.
DO NOT BUY DEVICES WITH 4MB FLASH / 32MB RAM if you intend to flash an up-to-date and secure OpenWrt version onto it! See 4/32 warning for details.

1) This device does not have sufficient resources (flash and/or RAM) to provide secure and reliable operation.
This means that even setting a password or changing simple network settings might not be possible any more, rendering the device effectively useless. See OpenWrt on 4/32 devices what you can do now.

2) OpenWrt support for this device has ended in 2022.
19.07.10 was the last official build for 4/32 devices.

:!: Note: See D-Link DIR-300 for D-Link DIR-300 Rev.A1 (different hardware (HW))
:!: Note: See D-Link DIR-600 for D-Link DIR-600 Rev.A1 (different hardware (HW))

Cleanup Required!
This page or section needs cleanup. You can edit this page to fix wiki markup, redundant content or outdated information.

Known clones of this device:

  • D-Link Dir-300 B1: D-Link DIR-600 B1, D-Link DIR-600 B2.
  • D-Link Dir-300 B5: D-Link DIR-600 B5?, ZyXEL Keenetic Start?

Warning! Wireless support is likely to be broken in the latest versions (14.07, 15.05 and trunk). Solution: Adding an option ‘option disassoc_low_ack 0’ to /etc/config/wireless in the config wifi-iface section.

Difference beetween DIR-300 B1/B2/3 and DIR-600B1/B2 is only factory images for install via web interface in stock firmware.

Revision DIR-600 B5E is supported under openwrt with firmware DIR-610-A1!

Warning!!! Newer images are bricking DIR-600 B5E if sysupgrade is not written before first reboot! So after factory flash don't reboot, just write the sysupgrade.

B6 + B7 - cheaper versions of B5

Via web interface

  • Download factory image.
  • Log in to router web interface and select the firmware image.
  • Sit and wait while it flashes. It will reboot and be accessible at

:!: NOTE: As of July 2013 only access via the router's emergency web interface is required to install OpenWrt on this device. The normal web interface might complain about invalid image files and thus not work (as seen with vendor firmware version 2.14).

Use the emergency web interface.

:!: NOTE: Routers with new firmwares do not accept the current image through the emergency room and are therefore not flashable this way. To circumvent this, you should downgrade u-boot before flashing. Using curl instead of web browser may be worth trying.

Can be flashed from Emergency Mode with install file.
If you are able to have OpenWRT after first reboot and next reboot having problems (Still in emergency mode, or won't boot):
- Flash again OpenWRT from Emergency Mode
- From OpenWRT do an update with SysUpgrade file

Have a look at this blog: http://diy.viktak.com/2016/02/installing-openwrt-on-d-link-dir-600.html

  1. First you have to downgrade the u-boot to get a emergency web interface. To do so you can use the firmware created only for this purpose from: https://www.dropbox.com/s/jfmqx2qlrhe0oje/dir600b_v2.17_bbox-v1.19.1.bin?dl=0
  2. Use the emergency web interface on
  3. Upload the ...-ramips-rt305x-dir-610-a1-squashfs-factory.bin firmware.
  4. After this your OpenWrt is running under

:!: NOTE: Suggested firmware openwrt-ramips-rt305x-dir-610-a1-*.bin leads to a kernel panic.
VFS: Cannot open root device “(null)” or unknown-block(0,0): error -6
The problem exists in OpenWrt 14.07, 15.05 and 15.05.1.
The reason is the lacking option
in target/linux/ramips/rt305x/config-3.18 resp. config-3.10.
This means you have to add the line above and build OpenWrt from the sources.
As of August 2017 Debian 8 Jessie will work, latest versions will fail due to perl incompatibility.

What if Emergency Web Interface fails?

In case no Image would flash successfully (even stock firmware) one can still do this to the rescue:

  • connect a USB2UART converter with 3.3 Voltage: (see this blog entry from above for howto connect TX, RX and GND). You might want to consider soldering pins to the ports for easier access.
  • if your device hangs while RX is connected, place a ~1k Ohm resistor in series with RX. When it hangs all LEDs except Power will turn on and stay on, whereas they normally turn on briefly and then power LED blinks in 1s intervals indicating Emergency Mode.
  • create initramfs-kernel.bin from scratch with OpenWRT 19.07 (or use/find an older version above) for DIR-610-A1(later versions might be too big) but comment out the line containing 'KERNEL := $(KERNEL_DTB)' for DIR-610-A1 in target/linux/ramips/image/rt305x.mk. If you compiled successfully an initramfs-kernel.bin will be generated containing a uImage header.
  • copy that initramfs-kernel image to your tftp server.
  • load your fresh initramfs-kernel.bin with first option *1* -- load system from tftp into SDRAM -- (you have to be quick - the device will wait for 1 second before it uses its default value *3*, which will try to load the system from flash).
  • if successful you will get a running kernel and will be able to e.g. scp an official or custom made squashfs-sysupgrade image for DIR-610-A1 to /tmp and use that to flash the device with sysupgrade.

:!: NOTE: New D-Link firmwares may contain new u-boot bootloader, so you may have problems with installing via emergency web interface.

The DIR-600 and DIR-300 B routers have an emergency HTTP web interface that is accessible at or for B5. With this you can upload firmware if you accidently locked yourself out of the router or broke the installed firmware.

First, download a pre-compiled build for the DIR-600 or DIR-300 B series. Download links see above. If you're flashing from the original D-Link firmware, use the factory builds.

:!: NOTE: Use the correct build for your hardware version! This can be found on the router itself or on the box it came in. e.g.: H/W Ver: B2.

  • To access the emergency web interface to flash the new firmware first unplug the power cable from the router, press and hold the reset button, plug the power cable back in while still holding the reset button and hold it for at least 5 seconds until the orange LED starts blinking, then release the reset button.
  • Another method to access the emergency web interface is to hold the reset button for 30-45 seconds with power plugged in.
  • Attach a network cable to one of the LAN ports (1 to 4) on the router and the other end to your computers Ethernet port.
  • Set your computers Ethernet IP to: and the Subnet to (for B5 it's and Subnet

:!: NOTE: Disable any other interfaces present on your computer before proceeding, as example wireless interfaces, to minimize confusion.

  • Open a web-browser on your computer and access the emergency web interface at or for B5.
  • Choose 'browse' and select your previously downloaded firmware file (.bin file extension).
  • Press 'upload' and watch the timer countdown from 90 seconds. At the end of the countdown the webpage will try to refresh but will fail.
  • At this point set your computers network interface to obtain an IP address automatically (DHCP) and it should obtain a new address in the 192.168.1.X range.

You can now login to your router flashed with OpenWrt via your web-browser at:

If you can't connect via your browser connect via SSH to, set a password (optional for now but recommended), enable WiFi, connect your routers WAN-Port to an existing network of yours, connect to the now open Wireless Network called “OpenWrt”, SSH into again, do opkg update and opkg install luci to get a web interface.

:!: NOTE: The router might have too little memory to install LuCI successfully.

:!: NOTE: Upload may fail with modern browsers like Chrome, Safari, etc. If upload page times out or router restarts, use curl instead, i.e.:

curl --form filename=@openwrt-*-squashfs-factory.bin --form post=Upload\ firmware\ NOW

Found here http://forums.dlink.com/index.php?topic=11001.msg249218#msg249218.

If you have already installed a version of OpenWrt and you wish to upgrade your installation you can use sysupgrade.

  • First upload the new firmware on your device.
  • Then flash it with sysupgrade.
scp openwrt-*-squashfs-sysupgrade.bin root@
sysupgrade /tmp/openwrt-*-squashfs-sysupgrade.bin

If you wish to reset your configuration you can add -n to sysupgrade.

Details for DIR-300 B1

Architecture: MIPS
Vendor: Ralink
bootloader: U-Boot
System-On-Chip: RT288x/RT305x WiSoC
CPU/Speed MIPS24KEc@320 Mhz w/ 16KB I cache/16KB D cache
Flash-Chip: Spansion S29GL032N90TFI04
Flash size: 4096 KiB
RAM: Winbond W9825G6JH-6
RAM: 32 MiB
Wireless: Ralink RT3050F 2.4ghz 802.11bgn
Ethernet: integrated 5 x10/100E w/ vlan support swconfig
Internet: no
USB: no
Power: external 5V 1.2A
Serial: Yes

Details for DIR-300 B7

Architecture: MIPS
Vendor: Ralink
bootloader: U-Boot
System-On-Chip: RT5350 WiSoC
CPU/Speed MIPS24KEc@360 Mhz w/ 32KB I cache/16KB D cache
Flash-Chip: ?
Flash size: 4096 KiB
RAM: ESMT M12L2561616A
RAM: 32 MiB
Wireless: Ralink RT5350 2.4ghz 802.11bgn
Ethernet: integrated 5 x10/100E w/ vlan support swconfig
Internet: no
USB: no
Power: external 5V 1.2A
Serial: Yes

DIR-300 B1

dir-300b1_case-top.jpg dir-300b1_case-bottom.jpg

D-link DIR-300 REV.B

DIR-300 B5

PCB top:

PCB bottom:

DIR-300 B7

PCB top:

D-link DIR-300 REV.B Serial

1 2 3 4 (square)

See: http://infodepot.wikia.com/wiki/D-Link_DIR-300_vB1

3.3V TTL Levels - 57600 Baud

This procedure is for DIR-600 B5E.

  1. Solder the pins RX,GND,TX as shown above. Don't use VCC.
  2. Connect a serial cable port.serial.cables
  3. Start a terminal programm, for example “minicom -D /dev/ttyUSB0 -b 57600”
  4. Copy a working D-Link firmware or xxx-squashfs-factory.bin to /mydir.
  5. Start a tftp server on your PC, for example “atftpd --daemon /mydir”
  6. Power on the router.
  7. For 1s you can see the U-Boot bootloader menu, see below
  8. Choose 2 in the right moment, then Y
  9. You will be asked for IP of Router and PC and the name of the firmware image.
  10. The router will restart after 2 minutes and try to start the new image.
   Please choose the operation:
   1: Load system code to SDRAM via TFTP.
   2: Load system code then write to Flash via TFTP.
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.
   A: Load Runtime code then write to Flash via Serial.

The DIR-300/600 Rev. B does not appear to have a JTAG interface.

For more JTAG details see:

You can control some of the GPIO-LEDs by writing “1” (on) or “0” (off) to the specific GPIO-Files. Note: Since Chaos Calmer (15.05) you should use d-link instead of dir-600-b2.


echo "1" > /sys/class/leds/rt2800soc-phy0::radio/brightness

Power LED:

echo "1" > /sys/class/leds/dir-600-b2:amber:status/brightness

Green Power LED (Same LED as the previous, but different color):

echo "1" > /sys/class/leds/dir-600-b2:green:status/brightness


echo "1" > /sys/class/leds/dir-600-b2:blue:wps/brightness 

Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless etc.

On a basic installation the wireless LED does not blink if data is transmitted and/or received. To fix this simply append this block to /etc/config/system:

option 'led' 'wlan_led'
	option 'name'		'WLAN'
	option 'sysfs'		'rt2800pci-phy0::radio'
	option 'trigger'	'netdev'
	option 'dev'		'wlan0'
	option 'mode'		'link tx rx'

More detailed information about LEDs can be found here.


If you forgot your password, broke one of the startup scripts, firewalled yourself out, or corrupted the JFFS2 partition, you can get back in by using OpenWrt's failsafe mode.

  • Unplug the router's power cord.
  • Connect the router's LAN1 port directly to your PC.
  • Configure your PC with a static IP address between and Eg. (gateway and DNS is not required).
  • Plug the power on and wait for the DMZ LED to light up.
  • While the DMZ LED is on immediately press any button (Reset and Secure Easy Setup will work) a few times .
  • If done right the DMZ LED will quickly flash 3 times every second.
  • You should be able to telnet to the router at now (no username and password)

NOTE: The root file system in failsafe mode is the SquashFS partition mounted in readonly mode. To switch to the normal writable root file system run mount_root and make any changes. Run mount_root now.

  1. Forgot/lost your password and you like to set a new one


  1. Forgot the routers IP address

uci get network.lan.ipaddr

  1. You accidentally run 'ipkg upgrade' or filled up the flash by installing large packages (clean the JFFS2 partition and start over)

mtd -r erase rootfs_data If you are done with failsafe mode power cycle the router and boot in normal mode.

For connection of STB, or replacement of one of LAN ports on WAN (in case of faulty WAN) we involve the 4th port of a router of dir300b1 - in other port won't work! Example /etc/config/network

 config switch_vlan
        option device 'rt305x'
        option vlan '1'
        option ports '1 2 3 6t'

config switch_vlan
        option device 'rt305x'
        option vlan '2'
        option ports '0 4 6t'

Model DIR-300 B1

  • IP :
  • Username : “admin”
  • Password : “” (leave field blank)
  • Polarity : ⊕―כּ―⊖
  • Input : 5V / 1.2A
  • FCC ID : KA2DIR300B1

Model DIR-600 B1/B2


There is a working mod to add a SD-card slot to your DIR-300b1. Read post: https://forum.openwrt.org/viewtopic.php?pid=183660#p183660

Extroot pivot-root for SD mod DIR-300 B1

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2024/02/12 08:58
  • by