Tech info on the DG3700v2 - ntadmin/DGND3700v2 GitHub Wiki

This page contains a collection of information about the device.

Links

More things we know about it

Memory layout in the Netgear image

Par File : DGND3700v2.par
Out File : DGND3700v2.bin
---------------------------------------
    `type: 1`
    `name: dgnd3700v2_boot.bin`
    `addr: 0`
    `leng: 80000`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------
---------------------------------------
    `type: 1`
    `name: rootfs.img`
    `addr: 80000`
    `leng: 16ec000`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------
---------------------------------------
    `type: 1`
    `name: langpkg_DEU.img`
    `addr: 1b40000`
    `leng: 1c000`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------
---------------------------------------
    `type: 1`
    `name: langpkg_PTB.img`
    `addr: 1b80000`
    `leng: 1c000`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------`
---------------------------------------`
    `type: 1`
    `name: langpkg_RUS.img`
    `addr: 1bc0000`
    `leng: 20000`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------
---------------------------------------
    `type: 1`
    `name: langpkg_CHS.img`
    `addr: 1c00000`
    `leng: 1c000`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------
---------------------------------------
    `type: 1`
    `name: langpkg_ENU.img`
    `addr: 1c40000`
    `leng: 18000`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------
---------------------------------------
    `type: 1`
    `name: scSign`
    `addr: 1c80000`
    `leng: 7`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------
---------------------------------------
    `type: 1`
    `name: empty.img`
    `addr: 1d00000`
    `leng: 4000`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------
---------------------------------------
    `type: 1`
    `name: empty.img`
    `addr: 1dc0000`
    `leng: 4000`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------
---------------------------------------
    `type: 1`
    `name: empty.img`
    `addr: 1ec0000`
    `leng: 4000`
    `limit: 0`
    `pad: 2`
    `group id: -1`
    `cksum: 0`
    `ver:`
---------------------------------------
PID info :
    PID file DGND3700v2.pid's first location is 0x3fff, second location is 0x0
---------------------------------------`
Size info :
    Target file default size is 0x1f00000.
---------------------------------------

name dgnd3700v2_boot.bin
offset 0
length 80000
l_size 0
type 1

name rootfs.img
offset 80000
length 16ec000
l_size 0
type `

name langpkg_DEU.img
offset 1b40000
length 1c000
l_size 0
type 1

name langpkg_PTB.img
offset 1b80000
length 1c000
l_size 0
type 1

name langpkg_RUS.img
offset 1bc0000
length 20000
l_size 0
type 1

name langpkg_CHS.img
offset 1c00000
length 1c000
l_size 0
type 1

name langpkg_ENU.img
offset 1c40000
length 18000
l_size 0
type 1

name scSign
offset 1c80000
length 7
l_size 0
type 1

name empty.img
offset 1d00000
length 4000
l_size 0
type 1

name empty.img
offset 1dc0000
length 4000
l_size 0
type 1

name empty.img
offset 1ec0000
length 4000
l_size 0
type 1

this_end 80000 , next_start 80000
this_end 176c000 , next_start 1b40000
this_end 1b5c000 , next_start 1b80000
this_end 1b9c000 , next_start 1bc0000
this_end 1be0000 , next_start 1c00000
this_end 1c1c000 , next_start 1c40000
this_end 1c58000 , next_start 1c80000
this_end 1c80007 , next_start 1d00000
this_end 1d04000 , next_start 1dc0000
this_end 1dc4000 , next_start 1ec0000
this_end 1ec4000 , next_start 1f00000
Pasre Par Info Done!
LocateFile:dgnd3700v2_boot.bin
LocateFile:rootfs.img
LocateFile:langpkg_DEU.img
LocateFile:langpkg_PTB.img
LocateFile:langpkg_RUS.img
LocateFile:langpkg_CHS.img
LocateFile:langpkg_ENU.img
LocateFile:scSign
LocateFile:empty.img
LocateFile:empty.img
LocateFile:empty.img

And the Netgear /etc/fstab:

mtd:factory        /config/factory         jffs2   defaults     0       0
mtd:scnvram        /config/nvram           jffs2   defaults     0       0
mtd:language_ENU   /config/language_ENU    jffs2   defaults     0       0
mtd:language_CHS   /config/language_CHS    jffs2   defaults     0       0
mtd:language_RUS   /config/language_RUS    jffs2   defaults     0       0
mtd:language_PTB   /config/language_PTB    jffs2   defaults     0       0
mtd:language_DEU   /config/language_DEU    jffs2   defaults     0       0
mtd:xxx            /config/xxx             jffs2   defaults     0       0
mtd:smt            /mnt/smt                jffs2   defaults     0       0

And cat /proc/mtd gives:

dev:    size   erasesize  name
mtd0: 01ac0000 00004000 "rootfs"
mtd1: 00004000 00004000 "nvram"
mtd2: 00040000 00004000 "language_DEU"    
mtd3: 00100000 00004000 "scnvram"
mtd4: 00040000 00004000 "factory"
mtd5: 01c40000 00004000 "upgrade"
mtd6: 00040000 00004000 "flag"
mtd7: 00040000 00004000 "pcbasn"
mtd8: 00080000 00004000 "xxx"
mtd9: 00040000 00004000 "language_PTB"
mtd10: 00040000 00004000 "language_RUS"
mtd11: 00040000 00004000 "language_CHS"
mtd12: 00040000 00004000 "language_ENU"
mtd13: 00040000 00004000 "language_dev"

The device has 32M Flash (200 0000 Hex), 64M RAM (400 0000 Hex). If you add all those sizes up, you get 3ac4000 ()

Odd behaviours

  • A lot of the filesystem is write only by default. Attempting to open or write to files in that FS is obviously daft. More importantly, early on when developing it seemed that doing this seems to result in odd behaviour of the programme or script which attempts to do this. Like dying with no trace. However, no recent signs of this, so it may be other issues.
  • The /usr/sbin/login code (within busybox) is altered to read the plaintext /etc/htpasswd to provide username and password lists. One might feel that, whilst this makes is simple to have the same single user for both the web pages and the telnet login, this is a bit unusual.

Boot sequence calls of rc_xxxxx 'scripts'

This has been extracted from the boot sequence logged on the openWRT page (see above for the link).

rcd: [run] deQ =/usr/sbin/rc_app/rc_start
rcd: [run] deQ =/usr/sbin/rc_app/rc_syslogd start
rcd: [run] deQ =/usr/sbin/rc_app/rc_upnp start
rcd: [run] deQ =/usr/sbin/rc_app/rc_lan init
rcd: [run] deQ =/usr/sbin/rc_app/rc_firewall init
rcd: [run] deQ =/usr/sbin/rc_app/rc_vlan start
rcd: [run] deQ =/usr/sbin/rc_app/rc_lan start
rcd: [run] deQ =/usr/sbin/rc_app/rc_lan reset_switch
rcd: [run] deQ =/usr/sbin/rc_app/rc_wlan start
rcd: [run] deQ =/usr/sbin/rc_app/rc_wifi_isolation start
rcd: [run] deQ =/usr/sbin/rc_app/rc_timezone start
rcd: [run] deQ =/usr/sbin/rc_app/rc_sip_alg start
rcd: [run] deQ =/usr/sbin/rc_app/rc_dnrd start
rcd: [run] deQ =/usr/sbin/rc_app/rc_httpd start
rcd: [run] deQ =/usr/sbin/rc_app/rc_printk start
rcd: [run] deQ =/usr/sbin/rc_app/rc_ddns init
rcd: [run] deQ =/usr/sbin/rc_app/rc_check_conn start
rcd: [run] deQ =/usr/sbin/rc_app/rc_wan init
rcd: [run] deQ =/usr/sbin/rc_app/rc_route start
rcd: [run] deQ =/usr/sbin/rc_app/rc_ripd start
rcd: [run] deQ =/usr/sbin/rc_app/rc_potcounter start
rcd: [run] deQ =/usr/sbin/rc_app/rc_lltd start
rcd: [run] deQ =/usr/sbin/rc_app/rc_upnp start
rcd: [run] deQ =/usr/sbin/rc_app/rc_schedule start
rcd: [run] deQ =/usr/sbin/rc_app/rc_usb_service init
rcd: [run] deQ =/usr/sbin/rc_app/rc_start finished
rcd: [run] deQ =/usr/sbin/rc_app/rc_schedule restart

Our version, NEWT16A, which logs calls in the format: timestamp [rc_being_run] rc_called arguments reports

Thu Jan  1 00:00:18 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_init
Thu Jan  1 00:00:20 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_start
Thu Jan  1 00:00:20 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_upnp start
Thu Jan  1 00:00:22 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_syslogd start
Thu Jan  1 00:00:22 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_lan init
Thu Jan  1 00:00:22 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_firewall init
Thu Jan  1 00:00:24 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_lan start
Thu Jan  1 00:00:30 UTC 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dhcpd start 1
Thu Jan  1 00:00:32 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_firewall group 1
Thu Jan  1 00:00:32 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_lan reset_switch
Thu Jan  1 00:00:37 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_wlan start
Thu Jan  1 00:00:41 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_wifi_isolation start
Thu Jan  1 00:00:41 UTC 1970 [rc_apps] /usr/sbin/rc_app/rc_timezone start
Thu Jan  1 00:00:41 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_sip_alg start
Thu Jan  1 00:00:41 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd start
Thu Jan  1 00:00:41 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_httpd start
Thu Jan  1 00:00:43 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_printk start
Thu Jan  1 00:00:43 GMT 1970 [rc_wan_up] /usr/sbin/rc_app/rc_ddns init
Thu Jan  1 00:00:43 GMT 1970 [rc_adsl] /usr/sbin/rc_app/rc_adsl needs
Thu Jan  1 00:00:44 GMT 1970 [rc_adsl] /usr/sbin/rc_app/rc_adsl restart
Thu Jan  1 00:00:44 GMT 1970 [rc_adsl] /usr/sbin/rc_app/rc_adsl stop
Thu Jan  1 00:00:44 GMT 1970 [rc_adsl] /usr/sbin/rc_app/rc_adsl start
Thu Jan  1 00:00:44 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_check_conn start
Thu Jan  1 00:00:44 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_wan init
Thu Jan  1 00:00:45 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_route start
Thu Jan  1 00:00:45 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ripd start
Thu Jan  1 00:00:45 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_potcounter start
Thu Jan  1 00:00:45 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_lltd start
Thu Jan  1 00:00:45 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_upnp start
Thu Jan  1 00:00:46 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_schedule start
Thu Jan  1 00:00:46 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_usb_service init
Thu Jan  1 00:00:46 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_smb event mount
Thu Jan  1 00:00:47 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ftpd event mount
Thu Jan  1 00:00:47 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_smb_http_en_chk event mount
Thu Jan  1 00:00:47 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_mediaserver event mount
Thu Jan  1 00:00:48 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_start finished
Thu Jan  1 00:00:48 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_schedule restart
Thu Jan  1 00:01:38 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_wan linkup 1
Thu Jan  1 00:01:38 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_firewall wan 1 init
Thu Jan  1 00:01:38 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ipv6 restart
Thu Jan  1 00:01:38 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd restart
Thu Jan  1 00:01:38 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd stop
Thu Jan  1 00:01:39 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd start
Thu Jan  1 00:01:41 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_wan up 1
Thu Jan  1 00:01:42 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ip_assign_chk start
Thu Jan  1 00:01:42 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_route restart
Thu Jan  1 00:01:42 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ripd restart
Thu Jan  1 00:01:43 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_traffic_meter wan 1 up
Thu Jan  1 00:01:44 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_firewall wan 1 up
Thu Jan  1 00:01:44 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_syslogd restart
Thu Jan  1 00:01:45 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_check_conn wan 1 up
Thu Jan  1 00:01:45 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd restart 1
Thu Jan  1 00:01:45 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd stop
Thu Jan  1 00:01:45 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd start
Thu Jan  1 00:01:45 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_igmp restart
Thu Jan  1 00:01:49 GMT 1970 [rc_wan_up] /usr/sbin/rc_app/rc_ddns restart
Thu Jan  1 00:01:49 GMT 1970 [rc_adsl] /usr/sbin/rc_app/rc_adsl needs
Thu Jan  1 00:01:50 GMT 1970 [rc_adsl] /usr/sbin/rc_app/rc_adsl restart
Thu Jan  1 00:01:50 GMT 1970 [rc_adsl] /usr/sbin/rc_app/rc_adsl stop
Thu Jan  1 00:01:50 GMT 1970 [rc_adsl] /usr/sbin/rc_app/rc_adsl start
Thu Jan  1 00:01:51 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_qos start
Thu Jan  1 00:01:51 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_upnp kick
Thu Jan  1 00:01:51 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ntp restart
Thu Jan  1 00:01:51 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_syslogd restart
Thu Jan  1 00:01:51 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_vpn restart
Thu Jan  1 00:01:51 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_check_fw start
Thu Jan  1 00:01:51 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_schedule restart
Thu Jan  1 00:01:51 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_wan linkdown 1
Thu Jan  1 00:01:54 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_firewall wan 1 down
Thu Jan  1 00:01:54 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_check_conn wan 1 down
Thu Jan  1 00:01:54 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_route restart
Thu Jan  1 00:01:54 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ripd restart
Thu Jan  1 00:01:56 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_qos stop
Thu Jan  1 00:01:56 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_upnp kick
Thu Jan  1 00:01:56 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_traffic_meter wan 1 down
Thu Jan  1 00:01:56 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_firewall wan 1 deinit
Thu Jan  1 00:01:56 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ipv6 stop
Thu Jan  1 00:01:56 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd restart
Thu Jan  1 00:01:56 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd stop
Thu Jan  1 00:01:57 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd start
Thu Jan  1 00:03:07 GMT 1970 [rc_adsl] /usr/sbin/rc_app/rc_adsl needs
Thu Jan  1 00:03:11 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_wan linkup 1
Thu Jan  1 00:03:12 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_firewall wan 1 init
Thu Jan  1 00:03:12 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ipv6 restart
Thu Jan  1 00:03:12 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd restart
Thu Jan  1 00:03:12 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd stop
Thu Jan  1 00:03:12 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd start
Thu Jan  1 00:03:15 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_wan up 1
Thu Jan  1 00:03:15 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ip_assign_chk start
Thu Jan  1 00:03:16 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_route restart
Thu Jan  1 00:03:16 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ripd restart
Thu Jan  1 00:03:17 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_traffic_meter wan 1 up
Thu Jan  1 00:03:18 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_firewall wan 1 up
Thu Jan  1 00:03:18 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_syslogd restart
Thu Jan  1 00:03:19 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_check_conn wan 1 up
Thu Jan  1 00:03:19 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd restart 1
Thu Jan  1 00:03:19 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd stop
Thu Jan  1 00:03:19 GMT 1970 [rc_dnsmasq] /usr/sbin/rc_app/rc_dnrd start
Thu Jan  1 00:03:19 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_igmp restart
Thu Jan  1 00:03:23 GMT 1970 [rc_wan_up] /usr/sbin/rc_app/rc_ddns restart
Thu Jan  1 00:03:23 GMT 1970 [rc_adsl] /usr/sbin/rc_app/rc_adsl needs
Thu Jan  1 00:03:23 GMT 1970 [rc_inadyn-mt] /usr/sbin/rc_app/rc_inadyn-mt start
Thu Jan  1 00:03:24 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_qos start
Thu Jan  1 00:03:24 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_upnp kick
Thu Jan  1 00:03:24 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_ntp restart
Thu Jan  1 00:03:24 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_syslogd restart
Thu Jan  1 00:03:24 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_vpn restart
Thu Jan  1 00:03:24 GMT 1970 [rc_apps] /usr/sbin/rc_app/rc_schedule restart
Wed Jun  8 08:41:13 BST 2016 [rc_apps] /usr/sbin/rc_app/rc_ntp up
Wed Jun  8 08:41:13 BST 2016 [rc_apps] /usr/sbin/rc_app/rc_schedule restart
Wed Jun  8 08:41:14 BST 2016 [rc_apps] /usr/sbin/rc_app/rc_schedule start