D-Link DWR-116
The DWR-116 Wireless Router is based on the MT7620N SoC. It has a 802.11bgn radio (SoC-integrated) and five 100Mbit Ethernet ports (1 WAN and 4 LAN).
Supported Versions
Hardware Highlights
Installation
→ Install OpenWrt (generic explanation)
Apply factory image via http web-gui or via JBOOT recovery service.
To revert changes, please upload stock firmware via JBOOT recovery service.
JBOOT recovery service
- Push the reset button and turn on the power. Wait until LED start blinking (~10sec.)
- Upload original factory image via JBOOT http (IP: 192.168.123.254)
- If http doesn't work, it can be done with curl command:
curl -F FN=@XXXXX.bin http://192.168.123.254/upg
where
XXXXX.bin
is name of firmware file.
Network interfaces
The default network configuration is:
Interface Name | Description | Default configuration |
---|---|---|
br-lan | LAN & WiFi | 192.168.1.1/24 |
vlan1 (eth0.1) | LAN ports (1 to 4) | None |
vlan2 (eth0.2) | WAN port | DHCP |
wlan0 | WiFi | Disabled |
Buttons
→ hardware.button on howto use and configure the hardware button(s). Here, we merely name the buttons, so we can use them in the above Howto.
The D-Link DWR-116 has the following buttons:
BUTTON | Event | GPIO |
---|---|---|
Reset | reset | 1 |
WPS | wps | 2 |
LEDs
The D-Link DWR-116 has the following LEDs:
LED | GPIO |
---|---|
Status | 0 |
WAN | 14 (The same as UART TX) |
WiFi | 72 |
LAN1 | 43 |
LAN2 | 42 |
LAN3 | 41 |
LAN4 | 40 |
Hardware
Info
Version | A1 | A2 |
---|---|---|
Architecture | MIPS 24KEc (RT6352) | MIPS 24KEc (RT6352) |
Vendor | MediaTek | MediaTek |
Bootloader | J-Boot | J-Boot |
System-On-Chip | MediaTek MT7620N - MIPS24KEc | MediaTek MT7620N - MIPS24KEc |
CPU/Speed | 580 MHz | 580 MHz |
Flash-Chip | Macronix MX25L6406E | Macronix MX25L6406E |
Flash size | 8 MiB | 8 MiB |
RAM-Chip | Winbond W9425G6JH-5 | Winbond W9425G6JH-5 |
RAM | 32 MiB (DDR1) | 32 MiB (DDR1) |
Wireless | SoC 2.4GHz 802.11bgn | SoC 2.4GHz 802.11bgn |
Ethernet | MT7530 (SoC) 5×10/100 Mbit/s, w/vlan support | MT7530 (SoC) 5×10/100 Mbit/s, w/vlan support |
USB | 1x 2.0 | 1x 2.0 |
Serial | Yes | Yes |
JTAG | ? | No |
Flash Layout
OEM Flash layout
D-Link DWR-116 Rev.A1 and A2 OEM Flash Layout | ||||||
---|---|---|---|---|---|---|
Layer0 | MX25L6406E (mtd0) 8192 KiB | |||||
Layer1 | mtd1 Bootloader 64 KiB | mtd2 Kernel 1280 KiB | mtd3 RootFS 5888 KiB | -- gap 16 _B | mtd4 UI 895 KiB | mtd5 Config 64 KiB |
The OpenWrt Flash layout is:
D-Link DWR-116 Rev.A1 and A2 proposed OpenWrt Flash Layout | |||||
---|---|---|---|---|---|
Layer0 | MX25L6406E 8192 KiB | ||||
Layer1 | mtd0 JBOOT 64KiB | mtd1 Firmware 8128KiB | mtd5 Config 64KiB |
||
Layer2 | mtd2 Kernel | mtd3 RootFS |
|||
Layer3 | SquashFS | mtd4 RootFS_data |
Photos
Serial
→ port.serial general information about the serial port, serial port cable, etc.
A1 J1 connector:
pin | function |
---|---|
1 | Vcc (~3.3V) |
2 | RX |
3 | TX |
4 | GND |
A2 JP1 connector:
pin | function |
---|---|
1 | TX |
2 | GND |
3 | Vcc (~3.3V) |
4 | ? |
5 | RX |
Serial connection parameters for D-Link DWR-116 A1 and A2 | 57600, 8N1 |
---|
Bootlogs
OEM bootlog
CDW561DL_003 Jboot B676 JRecovery Version R1.2 2013/07/11 13:29 SPI FLASH: W25Q64BV 8M . .................. Starting kernel @80000000... LINUX started... THIS IS ASIC Linux version 2.6.36 (leaf@SI2) (gcc version 4.3.5 (Buildroot 2011.05) ) #14 Tue Jul 22 15:26:49 CST 2014 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 PCIE: PLL power down for MT7620N CPU revision is: 00019650 (MIPS 24Kc) Determined physical RAM map: memory: 02000000 @ 00000000 (usable) Zone PFN ranges: Normal 0x00000000 -> 0x00002000 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0x00000000 -> 0x00002000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 Kernel command line: console=ttyS1,57600n8 root=/dev/mtdblock3 PID hash table entries: 128 (order: -3, 512 bytes) Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) Inode-cache hash table entries: 2048 (order: 1, 8192 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=0002bb3d Readback ErrCtl register=0002bb3d Memory: 28836k/32768k available (2693k kernel code, 3932k reserved, 679k data, 164k init, 0k highmem) Hierarchical RCU implementation. RCU debugfs-based tracing is enabled. Verbose stalled-CPUs detection is disabled. NR_IRQS:128 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 bio: create slab <bio-0> at 0 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb 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: 1024 (order: 1, 8192 bytes) TCP bind hash table entries: 1024 (order: 0, 4096 bytes) TCP: Hash tables configured (established 1024 bind 1024) 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 msgmni has been set to 56 Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) io scheduler noop registered (default) HDLC line discipline maxframe=4096 N_HDLC line discipline registered. Ralink gpio driver initialized Enable Ralink GDMA Controller Module GDMA IP Version=3 ====================================== SPI driver, modified by Jason ====================================== <----- 0x60: 0x000080dd ----- 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 : ef 40 17 0 0 (40170000) W25Q64BV(ef 40170000) (8192 Kbytes) mtd .name = raspi, .size = 0x00800000 (0M) .erasesize = 0x00000008 (0K) .numeraseregions = 4096 Creating 6 MTD partitions on "raspi": 0x000000000000-0x000000800000 : "Whole" 0x000000000000-0x000000010000 : "Bootloader" 0x000000010000-0x000000150000 : "Kernel" 0x000000150000-0x000000710000 : "RootFS" 0x000000710010-0x0000007f0000 : "UI" mtd: partition "UI" doesn't start on an erase block boundary -- force read-only 0x0000007f0000-0x000000800000 : "Config" rdm_major = 253 SMACCR1 -- : 0x0000000c SMACCR0 -- : 0x432880e1 Ralink APSoC Ethernet Driver Initilization. v3.0 256 rx/tx descriptors allocated, mtu = 1500! NAPI enable, Tx Ring = 256, Rx Ring = 256 SMACCR1 -- : 0x0000000c SMACCR0 -- : 0x43288064 PROC INIT OK! PPP generic driver version 2.4.2 PPP Deflate Compression module registered PPP BSD Compression module registered NET: Registered protocol family 24 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 u32 classifier Netfilter messages via NETLINK v0.30. nf_conntrack version 0.5.0 (450 buckets, 1800 max) xt_time: kernel timezone is -0000 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 802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com> All bugs added by David S. Miller <davem@redhat.com> VFS: Mounted root (squashfs filesystem) readonly on device 31:3. Freeing unused kernel memory: 164k freed Inter-| Receive Raeth v3.0 ( NAPI ,SkbRecycle ) phy_tx_ring = 0x01f58000, tx_ring = 0xa1f58000 phy_rx_ring0 = 0x01f59000, rx_ring0 = 0xa1f59000 SMACCR1 -- : 0x0000000c SMACCR0 -- : 0x43288064 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/mtdblock4 is write-protected, mounting read-only flash_open: flash_fd=10 switch register base addr to system register 0xb0000000
OpenWrt bootlog
CDW561DL_003 Jboot B676 JRecovery Version R1.2 2013/02/18 14:01 SPI FLASH: MX25l6405d 8M . .................... Starting kernel @80000000... [ 0.000000] Linux version 4.9.86 (XXXX@YYYY) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r6484-6c05267) ) #0 Sat Mar 17 11:41:18 2018 [ 0.000000] Board has DDR1 [ 0.000000] Analog PMU set to hw control [ 0.000000] Digital PMU set to hw control [ 0.000000] SoC Type: MediaTek MT7620N ver:2 eco:5 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 00019650 (MIPS 24KEc) [ 0.000000] MIPS: machine is D-Link DWR-116 A1/A2 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 02000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000000000000-0x0000000001ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x0000000001ffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000001ffffff] [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 [ 0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2 [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes) [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Writing ErrCtl register=00032491 [ 0.000000] Readback ErrCtl register=00032491 [ 0.000000] Memory: 27956K/32768K available (3126K kernel code, 157K rwdata, 756K rodata, 176K init, 217K bss, 4812K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:256 [ 0.000000] CPU Clock: 580MHz [ 0.000000] clocksource: systick: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 583261500 ns [ 0.000000] systick: enable autosleep mode [ 0.000000] systick: running - mult: 214748, shift: 32 [ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6590553264 ns [ 0.000009] sched_clock: 32 bits at 290MHz, resolution 3ns, wraps every 7405115902ns [ 0.015457] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216) [ 0.080606] pid_max: default: 32768 minimum: 301 [ 0.089886] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.102940] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.121583] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.141059] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.153204] pinctrl core: initialized pinctrl subsystem [ 0.164110] NET: Registered protocol family 16 [ 0.193248] rt2880_gpio 10000600.gpio: registering 24 gpios [ 0.204263] rt2880_gpio 10000600.gpio: registering 24 irq handlers [ 0.216811] rt2880_gpio 10000638.gpio: registering 16 gpios [ 0.227789] rt2880_gpio 10000638.gpio: registering 16 irq handlers [ 0.240305] rt2880_gpio 10000688.gpio: registering 1 gpios [ 0.251107] rt2880_gpio 10000688.gpio: registering 1 irq handlers [ 0.266794] clocksource: Switched to clocksource systick [ 0.278359] NET: Registered protocol family 2 [ 0.287759] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.301527] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.314124] TCP: Hash tables configured (established 1024 bind 1024) [ 0.326867] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.338362] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.351042] NET: Registered protocol family 1 [ 0.361820] rt-timer 10000100.timer: maximum frequency is 1220Hz [ 0.374407] Crashlog allocated RAM at address 0x1f00000 [ 0.385835] workingset: timestamp_bits=30 max_order=13 bucket_order=0 [ 0.405995] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.417484] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.445415] io scheduler noop registered [ 0.453112] io scheduler deadline registered (default) [ 0.463483] ralink-usb-phy usbphy: invalid resource [ 0.473574] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 0.487139] console [ttyS0] disabled [ 0.494123] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20, base_baud = 2500000) is a Palmchip BK-3103 [ 0.513883] console [ttyS0] enabled [ 0.513883] console [ttyS0] enabled [ 0.527677] bootconsole [early0] disabled [ 0.527677] bootconsole [early0] disabled [ 0.547664] spi spi0.0: force spi mode3 [ 0.555999] m25p80 spi0.0: mx25l6405d (8192 Kbytes) [ 0.565803] 3 fixed-partitions partitions found on MTD device spi0.0 [ 0.578468] Creating 3 MTD partitions on "spi0.0": [ 0.588023] 0x000000000000-0x000000010000 : "jboot" [ 0.599243] 0x000000010000-0x0000007f0000 : "firmware" [ 0.611490] 2 jimage-fw partitions found on MTD device firmware [ 0.623363] 0x000000010000-0x00000015ca29 : "kernel" [ 0.634849] 0x00000015ca29-0x0000007f0000 : "rootfs" [ 0.646445] mtd: device 3 (rootfs) set to be root filesystem [ 0.658254] 1 squashfs-split partitions found on MTD device rootfs [ 0.670624] 0x000000358000-0x0000007f0000 : "rootfs_data" [ 0.682845] 0x0000007f0000-0x000000800000 : "config" [ 0.695084] libphy: Fixed MDIO Bus: probed [ 0.706878] gsw: setting port4 to ephy mode [ 0.715259] mtk_soc_eth 10100000.ethernet: generated random MAC address 4a:59:ce:35:36:c4 [ 0.731639] mtk_soc_eth 10100000.ethernet: loaded mt7620 driver [ 0.744208] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5 [ 0.761159] rt2880_wdt 10000120.watchdog: Initialized [ 0.772265] NET: Registered protocol family 10 [ 0.783958] NET: Registered protocol family 17 [ 0.792933] 8021q: 802.1Q VLAN Support v1.8 [ 0.808227] VFS: Mounted root (squashfs filesystem) readonly on device 31:3. [ 0.823262] Freeing unused kernel memory: 176K [ 0.832143] This architecture does not have kernel memory protection. [ 1.499629] init: Console is alive [ 1.506608] init: - watchdog - [ 2.296765] random: fast init done [ 2.375623] kmodloader: loading kernel modules from /etc/modules-boot.d/* [ 2.519130] usbcore: registered new interface driver usbfs [ 2.530221] usbcore: registered new interface driver hub [ 2.540940] usbcore: registered new device driver usb [ 2.556512] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 2.571156] ehci-platform: EHCI generic platform driver [ 2.591897] phy phy-usbphy.0: remote usb device wakeup disabled [ 2.603702] phy phy-usbphy.0: UTMI 16bit 30MHz [ 2.612583] ehci-platform 101c0000.ehci: EHCI Host Controller [ 2.624069] ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1 [ 2.639977] ehci-platform 101c0000.ehci: irq 26, io mem 0x101c0000 [ 2.660771] ehci-platform 101c0000.ehci: USB 2.0 started, EHCI 1.00 [ 2.674209] hub 1-0:1.0: USB hub found [ 2.682061] hub 1-0:1.0: 1 port detected [ 2.692718] kmodloader: done loading kernel modules from /etc/modules-boot.d/* [ 2.711394] init: - preinit - [ 3.163806] mtk_soc_eth 10100000.ethernet eth0: port 4 link up (100Mbps/Full duplex) [ 3.924969] 8021q: adding VLAN 0 to HW filter on device eth0 Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 5.467551] jffs2: notice: (330) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found. [ 5.500512] mount_root: switching to jffs2 overlay [ 5.539211] urandom-seed: Seed file not found (/etc/urandom.seed) [ 5.665526] procd: - early - [ 5.671444] procd: - watchdog - [ 6.044152] procd: - watchdog - [ 6.050664] procd: - ubus - [ 6.102175] procd: - init - Please press Enter to activate this console. [ 6.445417] kmodloader: loading kernel modules from /etc/modules.d/* [ 6.464076] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 6.486704] Loading modules backported from Linux version wt-2017-11-01-0-gfe248fc2c180 [ 6.502730] Backport generated by backports.git v4.14-rc2-1-31-g86cf0e5d [ 6.520188] ip_tables: (C) 2000-2006 Netfilter Core Team [ 6.539359] nf_conntrack version 0.5.0 (1024 buckets, 4096 max) [ 6.607668] xt_time: kernel timezone is -0000 [ 6.773803] PPP generic driver version 2.4.2 [ 6.784960] NET: Registered protocol family 24 [ 6.821546] ieee80211 phy0: rt2x00lib_request_eeprom_file: Info - Loading EEPROM data from 'soc_wmac.eeprom'. [ 6.842815] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 6352, rev 0500 detected [ 6.858332] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 7620 detected [ 6.888294] kmodloader: done loading kernel modules from /etc/modules.d/* [ 13.527035] 8021q: adding VLAN 0 to HW filter on device eth0 [ 13.562022] device eth0 entered promiscuous mode [ 13.586347] br-lan: port 1(eth0.1) entered blocking state [ 13.597178] br-lan: port 1(eth0.1) entered disabled state [ 13.608378] device eth0.1 entered promiscuous mode [ 13.659521] br-lan: port 1(eth0.1) entered blocking state [ 13.670338] br-lan: port 1(eth0.1) entered forwarding state [ 13.681619] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready [ 14.528379] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
Telnet Login
Telnet server active on port 2300 (tested on fw V1.02b03 - date 2013-12-12). In newer versions telnet is blocked. But it can be downgraded to 1.02b03 version, but it need reset to factory defaults. (Include ISP branded version, like Cyfrowy Polsat or Play.)
Login: root
Password: amittima