D-Link Horstbox Standard

From GPLdevWiki

Jump to: navigation, search

Contents

Overview

The D-Link Horstbox Standard DVA-G3342SD is a VoIP capable ADSL2+ WLAN router based on the Infineon Amazon chipset.

Documentation

Hardware

User Interface

Connector

Major Components

Serial Console

JTAG Interface

Firmware

Original Firmware

Firmware Images

Sourcecode

  • D-Link only offers an old v1.91beta source, current firmware is 2.07. Source is in zip format (ouch).
  • See D-Link FTP

Firmware Structure

Image Format

Recent firmware updates contain 2 image files, each one being a LZMA compressed squashed rootfilesystem with a 64-byte U-Boot header.

All other parts of the firmware are located on each root filesystem. This covers u-boot.img (U-Boot bootloader), uImage (Linux kernel) and VINETIC_FW (Vinetic firmware) in /root and modemhwe.bin (Amazon firmware) in /firmware.

Version 2.07 of the firmware offers these 2 variants:

name (teil=part):   firmware207_teil1.img      firmware207_teil2.img
---------------------------------------------------------------------
folder datestamps   2007/10/30                 2008/08/27
/root/u-boot.img    2.0.28-M832            ==  2.0.28-M832
/root/uImage        2.4.31-Amazon-3.3.0        2.4.31-AMAZON-3.2
                    -M0416V33T_SM (hr@hrx1)    -M416-V30 (sm@lnx1)
/etc/version        3.2 (hmmm)                 2.07
/firmware           1.4.0.13.0.2           ==  1.4.0.13.0.2

This pseudo diff (find * / diff) shows the differences:

--- part1   2008-10-24 16:19:35.000000000 +0200
+++ part2   2008-10-24 16:19:50.000000000 +0200
+bin/ash
-bin/msh
-etc/rc.d/init.d/#rcS#
-etc/rc.d/init.d/.#rcS.1.1.2.5.2.4
+etc/rc.d/init.d/create_ppp_occ_cfg
+etc/rc.d/init.d/pppoe_occ
+etc/rc.d/init.d/pppoe_occ_start
+etc/rc.d/init.d/pppoe_occ_stop
+etc/rc.d/init.d/qos_downstream_borrow
+etc/rc.d/init.d/qos_upstream_borrow
+etc/rc.d/init.d/rtp
+etc/rc.d/update.sh
+etc/rc.d/upgrade.sh
+lib/libCommonmips-linux.so
+lib/libModulesmips-linux.so
+lib/libObjAPImips-linux.so
+lib/libProtoAPImips-linux.so
+lib/libProtoAdaptmips-linux.so
+lib/libStubAPIsmips-linux.so
+lib/libifx_httpd.so
+lib/modules/2.4.31-AMAZON-3.2-M416-V30/kernel/drivers/net/admwan.o
+root/chroot.sh
+root/upgrade.sh
+usr/sbin/check_version.sh
+usr/sbin/ifx_event_util
+usr/sbin/impexp
+usr/sbin/stunnel
+usr/sbin/tr69_run_command.sh
+usr/sbin/tr69d
-usr/web.st/content/icons
+usr/web.st/design/<some_images>.png
+usr/web.st/english/basic/phone_qos.html
+usr/web.st/english/basic/<some_scripts>.js
+usr/web.st/english/expert/phone_qos.html
+usr/web.st/english/expert/<some_scripts>.js

UBoot Header for firmware2091_teil1.img:

Image Name: Amazon rootfs

 Created:      Tue Oct 30 08:18:26 2007
 Image Type:   MIPS Linux Standalone Program (lzma compressed)
 Data Size:    6295465 Bytes = 6147.92 kB = 6.00 MB
 Load Address: 0x00000000
 Entry Point:  0x00000000

UBoot Header for firmware2091_teil2.img:

 Image Name:   Amazon rootfs 2.09.1
 Created:      Wed Mar 18 15:25:56 2009
 Image Type:   MIPS Linux Standalone Program (lzma compressed)
 Data Size:    7089811 Bytes = 6923.64 kB = 6.76 MB
 Load Address: 0x00000000
 Entry Point:  0x00000000

You can get the squashfs by using dd:

 # dd if=firmware of=disk bs=64 skip=1

It seems like unsquash of the firmware is quiet hard. You may get the following error:

 # unsquash -s disk
 Can't find a SQUASHFS superblock on disk

Flash Layout

Build Tools

Toolchain

Firmware Tools

Software Reference

Packages

Core system

  • U-Boot bootloader
  • Linux kernel 2.4.20
  • uClibc 0.9.27
  • Infineon Amazon drivers
  • Busybox 1.0 (modified)
    • [, ash, basename, busybox, cat, chmod, chroot, cp, cut, date, dd, dmesg, dumpleases, echo, env, expr, false, fgrep, free, getopt, getty, grep, gunzip, gzip, hostname, httpd, ifconfig, inetd, init, insmod, iwconfig, iwpriv, kill, killall, klogd, ln, logger, login, logread, ls, mkdir, mknod, modprobe, more, mount, mv, passwd, ping, pivot_root, ps, pwd, reboot, rm, rmmod, route, sh, sleep, syslogd, tail, tar, telnetd, test, tftp, top, touch, tr, true, tty, udhcpc, udhcpd, udhcpr, umount, uname, uptime, usleep, vi, wget, zcat.
  • mtd (memory device driver)
    • flash_eraseall
  • OpenSSL

Routing

  • iproute2 (IP routing)
    • ip
  • bridge-utils (bridging)
    • brctl
  • iptables (IP filtering + forwarding)
    • iptables
  • ebtables (Ether filtering)
    • ebtables
  • zebra (RIP routing)
    • ripd
  • tc (Traffic Control, missing source?)
    • tc
  • vlanctl (VLAN handling, closed source?)

Connectivity

  • br2684ctl (RFC1483/2684 Bridge Daemon)
    • br2684ctl
  • linux-atm (ATM on Linux)
    • atmaddr, atmarp, atmarpd
  • ppp (Point-to-Point Protocol)
    • pppd
  • rp-pppoe (PPP-over-Ethernet redirector)
    • pppoe, pppoe-relay

Services

  • dhcp (DHCP relay, missing source)
  • dnrd (DNS relay)
    • dnrd
  • net-snmp (SNMP daemon, missing source)
    • snmpd
  • miniupnpd (UPnP daemon)
    • miniupnpd
  • dropbear (SSH server, missing source)
    • dropbearmulti, dropbear, dropbearkey
  • linux-ftpd (FTP server, missing source)
    • ftpd
  • ntpclient (NTP client)
    • ntpclient
  • ez-ipupdate (DynDNS client)
  • updatedd (DynDNS client)
    • updatedd
  • tftp-hpa 0.40 (TFTP server, missing source, only 0.35 source)
    • tftpd
  • stunnel (TCP SSL wrapper, missing source)
    • stunnel (1.1 MB?)

Wireless

  • madwifi? (missing source)
    • 80211debug, 80211stats, athdebug, athstats, wlanconfig, wlandebug, wlanstats
  • Wireless Tools
  • hostapd
    • hostapd

Telephony

USB-Host

  • hotplug-helper (closed source)
  • ppf (Printer Port Forwarder)
    • ppf
  • samba (SMB daemon)
    • nmbd, smbd
  • smbaddpasswd (SMB passwd util)
    • smbaddpasswd

Misc

  • ping (missing source)
  • lsof (missing source)
Personal tools