djh kindly sent me the following guide to upgrading firmware on a Draytek router using the tftp method on MacOS X or UNIX. For other (Windows based) methods using the Router Tools CD, FTP, TFTP or the Web GUI see http://www.draytek.com/user/SupportFAQDetail.php?ID=103. The Web GUI will also work on other non-Windows operating systems but if you’ve got a Draytek with corrupt firmware (also known as “bricked” status) where the GUI isn’t available, obviously that won’t be an option. See also this Draytek debricking guide prior to running one of the alternate firmware upgrade methods if you’re having trouble getting it to upload.
Updating Draytek firmare using the MacOS X or UNIX command line and TFTP
————————————————————————
Draytek modems have several methods available to update their firmware.
You can use the Firmware Upgrade Utility under Windows, load it from the
web interface via HTTP, FTP the file to the modem or use the TFTP (Trivial
File Transfer Protocol) service built into the box.
If your modem has been bricked you can’t use FTP or HTTP. If you don’t want
to use Windows or go through the web interface, then this TFTP method is a
viable alternative. Note that unlike a lot of other boxes using TFTP to
load firmware, the Draytek is acting as a TFTP server, the UNIX/MacOS box
as a client and you PUT the file onto the modem. It is normally the other
way around, but that needs some extra setup steps that are conveniently
avoided with this method.
The Steps
———
Firstly you need to obtain the right firmware from the Draytek support
site; you need to know the modem model and the type of WAN interface. For
our Vigor2820Vn using “ADSL over POTS” with “Annexe A” as written on the
packaging label, we needed to download the firmware file
“Vigor2820+V3.3.0.1+AnnexA+211011.zip”.
Once you have downloaded the file you change to the same directory (eg:
/tmp) or folder (eg: Desktop) with the ‘cd’ command and then unpack the
ZIP archive.
On a Mac you can do this in a Terminal application window (to be found in
Applications/Utilities). We’ll use the % prompt for MacOS specific command
lines, the # prompt for UNIX specific command lines and $ where the command
will work on either system. The bits you need to type are in bold.
% cd Desktop
or # cd /tmp
$ ls
Vigor2820+V3.3.0.1+AnnexA+211011.zip
$ unzip Vigor2820+V3.3.0.1+AnnexA+211011.zip
Archive:Â Vigor2820+V3.3.0.1+AnnexA+211011.zip
 inflating: v2820_v03301_211011_A.allÂ
 inflating: v2820_v03301_211011_A.rst
$ ls
Vigor2820+V3.3.0.1+AnnexA+211011.zip
v2820_v03301_211011_A.all
v2820_v03301_211011_A.rst
$
The firmware comes in two pieces. Use the .rst version of the file if you
want to change the modem settings back to factory defaults, use the .all
file to keep the current settings (.all may not be a good option if the
modem is bricked).
Secondly you need an ethernet interface on your Mac or UNIX box set to
the subnet 192.168.1.0 (eg: with IP address 192.168.1.2) so that you can
talk to the modem at its default IP address of 192.168.1.1.
Under MacOS X you do this using ‘Network’ which is found in ‘System
Preferences’. Choose to configure TCP/IP data ‘Manually’, set the IP
Address field to 192.168.1.2 and the Subnet Mask to 255.255.255.0. The
Router field doesn’t need to be set, but you could use 192.168.1.1.
Nothing is required in the DNS or Search Domains fields.
To set an IP address on a UNIX box use ..
# ifconfig re0 inet 192.168.1.2 netmask 255.255.255.0
where you substitute the name of the interface you are using for “re0″.
Plug an ethernet lead into your UNIX box and into a LAN port on the modem,
we used LAN port 1 on our Vigor2820Vn.
If the modem is up and running (and not bricked), you should now be able
to ping it ..
$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=0.309 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0.421 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0.409 ms
^C
—-192.168.1.1 PING Statistics—-
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.309/0.380/0.421/0.050 ms
$
If your modem is really bricked then the ping will only work when the
modem is actually in TFTP upload mode as below. You can ignore this step,
it just demonstrates that the ethernet cable is working.
Now we can upload the firmware. With the modem powered off, press and
hold the factory reset button, then power up the modem. Continue to hold
the button down until ’some’ of the lights flash together. On the Vigor2820Vn
’some’ is the left column of three. On the 2800 and 2910 the left two LEDs
flash.
Release the button and on your UNIX/MacOS box type the following commands
(note that the modem only stays in TFTP mode for a short time, you can
actually type right up to the end of the put command and just press return
when the left-hand modem lights start flashing).
$ tftp 192.168.1.1
tftp> binary
tftp> put v2820_v03301_211011_A.rst
Sent 4973144 bytes in 13.1 seconds
tftp> quit
$
There will be a pause after the ‘put’ command, but your modem ethernet port
light should be flashing madly. The transfer is done when you get the
“Sent” message. Quit the TFTP client and perhaps your Terminal session,
there’s nothing more to see.
What happens next isn’t really documented but we presume that the modem has
to unpack the firmware and load it into flash. On our 2820Vn the column of
3 lights continued to flash, but gradually slowed down, speeded up, then
slowed again. Eventually after a minute or two the modem rebooted in the
normal fashion. Just be patient.
Job done.
djh
18/05/09