D-Link DIR-615

Supported Versions

Revision Version Supported Model Specific Notes
C1, C2 Attitude Adjustment RC1 Full support, eth/wireless/leds/buttons ok
D1/D2 trunk Partly working - problems with ethernet. Requires manual custom build.
D3 12.09 (Attitude Adjustment) Workarounds available for: (1) manual 'ifup wan', (2) WAN LED and (3) Intel Wi-Fi Link 1000 BGN; Forum; Connection resets
D4 trunk Working with AA (12.09) Forum
E1 - E4 Backfire (Works with DIR-600 rev. A1 firmware)*, LEDs should work since R29973, support for E4 merged with DIR-600 A1 in R29976
H1 trunk Partly working - Requires manual custom build with network configuration
H2 trunk See H1 or Forum

NOTE: ONLY revision C1 and C2 are fully supported yet. *You might have to change the magic number at the end of the OpenWRT firmware to the one used by the stock DIR-615 firmware to get it to upload.
Frys FR-300RTR is the same as E1 Forum
* April 2013 - Version E4 is supported and known to work with attitude adjustment 12.09 (link to flash file)) , see installation instruction below

Unsupported Versions

Revision Model Specific Notes
A1?
B2 Ubicom & SPI Flash with 2 MB only
D5 Ralink RT3352F SoC
F1, F2 SPI Flash with 2 MB only
J1 Realtek RTL8196C & SPI Flash with 2 MB only

Hardware Highlights

FIXME add revisions

Revisions CPU Ram Flash Network Gigabit USB Serial JTag
A1 Marvell 32MB 8MB 4x1 No No Yes Yes
B2 Ubicom 8MB 2MB 4x1 No No Yes Yes
C1, C2 Atheros 32MB 4MB 4x1 No Yes* Yes No
D1 - D5 Ralink 32MB 4MB 4x1 No No Yes No
E1, E2 Atheros 32MB 4MB 4x1 No Yes* Yes Yes
E3,E4,E5 Atheros 32MB 4MB 4x1 No Yes* Yes Yes
F1, F2 Realtek 16MB 2MB 4x1 No No Yes Yes
G1 Ralink 32MB 8MB 4x1 No No Yes ?
H1, H2 Ralink 32MB 4MB 4x1 No No Yes Yes
I1 Atheros 32MB ? ? no no ? ?
I2
J1 Realtek 16MB 2MB 4x1 No No Yes Yes
K1 Broadcom 32MB 4MB 4x1 No No No Yes
K2 Broadcom 32MB 4MB 4x1 No No No Yes
M1 Realtek 32MB 4MB 4x1 No No No Yes

Source Code

DIR-615 K1 External Link

DIR-615 I1 External Link

Others External Link

Installation

Rev. C1 and E4

Installation is fairly straight forward for this router, you will need to access the D-Link recovery console with the steps below.

  1. As per the note at http://www.dd-wrt.com/wiki/index.php/DIR-615C , "If your dlink 615 C1 is at f/w 3.12 or 3.11 you may have to revert it to 3.10". The older firmware is available from D-Link support.
  2. Set a static IP on your PC to '192.168.0.2'.
  3. Press and hold the reset button until the power LED starts blinking orange (usually takes ~45 seconds). Or, hold down the reset button while powering on the router, this is much quicker and only takes 5-15 seconds.
  4. Go to 'http://192.168.0.1' from your PC web browser. (Note: most modern browsers don't work, see below, Firefox 13 portable version is known to work)
  5. "Browse" and select the OpenWrt firmware (e.g. 'openwrt-ar71xx-dir-615-c1-squashfs-factory.bin').
  6. Let router flash the image, don't worry if it reboots before it reaches 100%. If the page loads forever or times out, your browser is unsupported. See below.
  7. obtain new IP from the router via DHCP and follow firstlogin

Browser Issues

The firmware update system doesn't support the HTTP header Expect: 100-continue, which is used in POST requests by most modern browsers. If the browser sends this header, it will wait for the server to send a provisional response with status 100 Continue before sending the file contents. This feature was added in HTTP/1.1 to allow servers to reject uploads without needing to upload the file first. The router's built-in HTTP server claims to support HTTP/1.1, but it never sends the 100 Continue response so the browser waits forever or eventually times out.

Internet Explorer 6,7,8 on Windows is known to work, as well as Firefox 13.0.1 on GNU/Linux, but problems have been reported with newer versions and most other browsers on GNU/Linux. Older versions of Firefox (4.x and below) are known to have problems, several people have been more successful with newer versions. Alternatively, you can use the curl command-line HTTP client like so:

curl -0vF files=@openwrt-ar71xx-dir-615-c1-squashfs-factory.bin http://192.168.0.1/cgi/index

There seems to be some compatibility issues with the firmware update system network stack and at least a Linux 3.5.3 kernel and curl 7.27.0. Even forcing curl down to HTTP/1.0 resulted in a hang. One known working configuration is NetBSD 5.1.2 with curl 7.26.0. *A use of Firefox 13 portable edition (on windows 7) was verified as successful. Also known that local IP should be 192.168.0.10. Then FF 13 portable also should work.

Rev. C2

Same actions(C1 and C2 have same hardware and openwrt image), but to upload openwrt image in recovery mode, you must to edit C1 openwrt image by hex editor.
Just add 30 31 before lastest not zero values:

Rev. D1-D4

These use a Ralink chipset that only has preliminary support and requires a manual build. D1/D2 models are known to have problems with the latest ethernet driver(s) and require the use of an older driver. D3/D4 are relatively stable with an unmodified trunk build.

The D4 works well if you treat it exactly the same as a DIR-600/B2

FIXME: D1/D2 build instructions

The DIR-615D maps to DIR-300b1 therefore there is no dedicated target for 615-D.

D2 can be flashed with Attitude Adjustment - RC1: openwrt-ramips-rt305x-dir-615-d-squashfs-factory.bin Problems when flashing with AA RC1 firmware:

  1. ethernet only works when trying to connect over 10baseT/UTP (10mbit/sec)
  2. wireless needs workaround

Wireless: It is fixed in the recent Attitude Adjustment branch and works out of box. However, if you are using precompiled AA RC1 you will need a workaround: https://dev.openwrt.org/ticket/12636

Ethernet: The only way to get this fully working is to recompile using old ramips ethernet drivers (from revision: 24328) To do this:

  1. get the desired branch/trunk
  2. navigate to target/linux/ramips/files/drivers/net/ethernet/ramips
  3. remove all *.c and *.h files
  4. rename ramips.c to remips_main.c
  5. continue with configuration/compilation as normal

This has been tested and the router works flawlessly.

Revision D3

Works with Attitude Adjustment (12.09).

1. Download factory.bin for DIR-615.

2. Open Emergency Room.

3. Upload the firmware. If the upload does not start, just try another browser, e.g. Firefox.

4. Perform initial configuration (First login).

5. There could be a problem, that the WAN connection is not automatically configured because the 'wan' interface is not enabled during boot. To fix it:

  • Variant 1: login via telnet/ssh and type 'ifup wan'; edit /etc/rc.local and add 'ifup wan' there to automatically enable it during boot.
  • Variant 2: go to luci → System → Startup → 'Local startup' and add line 'ifup wan' before 'exit 0' line in rc.local. Reboot router.

6. There could be serious problems (reconnects, very high packet loss rate) with Intel Wi-Fi Link 1000 BGN Cards on Windows (the factory firmware from D-Link works just well with these cards). To fix it with OpenWRT, download and install latest drivers from Intel web site). Then go to Network and Sharing Center, open properties of your wireless adapter, then Configure, then Advanced and disable 802.11n mode there.

7. By default the WAN LED is not configured correctly. To fix it: Go to System → LED Configuration and change the first LED config as follows:

  • Name: Status LED (green)
  • LED Name: d-link:green:wan
  • Default state: unchecked
  • Trigger: netdev
  • Device: eth0.2 (you can find this on Network → Interfaces under WAN)
  • Trigger Mode: All checked (Link On, Transmit, Receive)

8. There could be a regular connection resets. The problem is described here: Ticket, Forum, SuperUser

D4

FIXME: D4 build instructions

Updated D4 install instructions (AArc2) are here: https://forum.openwrt.org/viewtopic.php?id=35184

FIXME: The DIR-825 has a better description: installation.

Rev. H1

Requires at minimum a customized /etc/config/network. If you have a working network with DHCP server you can put the following in your /etc/config/network (you have to edit via serial connection for the first time or have a custom build with the modified /etc/config/network):

config interface 'loopback'
        option ifname   'lo'
        option proto    'static'
        option ipaddr   '127.0.0.1'
        option netmask  '255.0.0.0'

config interface 'lan'
        option ifname   'eth0'
	option hostname 'DIR-615_H1'
        option proto    'dhcp' 

Now you should be able to telnet to DIR-615_H1

Rev. H1 Build Instruction

This documentation refers to current trunk of 03.04.2013. Instead of using the above procedure, you can build the image following the next steps. It will create a working image with dhcp on wan and fixed ip 192.168.0.1 on lan.

- Download current trunk. I've downloaded it from git mirror:

git clone git://nbd.name/openwrt.git
- Add the file "target/linux/ramips/rt305x/profiles/d-link.mk" with content (ref:DIR-615 H1 current sources):
#
# Copyright (C) 2012 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

define Profile/DIR615H1
    NAME:=DIR-615 H1
    PACKAGES:=\
         kmod-usb-core kmod-usb-ohci \
         kmod-usb2 kmod-ledtrig-usbdev \
         usb-modeswitch usb-modeswitch-data \
         kmod-usb-serial-option
endef

define Profile/DIR615H1/Description
    Package set for DIR-615 H1
endef

$(eval $(call Profile,DIR615H1))
- edit file "target/linux/ramips/base-files.mk", remove the line :
    rm -f $(1)/etc/config/network
- Edit the file "package/base-files/files/etc/config/network" with the settings you want. For example:
# Copyright (C) 2006 OpenWrt.org
config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'lan'
        option ifname 'eth0.1'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.0.1'
        option netmask '255.255.255.0'

config interface 'wan'
        option ifname 'eth0.2'
        option hostname 'DIR-615-H1'
        option proto    'dhcp'

config switch
        option name rt305x
        option reset 1
        option enable_vlan 1

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

config switch_vlan
        option device rt305x
        option vlan 2
        option ports '4 6t'
- In case you have already build something make a dirclean
make dirclean
- Configure the image:
make menuconfig
Target System (Ralink RT288x/RT3xxx)
Subtarget (RT305x based boards)
Target Profile (DIR-615 H1)
- Build the image:
make -j 5

Upgrading OpenWrt

Firmware recovery

generic.debrick

Revisions D1 to D4, H1 as well as I1 are pretty much unbrickable as they have a built-in firmware recovery mode. Revision D5 does not have built in recovery.

To access, simply hold down the reset button while powering on the router. The power LED should blink orange. Set your computer with a static IP in the 192.168.0.x range, and open 192.168.0.1 in a web browser. Recovery mode loads up within a few seconds, but doesn't respond to pings. If the power LED is blinking orange the above page should be accessible.

You will need to flash either a stock firmware image or Openwrt-factory image, *not* a sysupgrade image.

Basic configuration

Since this part is identical for all devices, see Basic configuration.

wireless.overview This router requires the packages kmod-ath9k and wpad-mini.

Specific configuration

Switch Ports (for VLANs)

Numbers 0-3 are Ports 1-4 as labeled on the unit, number 4 is the Internet (WAN) on the unit, 5 is the internal connection to the router itself. Don't be fooled: Port 1 on the unit is number 3 when configuring VLANs. vlan0 = eth0.0, vlan1 = eth0.1 and so on.

Port Switch port
Internet (WAN) 4
LAN 1 3
LAN 2 2
LAN 3 1
LAN 4 0

Hardware

Info

FIXME add revisions

Revision CPU Flash-Chip Flash size RAM-Chip RAM size Wireless Ethernet USB Serial JTAG
B2 Ubicom IP5090U Spansion S25FL016 2 MiB (2Mx8) PoinTec PT460816HG
/ Mira P2S28D40CTP
8 MiB (2x4Mx16) AR5008 2.4ghz b/g/n Marvell 88E6060 1x header on PCB, unpopulated Yes Yes

Revisions B2:

Architecture: MIPS
Bootloader: U-Boot
System-On-Chip: Atheros AR9130
CPU Speed: 400 Mhz
Flash-Chip: W25x32vf1g
Flash size: 4 MiB
RAM-Chip: Winbond W9425G6EH-5
RAM size: 32 MiB (4M x 4 x 16bit)
Wireless: AR9102 802.11n Radio
Ethernet: AR8216 6-port switch
USB: 1x header on PCB, unpopulated
Serial: Yes
JTAG: Yes
Circuit: Dir615C1

Revisions C1/C2:

Architecture: MIPS
Bootloader: U-Boot
System-On-Chip: Atheros AR9130
CPU Speed: 400 Mhz
Flash-Chip: W25x32vf1g
Flash size: 4 MiB
RAM-Chip: Winbond W9425G6EH-5
RAM size: 32 MiB (4M x 4 x 16bit)
Wireless: AR9102 802.11n Radio
Ethernet: AR8216 6-port switch
USB: 1x header on PCB, unpopulated
Serial: Yes
JTAG: Yes
Circuit: Dir615C1

Revisions D1/D2:

Architecture: MIPS
Bootloader: U-Boot
System-On-Chip: Ralink RT3052F Rev 2 on D1/D2, Rev 3 on D3/D4
CPU Speed: 384 Mhz
Flash-Chip: MX29LV320DBTI-70G
Flash size: 4 MiB
RAM-Chip: 2 x w9812g6ih
RAM size: 32 MiB (2 x 2M x 4 x 16bit)
Wireless: SoC integrated
Ethernet: SoC integrated
USB: No
Serial: Yes
JTAG: No

Revisions D5:

Architecture: MIPS
Bootloader: Unknown
System-On-Chip: Ralink RT3352F
CPU Speed: 400 Mhz
Flash-Chip: ESMT F25l32PA
Flash size: 4 MiB
RAM-Chip: ESMT M14D2561616A
RAM size: 32 MiB (4M x 4 x 16bit)
Wireless: SoC integrated
Ethernet: SoC integrated
USB: No
Serial: Yes
JTAG: No

Revision E1/E2:

Architecture: MIPS
Bootloader: U-Boot
System-On-Chip: Atheros AR7240
CPU Speed: 400 Mhz
Flash-Chip: mx25l3205
Flash size: 4 MiB
RAM-Chip: W9425G6EH
RAM size: 32 MiB (4M x 4 x 16bit)
Wireless: AR9283 802.11n Radio
Ethernet: - (cpu direct)
USB: 1x header on PCB, unpopulated
Serial: Yes
JTAG: Yes

Revision E3/E4/E5:

Architecture: MIPS
Bootloader: U-Boot
System-On-Chip: Atheros AR7240
CPU Speed: 400 Mhz
Flash-Chip: MX25L3205
Flash size: 4 MiB
RAM-Chip: A3S56D40ETP
RAM size: 32 MiB (4M x 4 x 16bit)
Wireless: AR9287 802.11n Radio
Ethernet: - (cpu direct)
USB: 1x header on PCB, unpopulated
Serial: Yes
JTAG: Yes

Revision G1:

Architecture: MIPS
Bootloader: U-Boot
System-On-Chip: Ralink RT3052F
CPU Speed: 384 Mhz
Flash-Chip: MX29LV640ETBI-70G
Flash size: 8 MiB
RAM-Chip: 2 x w9812g6ih
RAM size: 32 MiB (2 x 2M x 4 x 16bit)
Wireless: SoC integrated
Ethernet: SoC integrated
USB: Unknown
Serial: Yes
JTAG: Unknown

Revision H1:

Architecture: Mips24kc
Bootloader: U-Boot
System-On-Chip: Ralink RT3352
CPU Speed: 400 Mhz
Flash-Chip: mx25l3205d
Flash size: 4 MiB
RAM-Chip: 2 x ESMT M12L128168A 166 MHz
RAM size: 32 MiB (2 x 2M x 16bit x 4 banks)
Wireless: SoC integrated
Ethernet: SoC integrated
USB: No
Serial: Yes
JTAG: Yes

Revision I1:

Architecture: Mips24kc
Bootloader: ?
System-On-Chip: Atheros AR9341 rev 1.1
CPU Speed: 535 Mhz
Flash-Chip: mx25l3206d
Flash size: ?
RAM-Chip: 1 x W9425g6JH-5
RAM size: 32 MiB (2 x 2M x 16bit x 4 banks)
Wireless: SoC integrated
Ethernet: SoC integrated
USB: No
Serial: ?
JTAG: ?

Revision J1:

Architecture: RLX4181
Bootloader: ?
System-On-Chip: Realtek RTL8196C
CPU Speed: ?
Flash-Chip: Winbond 25Q16BVSIG
Flash size: 2MB
RAM-Chip: Winbond W9812G6JH-6
RAM size: 16 MiB (2M x 16bit x 4 banks)
Wireless: Realtek RTL8192CE
Ethernet: SoC integrated
USB: No
Serial: Yes
JTAG: Yes

Revision K1:

Architecture: ?
Bootloader: ?
System-On-Chip: Broadcom BCM5357C0
CPU Speed: 300 Mhz
Flash-Chip: Macronix MX25L3206EMI-12G
Flash size: 4MB
RAM-Chip: 1 x W9425g6JH-5
RAM size: 32 MiB (2M x 16bit x 4 banks)
Wireless: Broadcom BCM5357C0
Ethernet: SoC integrated
USB: No
Serial: ?
JTAG: Yes

Revision M1:

Architecture: RLX4181
Bootloader: ?
System-On-Chip: Realtek RTL8196C
CPU Speed: ?
Flash-Chip: Winbond 25Q32BVSIG
Flash size: 4MB
RAM-Chip: Winbond W9825G6JH-6
RAM size: 32 MiB (4M x 16bit x 4 banks)
Wireless: Realtek RTL8192CE
Ethernet: SoC integrated
USB: No
Serial: ?
JTAG: Yes

FIXME More info, please!

Photos

Revision Photos page Comment
C1/C2 toh/d-link/dir-615/c1-photos/start This is rev.C2 device photo, but board rev C1!
D1 toh/d-link/dir-615/d1-photos/start Mira DDR memory chips (instead of Winbond)
D2 toh/d-link/dir-615/d2-photos/start Wireless, cpu are unshielded
D3 toh/d-link/dir-615/d3-photos/start Wireless, cpu are unshielded, revD3E
D4 toh/d-link/dir-615/d4-photos/start Wireless, cpu are unshielded
E3/E4/E5 toh/d-link/dir-615/e4-photos/start Wireless, cpu and memory are unshielded on this photo
F1/F2 toh/d-link/dir-615/f1-photos/start This is rev.F1/F2 device photo
H1 toh/d-link/dir-615/h1-photos/start Shield removed
H2 toh/d-link/dir-615/h2-photos/start As-is
K1 OpenWRT forum Wireless, cpu and memory are unshielded on this photo
M1 http://wiki.openwrt.org/_media/media/dir-615.rev.m1.jpg As-is

Opening the case

Note: This will void your warranty!

  • To remove the cover simply remove the 2 back rubber feet.
  • There are two screws holding the PCB to the bottom cover.

Serial

С1/С2 revision:

D-Link DIR-615C2 serial port pinout

Pin1 3.3V
Pin2 RX
Pin3 TX
Pin4 GND

D1/D2 revision:

D-Link DIR-615D1 serial port pinout

Pin1 TX
Pin2 GND
Pin3 3.3V
Pin4 RX

D2 Serial port settings: Speed:57600, Data bits:8, Stop bits:2, Parity: none, Flow control: none

E4 revision:

D-Link DIR-615E4 serial port pinout

Pin3 RX
Pin9 TX
Pin11 GND

Remember to use 12V ↔ 3.3V serial port converter or you might break the router serial pins by overvoltage.

COM port settings: Speed:115200, Data bits:8, Stop bits:1, Parity:none, Flow control:none

H1 revision:

Pin1 3.3V
Pin2 GND
Pin3 TXD
Pin4 RXD

Serial port settings: Speed:57600, Data bits:8, Stop bits:2, Parity: none, Flow control: none

K2 revision:

Pin1 3.3V
Pin2 TXD
Pin3 GND
Pin4 RXD

COM port settings: Speed:115200, Data bits:8, Stop bits:1, Parity:none, Flow control:none

Remember to use 12V ↔ 3.3V serial port converter or you might break the router serial pins by overvoltage.

JTAG

Looks like C1/C2 JTAG lines connected to testpoints tp5-tp8. Pinout is unknown.

E1/E2/E3/E4 has standard MIPS EJTAG JTAG 14-pin header pinout (pic is from E4)

D-Link DIR-615E4 JTAG pinout

See port.jtag for more JTAG details.

Hardware Mods

  1. as a beginner, you really should inform yourself about soldering in general and then even obtain some experience!

USB

64MB RAM Mod (Only Rev. E4)

The Device uses a DDR1 16Mbit x 16bit (16Mibit*16=256 mebibit. 256 mebibit/8=32MiByte) 400MHz chip Zentel A3S56D40FTP. Replace it with any 32Mbit x 16bit chip. 333MHz instead of 400MHz also works fine. It's quite hard to find these chips. One of the ways to get them is to have a look at DDR SO-DIMM (because SO-DIMM modules are shipped with x16 chips). Since there are no 64Mbit x 16bit DDR1 Chips available → no 128 MB mod!

The most easy approach is to seek for a 4-chip DDR 256 MB module. These all have x16 chips too. Chips only on one side (not to be confused with double-sided 256 MB modules with 4 chips on each side) and only 4 of them - that's the best chance to get some. They represent a small percent among usual 8-chip modules but this is equalized with the amount and "cheap as dirt" price of such DDR 256 MB modules.

Working chips:

  • Hynix HY5DU121622DTP-D43 (From Mustang DDR SO-DIMM 512 MB)
  • Hynix HY5DU121622CTP-D43 (From Hynix DDR SO-DIMM PC2700S-25330 512MB DDR 333MHz CL 2.5, chips are 400Mhz compatible due to "D43" marking.)
  • Infineon HYB25D512160BE (From Infineon DDR SO-DIMM 512 MB)
  • Elpida EDD5116ADTA-6B-E (From Elpida DDR SO-DIMM 512 MB)
  • Elpida EDD5116AFTA-5B-E (From Elpida DDR SO-DIMM 512 MB)
  • Alliance AS4C32M16D1-5TCN (From DigiKey, $2.76)

Additional list that may work:

Type ID Code Vendor
DDR 32Mx16 DDR 400 TSOP Pb Free HY5DU121622DTP-D43-C Hynix
DDR 32Mx16 DDR 400 TSOP Pb Free H5DU5162ETR-E3C Hynix
DDR 32Mx16 DDR 400 Pb Free K4H511638G-LCCC Samsung
DDR 32Mx16 DDR 400 Pb Free K4H511638J-LCCC Samsung
DDR 32Mx16 DDR 400 A3S12D40ETP-G5 Zentel
DDR 32Mx16 DDR 400 NT5DS32M16BS-5T Nanya
DDR 32Mx16 DDR 400 PB Free P3S12D40ETP-GUTT Mira
DDR 32Mx16 DDR 333 CL2.5 TSOP MT46V32M16TG-6T:F Micron
DDR 32Mx16 DDR 333 CL2.5 TSOP MT46V32M16P-6T:F Micron
DDR 32Mx16 DDR 333 PB Free TSOP HYB25D512160CE-6 Qimonda
DDR 32Mx16 DDR 333 PB Free TSOP HYB25D512160CEL-6 Qimonda
DDR 32Mx16 DDR 333 PB Free TSOP HYB25D512160DE-6 Qimonda

By default router able to see all 64MB.

16MB Flash Mod (Only Rev. E4)

Used only next chips:

W25Q128FVSSIG

MX25L12835FM2I

SD-Card in DIR-615 H1

Take some GPIOs which are connected to LEDs or switches, 3.3V and GND from the JTAG header and use the mmc-over-gpio kernel module. The kmod-leds-gpio and kmod-input-gpio-keys-polled kernel modules have to be unloaded before. The blue WPS LED will show when the SD-Card is being accessed and the power LEDs will flicker while data is being transfered.

GPIO # Original use SD signal SD pin
0 WPS button MISO 7
7 Power LED amber MOSI 2
9 Power LED green SCK 5
14 WPS LED blue /SS 1
+3.3V +3.3V 4
GND GND 3
GND GND 6

Failsafe mode

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

Boot into 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 192.168.1.2 and 192.168.1.254. E. g. 192.168.1.2 (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 192.168.1.1 now (no username and password)

FIXME What is the DMZ LED? It's not mentioned anywhere else in this article.

What to do in failsafe mode?

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 passwd
  2. Forgot the routers IP address → 'uci get network.lan.ipaddr'
  3. You accidentally run 'opkg upgrade' or filled up the flash
    by installing to big 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.

See also:

generic.failsafe

Buttons

The D-Link DIR-615 has two buttons. They are WPS and RESET. The WPS button has its own blue led.
The buttons can be used with hotplug events. E. g. wifitoggle.

BUTTON Event
RESET reset
WPS wps

LEDs

How to configure LEDs in general, see the LED section in the Wiki.

Rev C: The DIR-615c2 has 1 blue, 3 green and 2 orange controlled LEDs:

LED name LED symbol Internal name
Power (green) Power dir-615c1:green:status
Power (orange) Power dir615c1:orange:status
WPS (blue) Refresh dir-615c1:blue:wps
Wan (green) Globe dir-615c1:green:wan
Wan (orange) Globe dir-615c1:orange:wan
Wlan (green) Waves dir-615c1:green:wlan

Rev H1: The same LED configuration applies to Rev H1.

Free GPIO ports

Revision C2 has 6 free (non-used) GPIO ports. To use them you should do some solder work. Please train you solder skills on broken motherboards before trying to do this on working hardware.

D-Link DIR-615C2 gpio pads

GPIO # Notation Location
0 R127 unpopulated resistor pad near LED21, pcb bottom left corner
2 R2 unpopulated resistor pad to the left of the CPU
7 R203 unpopulated resistor pad near LED20 near gpio0
8 tp5 testpoint on the bottom side of pcb near cpu
9 tp6 testpoint on the bottom side of pcb near cpu
11 tp7 testpoint on the bottom side of pcb near cpu

There is also one free GPIO5 used by dir-615c1:green:wancpu led interface. This led interface is useless so we can just desolder r218 (located between q7 transistor and led10), remove led definition from mach-dir-615-c1.c recompile/reflash kernel and use GPIO5 as we want.

To activate GPIO interface you should export it using command 'echo N > /sys/class/gpio/export' (N is a GPIO number). Then you can use /sys/class/gpio/GPION interface to control GPIO (set/get direction, value, etc). Also you can use i2c_gpio_custom/w1_gpio_custom kernel modules for 1wire/i2c protocols over gpio to connect devices/sensors/actuators to your router.

More info

Tags

Back to top

toh/d-link/dir-615.txt · Last modified: 2014/04/10 16:58 by simply_kot