The Davolink DV-2020 is an ADSL modem with 4 Fast Ethernet ports, Wireless Access Point and VoIP (2x FXS).
This board also is prepared but not supplied with components for host USB.
The modem was distributed by Versatel/Tele2 in the Netherlands starting in beginning 2007.
|Version/Model||Launch Date||S/N||OpenWrt Version Supported||Model Specific Notes|
|-||-||no, compile your own||no ADSL driver available, see → soc.broadcom.bcm63xx|
NOTE: Trunk version need to have the mtd changes to fix crc error for the brcm63xx platform created by Cshore (trunk >= 24835, tested with 25565).
|Broadcom bcm6348@256MHz||16MiB||8MiB||4 x 1||Yes||Yes||Yes|
Note: The DV-2020 has a slave USB port (e.g. to provide Internet access via USB) and optionally you can add a host USB (1.1) to connect other devices.
Note: Before installing a new image it might be a good idea to make a backup first. See JTAG below.
|Davolink DV-2020 Flash Layout OpenWrt|
|Layer0||MX29LV640MB 4Mx16 BotB 8192KiB|
|CFE Backup Layer||lower half flash 4096KiB||upper half flash 4096KiB|
|Layer1||mtd0||mtd5 linux 3968KiB||mtd4|
|Layer2||mtd0||mtd1||mtd2 rootfs 3072KiB||mtd4|
|Layer3||mtd0||mtd1||mtd3 = /||mtd4|
|Size in KiB||64KiB||895.75KiB||1536KiB||1600KiB||64KiB|
This section deals with how you install OpenWrt from a device freshly opened.
mtd fixtrx linux
If you want to upgrade using TFTP you follow these steps (as an alternative to the above install process).
*** Press any key to stop auto run (1 seconds) *** Auto run second count down:
mtd fixtrx linux
After flashing, proceed with Basic configuration.
Set up your Internet connection, configure wireless, etc.
To install packages like needed for installing LuCI (the Web interface) you need to connect the router to the Internet. Because we don't have a working ADSL driver (WAN interface), we need to connect to the Internet via the LAN interface. I used ICS on a Win PC. Connect the router using an Ethernet cable to the PC and configure the PC for Internet Connection Sharing. I left the router IP address on the default of 192.168.1.1/24. On the PC you can force to use the same range by configuring an fixed IP addres on the LAN interface connected to the router (e.g. 192.168.1.90/24). Be sure that the router with Internet access doesn't use the same range.
Changes needed on the router:
vi /etc/config/network option dns <ip-adres van Internet access router> reboot route add default gw <ip-adres van LAN interface>
The router should now be able to ping a www URL and receive an reply.
The default network configuration is:
|Interface Name||Description||Default configuration|
|br-lan||LAN & WiFi||192.168.1.1/24|
|eth1||LAN ports (1 to 4)||None|
→ hardware.button on howto use and configure the hardware button(s).
The Davolink DV-2020 has one button. The Reset button. It is located at the rear between LAN1 and TEL2 connectors.
|Bootloader: CFE (version 1.0.37-4.3)|
|System-On-Chip: Broadcom BCM63xx|
|CPU/Speed Broadcom BCM6348 256 Mhz|
|Flash-Chip: AMD AM29LV640MB|
|Flash size: 8192 KiB|
|RAM: 16 MiB|
|Wireless: BCM4318 802.11 Wireless Controller 184.108.40.206.cpe0.0|
|USB: Yes 1 x slave 1.1 & optionally 1 x host 1.1|
Note: This will void your warranty!
Photo of PCB
→ port.serial general information about the serial port, serial port cable, etc.
See photo of the PCB for the location Pinout:
1 VCC 3.3V 2 GND 3 TX 4 RX 5 GND 6 VCC 3.3VSerial settings: Baud rate: 115200, Data: 8 bit, Parity: none, Stop: 1 bit, Flow control: none
How to connect to JTAG interface, and how to backup and reflash the device with debrick utility modified by Cshore
Before you can connect the router to your parallel port of the PC you need to solder a header to the PCB to be able to connect the JTAG cable. See Hardware mods below for some tips.
wget -O HairyDairyMaid_WRT54G_Debrick_Utility_v48~cshore2.zip --no-check-certificate https://docs.google.com/uc?id=0B07LcVZMfvdkZTc1MDA5MjUtZTMzYy00OGQzLWE5MjAtODFiN2RkMTJmNDQ5&export=download&hl=en unzip HairyDairyMaid_WRT54G_Debrick_Utility_v48~cshore2.zip cd HairyDairyMaid_WRT54G_Debrick_Utility_v48~cshore make
results in the following executable:
Before using the debrick tool remove the printer module
First the CFE:
Connect the power to the router, and after the LAN LED's go off use the following command:
./debrick -backup:custom /window:1fc00000 /start:1fc00000 /length:10000 /fc:62 /notimestamp /noreset /noemw /nocwd /bigendianAfter 100% is reached rename the resulting file to something meaningfull.
mv CUSTOM.BIN.SAVED cfe-<route-mac>.bin
Second the CFE config:
./debrick -backup:custom /window:1fc00000 /start:1fc00580 /length:0400 /fc:62 /notimestamp /noreset /noemw /nocwd /bigendianAfter 100% is reached rename the resulting file to something meaningfull.
mv CUSTOM.BIN.SAVED cfe-config-<route-mac>.bin
Next the filesystem:
./debrick -backup:custom /window:1fc00000 /start:1fc10000 /length:3e0000 /fc:61 /notimestamp /noreset /noemw /nocwd /bigendianAfter 100% is reached rename the resulting file to something meaningfull.
mv CUSTOM.BIN.SAVED filesystem-<route-mac>.bin
As last the nvram:
./debrick -backup:custom /window:1fc00000 /start:1fffa000 /length:5000 /fc:61 /notimestamp /noreset /noemw /nocwd /bigendianAfter 100% is reached rename the resulting file to something meaningfull.
mv CUSTOM.BIN.SAVED nvram-<route-mac>.bin
NOTE: Normally you only flash the CFE and with a good working CFE you can install the image via the web-interface or tftp-server. Command to use for flashing the CFE (named CUSTOM.BIN):
./debrick -flash:custom /start:1fc00000 /window:1fc00000 /length:10000 /nobreak /noreset /bigendian
Before flashing a CFE verify it is in the correct format (big-endian versus little-endian)
Verify the first 4 bytes with the following command:
od -x <file name> | head -n 2The file should start with 0278 1000
If this is not the case you can change the endianness with the switchend tool created by Cshore included in the download above. Command to use:
cat bigendian_cfe_file.bin | ./switchend > CUSTOM.BIN
otherwise make sure the filename of the CFE is CUSTOM.BIN (E.g. mv cfe.bin CUSTOM.BIN).
LinuxInside created a CFE for the DV-201AMR that doesn't make a backup.
This CFE also partially workes on a DV-2020,
only the CFE Web-interface to upload an image doesn't work. During my last try also the CFE Web-interface to upload images worked.
Image for regular cfe the trx is copied to low half of flash. Map is as follows:
start len 0x00000000:<firmware> backup <firmware>:-0x00400000 rootfs_data 0x00400000:0x00010000 CFE:RO 0x00410000:0x003f0000 linux 0x00410000+<kernel>:<rootfs_len> rootfs 0x00410000+<firmware>:-0x8000000 free1
Patched CFE, proposed MAP is like:
start len 0x00000000:0x00010000 free2 0x00010000:0x003f0000 rootfs_data 0x00400000:0x00010000 CFE:RO 0x00410000:0x003f0000 linux 0x00410000+<kernel_len>:<rootfs_len> rootfs 0x00410000+<kernel_len>+<rootfs_len>:-0x8000000 free1
See also the following forum update: http://forum.openwrt.org/viewtopic.php?pid=81093#p81093
<code>mtd write Patched-cfe-for-Davolink.bin /dev/mtd0</code>
Tried the above command a few times but it bricks the router. Asked why this is in this thread.
Instead use the following command:
dd if=/tmp/Patched-cfe-for-Davolink.bin of=/dev/mtd0
Some additional tips:
List of components to enable USB on the DV2020:
R33 = 15k Ohm R13, R14 = 22 Ohm R15, R16 = 15k Ohm C178, C179 = 47 pF (possible to skip) BD07, BD08 = 0 Ohm (or short by wire) USB Type 'A' Jack 'RECEPTACLE'Note: for USB connector you can also use and extention cable like this 20cm one. The angled onces that fit directly on the board are difficult to get, and this one has long enough wires for soldering.
Image with solder points for connector:
Photo of USB connector solder points
Image with USB component locations:
During building of your image you can include USB support by adding the following options:
<*> Kernel modules —> Filesystems —> kmod-fs-ntfs
<*> Kernel modules —> Filesystems —> kmod-fs-vfat
<*> Kernel modules —> Native Language Support —> kmod-nls-base
<*> Kernel modules —> Native Language Support —> kmod-nls-cp437
<*> Kernel modules —> Native Language Support —> kmod-nls-iso8859-1
<*> Kernel modules —> USB Support —> kmod-usb-core
<*> Kernel modules —> USB Support —> kmod-usb-ohci
<*> Kernel modules —> USB Support —> kmod-usb-printer
<*> Kernel modules —> USB Support —> kmod-usb-storage