OpenWrt Forum Archive

Topic: The support for D-LINK DIR-510L - 4000mAh, 2x USB

The content of this topic has been archived between 6 Feb 2018 and 5 May 2018. Unfortunately there are posts – most likely complete pages – missing.


While having been browsing the web for a good mobile router (I know OpenWRT supports TP-LINK MR3040) I found one, which might be easily supported, I guess.
D-Link WiFi AC750 Portable Router and Charger (DIR-510L)

According to wikidevi, it uses the MediaTek MT7620 SoC, MT7620A for bgn, MT7620E for ac. It has 1A and 0.5A USB ports.

This downloads listing makes me feel, that OpenWRT could make it happen with 510L.

My scenario is not to get mobile with it, hence to provide seamless internet access from 3g modem, when electricity gets dead for a while. Maybe someone would like this too?

Chaos Calmer would look lovely with this being supported <3

Take care!

//edit: As for me, working bgn wifi would be sufficient in this case..

(Last edited by mucha on 9 Aug 2015, 01:07)

I've googled for several hours.. It seems that  D-LINK DIR510L is not supported by now sad
It looks really nice and for me, it's more suitable than kingston's mlwg2 (

I picked up a DIR-510L because I was looking for a dual-band travel router with built in battery and external device charging capability.  The 510L seemed to fit the bill.  The stock firmware is fairly intuitive and useable, but I was hoping for OpenWRT support.  After poking around online, I really didn't find much info on third-party firmware except for a couple posts here.  I figured I would post what I have here and gauge interest for an OpenWRT port.  I have posted a few things below, but I can also create a new wiki page in the TOH.  Or maybe someone can tell me immediately if I am wasting my time and OpenWRT will never be supported because of XYZ.

I am not a developer myself, although I would love to learn.  This is my first post if you can’t tell.  I tried to gather as much info as I could on the device.  I identified the main ICs and was able to get serial port access to capture the bootloader and bootlog output.  I also poked around the stock Linux and can get whatever other info is required.  Just ask.  I have pictures too!

Main SoC:
Mediatek MT7620A

Secondary WiFi:
Mediatek MT7610EN

Flash (16MiB):
Macronix MX25L12835FMI-10G

RAM (128MiB):
EtronTech EM68C16CWQD-25H

USB 2.0 Hub Controller:
Alcor Micro AU6259-JBF


CDM56CDL_U03 Jboot B796
JRecovery Version R1.2 2013/10/04 18:32
SPI FLASH: MX25l12805d 16M
...Boot addr = 0x80400000


Starting kernel @80000000...

LINUX started...

Linux version 2.6.36 (tja@dot7) (gcc version 3.4.2) #737 Wed Aug 12 10:42:49 CST 2015
CMD_LINE:console=ttyS1,57600n8 root=/dev/mtdblock3

 The CPU feqenuce set to 580 MHz
 PCIE: bypass PCIe DLL.
 PCIE: Elastic buffer control: Addr:0x68 -> 0xB4
 disable all power about PCIe
CPU revision is: 00019650 (MIPS 24Kc)
Determined physical RAM map:
 memory: 08000000 @ 00000000 (usable)
Zone PFN ranges:
  Normal   0x00000000 -> 0x00008000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00008000
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttyS1,57600n8 root=/dev/mtdblock3
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
Writing ErrCtl register=0005f71f
Readback ErrCtl register=0005f71f
Memory: 125748k/131072k available (3126k kernel code, 5324k reserved, 793k data, 168k init, 0k highmem)
Hierarchical RCU implementation.
        Verbose stalled-CPUs detection is disabled.
Console: colour dummy device 80x25
console [ttyS1] enabled
Calibrating delay loop... 386.04 BogoMIPS (lpj=772096)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
NET: Registered protocol family 16
MT7620 PPLL lock
PPLL_DRV =0x80080504
start PCIe register access

*************** MT7620 PCIe RC mode *************
bio: create slab <bio-0> at 0
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x201fffff]
pci 0000:00:00.0: BAR 1: assigned [mem 0x20200000-0x2020ffff]
pci 0000:00:00.0: BAR 1: set to [mem 0x20200000-0x2020ffff] (PCI address [0x20200000-0x2020ffff]
pci 0000:01:00.0: BAR 0: assigned [mem 0x20000000-0x200fffff]
pci 0000:01:00.0: BAR 0: set to [mem 0x20000000-0x200fffff] (PCI address [0x20000000-0x200fffff]
pci 0000:01:00.1: BAR 0: assigned [mem 0x20100000-0x201fffff]
pci 0000:01:00.1: BAR 0: set to [mem 0x20100000-0x201fffff] (PCI address [0x20100000-0x201fffff]
pci 0000:00:00.0: PCI bridge to [bus 01-01]
pci 0000:00:00.0:   bridge window [io  disabled]
pci 0000:00:00.0:   bridge window [mem 0x20000000-0x201fffff]
pci 0000:00:00.0:   bridge window [mem pref disabled]
BAR0 at slot 0 = 0
bus=0x0, slot = 0x0
res[0]->start = 0
res[0]->end = 0
res[1]->start = 20200000
res[1]->end = 2020ffff
res[2]->start = 0
res[2]->end = 0
res[3]->start = 0
res[3]->end = 0
res[4]->start = 0
res[4]->end = 0
res[5]->start = 0
res[5]->end = 0
bus=0x1, slot = 0x0
res[0]->start = 20000000
res[0]->end = 200fffff
res[1]->start = 0
res[1]->end = 0
res[2]->start = 0
res[2]->end = 0
res[3]->start = 0
res[3]->end = 0
res[4]->start = 0
res[4]->end = 0
res[5]->start = 0
res[5]->end = 0
bus=0x1, slot = 0x0
res[0]->start = 20100000
res[0]->end = 201fffff
res[1]->start = 0
res[1]->end = 0
res[2]->start = 0
res[2]->end = 0
res[3]->start = 0
res[3]->end = 0
res[4]->start = 0
res[4]->end = 0
res[5]->start = 0
res[5]->end = 0
Switching to clocksource MIPS
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RT3xxx EHCI/OHCI init.
squashfs: version 4.0 (2009/01/31) Phillip Lougher
JFFS2 version 2.2 (NAND) (ZLIB) (RTIME) (c) 2001-2006 Red Hat, Inc.
msgmni has been set to 245
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered (default)
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
Ralink gpio driver initialized
Enable Ralink GDMA Controller Module
GDMA IP Version=3
   SPI driver, modified by Jason
0x60: 0x0000009d
spidrv_major = 217
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0x10000500 (irq = 37) is a 16550A
serial8250: ttyS1 at MMIO 0x10000c00 (irq = 12) is a 16550A
brd: module loaded
deice id : c2 20 18 c2 20 (2018c220)
MX25L12805D(c2 2018c220) (16384 Kbytes)
mtd .name = raspi, .size = 0x01000000 (0M) .erasesize = 0x00000010 (0K) .numeraseregions = 4096
Creating 8 MTD partitions on "raspi":
0x000000000000-0x000001000000 : "Whole"
0x000000000000-0x000000010000 : "Bootloader"
0x000000210000-0x000000380000 : "Kernel"
0x000000380000-0x000000df0000 : "RootFS"
0x000000df0000-0x000000e70000 : "MyDLink"
0x000000e70000-0x000000ef0000 : "Storage"
0x000000ef0010-0x000000ff0010 : "UI"
mtd: partition "UI" doesn't start on an erase block boundary -- force read-only
0x000000ff0000-0x000001000000 : "Config"
rdm_major = 253
SMACCR1 -- : 0x0000000c
SMACCR0 -- : 0x432880f8
Ralink APSoC Ethernet Driver Initilization. v3.0  256 rx/tx descriptors allocated, mtu = 1500!
SMACCR1 -- : 0x0000000c
SMACCR0 -- : 0x432880f1
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
NET: Registered protocol family 24
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
u32 classifier
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (1964 buckets, 7856 max)
ip_tables: (C) 2000-2006 Netfilter Core Team, Type=Restricted Cone
arp_tables: (C) 2002 David S. Miller
TCP cubic registered
NET: Registered protocol family 17
Bridge firewalling registered
802.1Q VLAN Support v1.8 Ben Greear <>
All bugs added by David S. Miller <>
VFS: Mounted root (squashfs filesystem) readonly on device 31:3.
Freeing unused kernel memory: 168k freed
Algorithmics/MIPS FPU Emulator v1.5
Inter-|   Receive             Raeth v3.0 (  Tasklet ,SkbRecycle  )

phy_tx_ring = 0x07fb2000, tx_ring = 0xa7fb2000

phy_rx_ring0 = 0x07fb3000, rx_ring0 = 0xa7fb3000
SMACCR1 -- : 0x0000000c
SMACCR0 -- : 0x432880f1
  CDMA_CSG_CFG = 81000000
  GDMA1_FWD_CFG = 20710000
                     |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth2:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
 flash_open: flash_fd=3
Mount D Section.
mount: /dev/mtdblock6 is write-protected, mounting read-only
Mount MyDlink Section.
 flash_open: flash_fd=10
phy 0, reg 0, val 0x3900
Set: phy[0].reg[0] = 3900
phy 0, reg 0, val 0x3900
Set: phy[0].reg[0] = 3900
switch register base addr to system register 0xb0000000
write offset 0x60, value 0x695
phy 1, reg 0, val 0x3900
Set: phy[1].reg[0] = 3900
phy 2, reg 0, val 0x3900
Set: phy[2].reg[0] = 3900
phy 3, reg 0, val 0x3900
Set: phy[3].reg[0] = 3900
phy 4, reg 0, val 0x3900
Set: phy[4].reg[0] = 3900
phy 0, reg 0, val 0x3300
Set: phy[0].reg[0] = 3300
phy 0, reg 0, val 0x3300
Set: phy[0].reg[0] = 3300
device eth2 entered promiscuous mode
NET: Registered protocol family 10
device eth2.1 entered promiscuous mode
Init handler: lan
br0: port 1(eth2.1) entering learning state
br0: port 1(eth2.1) entering learning state
Init handler: internet_check
Init handler: dynamic_lanip
Init handler: dhcpsrv
Failure parsing line 11 of /etc/udhcpd_CDM562DL_U03.conf
Failure parsing line 13 of /etc/udhcpd_CDM562DL_U03.conf
server_config.pool_check = 1

server_config.pool_check = 1

 start =, end =, lan_ip =, interface=br0, ifindex=0

 start =, end =, lan_ip =, interface=br0, ifindex=0


Unable to open /var/run/udhcpd.leases for reading
udhcpd (v0.9.9-pre) started
Unable to open /var/run/udhcpd.leases for reading
Init handler: stp
Init handler: reset_btn
Init handler: wlanap
rt2860v2_ap: module license 'unspecified' taints kernel.
Disabling lock debugging due to kernel taint
addrconf_dad_completed 7
addrconf_dad_completed 7
addrconf_dad_completed 7
addrconf_dad_completed 7
Length of MAC:6

=== pAd = c0602000, size = 1146080 ===

<-- RTMPAllocTxRxRingMemory, Status=0
<-- RTMPAllocAdapterBlock, Status=0
AP Driver version-
Length of MAC:6

=== pAd = c0c02000, size = 1633312 ===

<-- RTMPAllocTxRxRingMemory, Status=0
<-- RTMPAllocAdapterBlock, Status=0
device_id =0x7650
==>MT76x0_WLAN_ChipOnOff(): OnOff:1, pAd->WlanFunCtrl:0x0, Reg-WlanFunCtrl=0xff000002
MACVersion = 0x76502000
load fw spent 12ms
RX DESC a6b9b000 size = 2048
RX1 DESC a6b9c000 size = 2048
wmode_band_equal(): Band Not Equal!

1. Phy Mode = 49
2. Phy Mode = 49
ext_pa_current_setting = 1
3. Phy Mode = 49
AntCfgInit: primary/secondary ant 0/1
ChipStructAssign(): RALINK6590 hook !
MCS Set = ff 00 00 00 01
MT76x0_ChipBBPAdjust():rf_bw=2, ext_ch=1, PrimCh=36, HT-CentCh=38, VHT-CentCh=42
APStartUp(): AP Set CentralFreq at 42(Prim=36, HT-CentCh=38, VHT-CentCh=42, BBP_BW=2)
@@@ ed_monitor_init : ===>
@@@ ed_monitor_init : <===
Main bssid = 78:54:2e:9d:0c:3c
<==== rt28xx_init, Status=0
0x1300 = 00064300
RTMPDrvOpen(1):Check if PDMA is idle!
RTMPDrvOpen(2):Check if PDMA is idle!
device rai0 entered promiscuous mode
br0: port 2(rai0) entering learning state
br0: port 2(rai0) entering learning state
Ralink DOT1X daemon, version = ''
prefix_name = 'rai, argv[1] = rai'
addrconf_dad_completed 7
killall: check_status2: no process killed
route: SIOC[ADD|DEL]RT: No such device
/usr/bin/wpsv2-action2: /usr/bin/wpsv2-action2: 543: wscd: not found
Invalid command : ledstart
Interface doesn't accept private ioctl...
set (8BE2): Network is down
RX DESC a6833000  size = 2048
RTMP_TimerListAdd: add timer obj c069a738!
RTMP_TimerListAdd: add timer obj c0665870!
RTMP_TimerListAdd: add timer obj c0665844!
RTMP_TimerListAdd: add timer obj c0665818!
RTMP_TimerListAdd: add timer obj c060a2dc!
RTMP_TimerListAdd: add timer obj c0609ed0!
RTMP_TimerListAdd: add timer obj c060a2ac!
RTMP_TimerListAdd: add timer obj c060a654!
RTMP_TimerListAdd: add timer obj c060a3a4!
RTMP_TimerListAdd: add timer obj c060a3d4!
RTMP_TimerListAdd: add timer obj c060a594!
RTMP_TimerListAdd: add timer obj c060a5c4!
RTMP_TimerListAdd: add timer obj c060d798!
RTMP_TimerListAdd: add timer obj c060d38c!
RTMP_TimerListAdd: add timer obj c060d768!
RTMP_TimerListAdd: add timer obj c060db10!
RTMP_TimerListAdd: add timer obj c060d860!
RTMP_TimerListAdd: add timer obj c060d890!
RTMP_TimerListAdd: add timer obj c060da50!
RTMP_TimerListAdd: add timer obj c060da80!
RTMP_TimerListAdd: add timer obj c0610c54!
RTMP_TimerListAdd: add timer obj c0610848!
RTMP_TimerListAdd: add timer obj c0610c24!
RTMP_TimerListAdd: add timer obj c0610fcc!
RTMP_TimerListAdd: add timer obj c0610d1c!
RTMP_TimerListAdd: add timer obj c0610d4c!
RTMP_TimerListAdd: add timer obj c0610f0c!
RTMP_TimerListAdd: add timer obj c0610f3c!
RTMP_TimerListAdd: add timer obj c0614110!
RTMP_TimerListAdd: add timer obj c0613d04!
RTMP_TimerListAdd: add timer obj c06140e0!
RTMP_TimerListAdd: add timer obj c0614488!
RTMP_TimerListAdd: add timer obj c06141d8!
RTMP_TimerListAdd: add timer obj c0614208!
RTMP_TimerListAdd: add timer obj c06143c8!
RTMP_TimerListAdd: add timer obj c06143f8!
RTMP_TimerListAdd: add timer obj c06175cc!
RTMP_TimerListAdd: add timer obj c06171c0!
RTMP_TimerListAdd: add timer obj c061759c!
RTMP_TimerListAdd: add timer obj c0617944!
RTMP_TimerListAdd: add timer obj c0617694!
RTMP_TimerListAdd: add timer obj c06176c4!
RTMP_TimerListAdd: add timer obj c0617884!
RTMP_TimerListAdd: add timer obj c06178b4!
RTMP_TimerListAdd: add timer obj c061aa88!
RTMP_TimerListAdd: add timer obj c061a67c!
RTMP_TimerListAdd: add timer obj c061aa58!
RTMP_TimerListAdd: add timer obj c061ae00!
RTMP_TimerListAdd: add timer obj c061ab50!
RTMP_TimerListAdd: add timer obj c061ab80!
RTMP_TimerListAdd: add timer obj c061ad40!
RTMP_TimerListAdd: add timer obj c061ad70!
RTMP_TimerListAdd: add timer obj c061df44!
RTMP_TimerListAdd: add timer obj c061db38!
RTMP_TimerListAdd: add timer obj c061df14!
RTMP_TimerListAdd: add timer obj c061e2bc!
RTMP_TimerListAdd: add timer obj c061e00c!
RTMP_TimerListAdd: add timer obj c061e03c!
RTMP_TimerListAdd: add timer obj c061e1fc!
RTMP_TimerListAdd: add timer obj c061e22c!
RTMP_TimerListAdd: add timer obj c0621400!
RTMP_TimerListAdd: add timer obj c0620ff4!
RTMP_TimerListAdd: add timer obj c06213d0!
RTMP_TimerListAdd: add timer obj c0621778!
RTMP_TimerListAdd: add timer obj c06214c8!
RTMP_TimerListAdd: add timer obj c06214f8!
RTMP_TimerListAdd: add timer obj c06216b8!
RTMP_TimerListAdd: add timer obj c06216e8!
RTMP_TimerListAdd: add timer obj c0667c74!
RTMP_TimerListAdd: add timer obj c0667868!
RTMP_TimerListAdd: add timer obj c0667c44!
RTMP_TimerListAdd: add timer obj c0667fec!
RTMP_TimerListAdd: add timer obj c0667d3c!
RTMP_TimerListAdd: add timer obj c0667d6c!
RTMP_TimerListAdd: add timer obj c0667ca4!
RTMP_TimerListAdd: add timer obj c0667cd4!
RTMP_TimerListAdd: add timer obj c0667d04!
RTMP_TimerListAdd: add timer obj c0668020!
RTMP_TimerListAdd: add timer obj c06710a4!
RTMP_TimerListAdd: add timer obj c06711c0!
RTMP_TimerListAdd: add timer obj c06710d0!
RTMP_TimerListAdd: add timer obj c06683dc!
RTMP_TimerListAdd: add timer obj c060756c!
RTMP_TimerListAdd: add timer obj c060aa28!
RTMP_TimerListAdd: add timer obj c060dee4!
RTMP_TimerListAdd: add timer obj c06113a0!
RTMP_TimerListAdd: add timer obj c061485c!
RTMP_TimerListAdd: add timer obj c0617d18!
RTMP_TimerListAdd: add timer obj c061b1d4!
RTMP_TimerListAdd: add timer obj c061e690!
RTMP_TimerListAdd: add timer obj c06680ec!
default ApCliAPSDCapable[0]=0

1. Phy Mode = 9
2. Phy Mode = 9
E2PROM: D0 target power=0xff20
E2PROM: 40 MW Power Delta= 0
3. Phy Mode = 9
RTMP_TimerListAdd: add timer obj c060712c!
AntCfgInit: primary/secondary ant 0/1
Initialize RF Central Registers for E2 !!!
Initialize RF Central Registers for E3 !!!
Initialize RF Channel Registers for E2 !!!
Initialize RF Channel Registers for E3 !!!
Initialize RF DCCal Registers for E2 !!!
Initialize RF DCCal Registers for E3 !!!
D1 = -3, D2 = 8, CalCode = 26 !!!
RT6352_Temperature_Init : BBPR49 = 0xfffffffd
RT6352_Temperature_Init : TemperatureRef25C = 0xfffffff3
Current Temperature from BBP_R49=0xfffffff8
 TX BW Filter Calibration !!!
 RX BW Filter Calibration !!!
LOFT Calibration Done!
IQCalibration Start!
IQCalibration Done! CH = 0, (gain= e, phase= 2)
IQCalibration Start!
IQCalibration Done! CH = 1, (gain= 0, phase=3d)
TX IQ Calibration Done!
MCS Set = ff ff 00 00 01
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
br0: port 1(eth2.1) entering forwarding state
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
RTMP_TimerListAdd: add timer obj c0668980!
The 4-BSSID mode is enabled, the BSSID byte5 MUST be the multiple of 4
@@@ ed_monitor_init : ===>
@@@ ed_monitor_init : <===
Main bssid = 78:54:2e:9d:0c:3b
<==== rt28xx_init, Status=0
0x1300 = 00064380
@@@ ed_monitor_init : ===>
@@@ ed_monitor_init : <===
device ra0 entered promiscuous mode
br0: port 3(ra0) entering learning state
br0: port 3(ra0) entering learning state
Ralink DOT1X daemon, version = ''
prefix_name = 'ra, argv[1] = ra'
addrconf_dad_completed 7
killall: check_status: no process killed
/usr/bin/wpsv2-action: /usr/bin/wpsv2-action: 526: wscd: not found
ra0       ledstart:
Init handler: wan
Init handler: ondemand
Init handler: profile_alter
Init handler: ipv6
Init handler: ipv6-filter
Init handler: mydlink
killall: no process killed
killall: signalc: no process killed
killall: tsa: no process killed
opt.local stop ok.
opt.local start ok.
Init handler: nat
Ralink HW NAT Module Enabled
==== NAT START (WAN:ALL Func:ALL) ====
br0: port 2(rai0) entering forwarding state
Bad argument `'
Try `iptables -h' or 'iptables --help' for more information.
/var/nat//nat-draft.uyg: /var/nat//nat-draft.uyg: 1: ebtables: not found
/var/nat//nat-draft.uyg: /var/nat//nat-draft.uyg: 1: ebtables: not found
Init handler: dnsrelay
initial loops = 256
Mac Address       IP-Address      HOSTNAME    Expires in
lease count is 0 now
Init handler: time
Init handler: schedule
Init handler: telnet
Init handler: wps_btn
Init handler: mupnpd
Init handler: hotplug
Init handler: igmp
Init handler: user
Init handler: dlna
Init handler: ftp_alg
Init handler: sip_alg
Init handler: fwquery

Init handler: led_cdm562dl_u03
Init handler: shareport
Init handler: host_resolution
Init handler: bonjour
Init handler: bps_record
Init handler: guestzone
device ra1 is not a slave of br0

ra0 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
ra1 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
rai0 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
interface ra1 does not exist!
ifconfig: SIOCGIFFLAGS: No such device
bridge br1 doesn't exist; can't delete it
device rai1 is not a slave of br0
interface rai1 does not exist!
ifconfig: SIOCGIFFLAGS: No such device
bridge br1 doesn't exist; can't delete it
Init handler: wps_status
Init handler: webcam_status
Init handler: storage_status
Copied 524288 bytes from address 0x00000000 in flash to /tmp/mtd5.img
Init handler: mcu_info
Init handler: watchdog
Init handler: recent
Init handler: reboot
sh: lltd-action: not found
/usr/bin/telnetd-action: Starting telnetd...

 flash_open: flash_fd=7
 flash_open: flash_fd=7

/usr/bin/telnetd-action start ok
ra0 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
ra1 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
rai0 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s

ra0 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
ra1 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
rai0 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
 flash_open: flash_fd=7

ra0 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
ra1 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
rai0 tx_bps = 0 Kb/s, rx_bps = 0 Kb/s
# br0: port 3(ra0) entering forwarding state
ip6_tables: (C) 2000-2006 Netfilter Core Team
Ralink APSoC Hardware Watchdog Timer
Started WatchDog Timer.
Started WatchDog Timer. LoadVlaue: 36600 sysclk: 145000000 TIMEOUT: 60
Stopped WatchDog Timer.
Disable Kernel Mode Watchdog
Started WatchDog Timer.
Started WatchDog Timer. LoadVlaue: 36600 sysclk: 145000000 TIMEOUT: 60
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
rt3xxx-ehci rt3xxx-ehci: Ralink EHCI Host Controller
rt3xxx-ehci rt3xxx-ehci: new USB bus registered, assigned bus number 1
rt3xxx-ehci rt3xxx-ehci: irq 18, io mem 0x101c0000
rt3xxx-ehci rt3xxx-ehci: USB 0.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
rt3xxx-ohci rt3xxx-ohci: RT3xxx OHCI Controller
rt3xxx-ohci rt3xxx-ohci: new USB bus registered, assigned bus number 2
rt3xxx-ohci rt3xxx-ohci: irq 18, io mem 0x101c1000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usb 1-1: new high speed USB device using rt3xxx-ehci and address 2
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected

(Last edited by dredd321 on 20 Dec 2015, 14:45)

Thanks tmo26.  I created the device page and started posting the info I had - serial port, GPIOs, OEM flash layout, OEM bootlogs, and some OEM linux command outputs.

I am most worried about the Jboot bootloader.  I cannot find any documentation on it and it seems to lack most useful bootloader tools like TFTP.  So far I have found 3 ways to get new firmware into the device –

  1. Access the D-Link WebUI, Management->Upgrade and upload a new *.bin file.

  2. Hold the 'reset' button during power up.  The device can be accessed through the JRecovery browser @

  3. Connect up to the TTL Serial Port, power on router and interrupt the bootloader (ie. repeatedly tap button on keyboard).  The device can be accessed through browser @ on the LAN port.

I believe option 1 and 2 are essentially the same.  Option 2 is if you cannot access the usual WebUI.  I flashed the stock firmware using both 1 and 2 and looked at the serial port output.  Basically, it is erasing and writing the flash to rebuild the Kernel, RootFS, MyDLink, and UI partitions.

Option 3 accesses JRecovery through the bootloader.  I flashed the stock firmware using this option and looked at the serial port output.  It is only writing to the Kernel and RootFS partitions.

I have also downloaded and compiled the DLink GPL source code. I flashed it using the recovery method above and it seemed to work (I haven’t tested all functions).  I used a HEX editor to compare the stock firmware and my compiled firmware using the Dlink source.  One thing in common is they both begin with ‘DLK6’ in ASCII.

So I am somewhat stuck at this point and not sure which way to go.  Should I attempt to generate a DIR-510L specific OpenWRT build or somehow try to package OpenWRT using the DLink source?  Neither of which I have attempted before, but it’s fun to learn something new.  smile

I have a great interest in this firmware too. The stock firmware is very limited for file sharing over USB.  It only allows you to access the files through their proprietary Shareport app which is pretty lame.  I want regular Samba/SMB NAS, and I've looked everywhere for a third party firmware to do it.

The DIR-510L is good because it is small, functions as battery, is dual band, and has USB which should be usable for NAS with OpenWrt, I think.

If anyone gets as far as developing firmware, I volunteer to help with any testing possible.

dredd321 how do you get the DIR-510L into recovery mode?  I have tried pressing a paper clip into the recessed hole for reset button and powered it up while continuing to hold it.  I've tried dozens of times, it does not seem to work.  I do not get any flashing power light like the manual says there would be when it's in recovery.  I tried it with the WPS button too, and even both at the same time.

Has anyone tried uploading any of the existing firmware from … ps/mt7620/ and see what happens?  Specifically … pgrade.bin looks like the closest match of hardware.

When I try from the regular Web UI, it appears to upload, but the router just quickly reboots and there was no firmware applied.  It must be checking the file for something to allow it to flash the device.  I would try from recovery mode, but I can't get it into that.

dredd321 wrote:
ext_pa_current_setting = 1

can you find this in config and disable it, then check signal strength of 5GHz wifi and report any differences here?

I'll get the device begin next week. Have already some experience with OpenWRT and arm-devices generally. I need one travel router with full accesses to both USB-Ports (2x 3G-dongle for bonding) and battery on board. This was the only one on the market. Yes, I suppose, the JBoot  should be a Problem. But anyway, it is nothing else as an interface between hardware and linux kernel. The possible solution would be, to pack the openwrt -kernel (uImage, uInitrd  and dtb-file) and the -rootfs to jffs2 image and write to the appropriate nand-partition. So, before I'll brick my 510L, would you suggest what to take in account?

Best regards.

Hi all, I also have a DIR-510L and would be very happy to assist with any testing or information, as I would love to have some kind of port forwarding on this device. Please let me know if there's anything I can do to help.

(Last edited by phase_shyfter on 2 Feb 2016, 23:59)

Hi, my searching for a solution has fortuitously led me to this forum and just in time by the look of it!

I have a DIR-510L and love it.  However, the one thing missing for me is a VPN client so that I am not bound geographically when travelling.  Would it be able to include a VPN client in the new firmware?




I was researching DIR-510L and could not find any information whether it supports file sharing over SMB (Samba) or not. Could someone answer that question please?

Thank you!

Well, I got my DIR-510L yesterday and it worked for 10 minutes. I got it initially running with the OEM firmware and then tried upgrading the OEM firmware to the newest version. But sadly the flash failed(?) as no life is to be seen any more. No LEDs, no activity.

So I opened it and started looking for the serial connector to see if it is salvageable. Opening the case was rather hard and then finding the last screw proved difficult. I documented to in wiki: … g_the_case
I will try soldering a serial header to see if the device is still alive.

(Last edited by hnyman on 19 Apr 2016, 12:07)

Thanks for all the Hard work, looking forward to turning this into a useful tool.

I have a DIR-510L in my hands and wonder if anyone whas able to bring OpenWRT running on this cool piece of hardware.
Even if the DIR810L physically looks a little bit different and has no battery, it seems to have exactly the same MT7620A  with the 802.11bgn integrated and the same 802.11ac chip onboard... and is supported by Barrier Breaker. The DIR-510L has 128 instead of only 64 MB of RAM and 16 instead of only 8 MB of flash. So capacity should not be the problem.
Please let me know how I can support the developement for this device.

Bumping for interest. Am hoping for any binaries!
Here is the GPL code: tsd.dlink.

(Last edited by seibah on 31 Oct 2016, 18:27)

$ for a working version of openwrt on the dir-510L so I can use qDslrDashboard

For those with the DIR-510L, can you answer a question?

Can it provide a wireless LAN on the 5 GHz band, and connect to an existing Wi-Fi network (hotel, etc) on the 2.4 GHz radio, at the same time?  I can't get the manual because is apparently down.

I'm looking for a travel router that will support having the LAN on 5 GHz, and the WAN on either wired Ethernet, or Wi-Fi at 2.4 GHz.


Hey I am glad there is ongoing effort on this device.

What are the current blockers? What do we need to add the device to the ramips devices in the sources?

Thank you

I purchased the DIR-510L to evaluate.  The stock firmware is pretty bad. Major issues include:

  • Apparently no way to disable 2.4 GHz LAN when using Wi-Fi Hotspot for WAN on 2.4 GHz.
    No settings for static DHCP to ensure LAN addresses are constant
    Very slow to use. Every step results in a reboot or delay taking 30 seconds to minutes.

I am ready to support any effort to get OpenWrt running.

What is the best approach? Start from the open source provided by D-Link, or try to get OpenWrt running?  I would prefer the latter, but don't know where to start, or how to leverage what has already been done. From reading this thread, there are only a few of us interested in this router, and none of us are experts.

I looked at DLinks open source repository.  It shows "GPL code: DIR-510L A1, A2 FW v1.07"  with date of      2016/06/30 and filename "buildroot-gcc342_120608_new.tar.gz"

This is initially encouraging, since D-Link's support site shows 1.06 is the latest firmware, and the DIR-510L also reports that 1.06 is the latest.

However examining the contents of buildroot-gcc342_120608_new.tar.gz shows over 5000 files all dated 2/21/2011. There is one file - mksqashfs_4.0 which is dated 3/29/2012.  The FOSS statement (license.txt) is dated 5/19/2016.
So I am doubtful that there is anything new in this "1.07" file, unless timestamps are intentionally removed.

(Last edited by timg11 on 29 Dec 2016, 00:44)

Hi guys.
Dlink DWR-512 B and Dlink DWR-921 have the same bootloader, so read DWR-512 openwrt page (ttps:// and DWR-921 forum thread (ttps://
fidodido is working on porting openwrt on dwr-512:

fidodido wrote:

The DWR 921 appears the same HW of the DWR 512 but with 4G modem.
I'm currently working on the DWR 512.
Currently I'm able to complete the boot and have the device operative.
I need to enable the 3G modem and crack the dlink header to generate a factory image.

You can try the same patch and help me for the next steps (in particular cracking the header).


Hi guys.
Currently the DWR 512 is working with LEDE ( … pgrade.bin).
In the next week the final release will be available, and I will update the wiki page describing how to enable the 3G modem. I do not have plan to port the DWR 512 on openwrt (but someone else can do it using my patch from LEDE).
Currently, I'm working to enable the telephone port.
At the moment the flashing (from factory fw) procedure require the replacement of the bootloader, so is not easy and risky. I will work (in the future) to make this procedure easier.
The DWR 512 is in my opinion a quite good modem with 8M flash and 32M ram.
I also succesfully enabled a VPN using the IPSEC (with the Strongswan package).
Very usefull can be the 3G external antenna.
I buy a brocken DWR 921 and I see that the main processor MT7620 is different from the one used on the DWR 512. Nevertheless the MT7620 is supported by LEDE so should be not a big problem to port also this modem. But I do not have plan abaut.

keep informed.

timg11 i'm with you on this one and also ready to support any effort to get OpenWrt running on DIR-510L.

I see there is a lot of information already available on the openwrt website but I wouldn't know where to start. I've put dd-wrt on my home router by following instructions, this seems more trial and error. I don't mind to, if someone can please point me in the right direction on how to start I'll give it a go.