Speedtouch Upgrade





edit SideBar

Speedtouch Upgrade

HOWTO update a Thomson Speedtouch router firmware in Linux

Overview

Thomson's series of DSL ethernet routers and modems (not USB modems) ship with a firmware updater for windows.

These instructions are for a Thomson 516v6 ADSL single-port ethernet router purchased in the UK in February 2008. The method should be identical for other Speedtouch 5xx routers.

The updater is really just a bootp, tftp and dhcp server application. This is easily duplicated in Linux.

The instructions for installing packages are Debian/Ubuntu specific. I expect most general-purpose distros to have the required packages.

Vim is my text editor, substitute yours in the following instructions.

1.  Initial Setup

Connect your Speedtouch router and your host machine to your network.

Configure your host machine with a static IP address.

Make sure you can ping the router from your host machine.

Open a terminal.

2.  Get Thomson MAC address

arping 192.168.1.254

Output should show MAC address.

Note: 192.168.1.254 is one of the two IP addresses the router is configured with by default. The other is 10.0.0.138.

3.  Install bootp and tftpd

sudo apt-get install bootp tftpd-hpa

4.  Configure tftpd

sudo vim /etc/default/tftpd-hpa

RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
-lrun in standalone (listen mode), rather than from inetd
-schange root directory on startup

5.  Download Thomson firmware

I had to hunt around a bit until I found some up to date firmware.

wget http://www.speedtouchforum.de/Daten/FW/5x6iv6/7.4/ZZQ2AA7.417.zip
unzip ZZQ2AA7.417.zip
sudo cp ZZQ2AA7.417.bli /var/lib/tftpboot/

This firmware is v7.4.1.7 (international). It includes a UI configuration option for putting the router in bridge mode.

6.  Configure bootp

sudo vim /etc/bootptab

Configuration is a series of colon-separated key=value pairs

6.1  Example

thomson:ip=192.168.1.254:ha=$MACADDR:td=/var/lib/tftpboot:hd=/:bf=ZZQ2AA7.417.bli:
ipIP address of the router
haMAC address of the router. $MACADDR should be replaced with the Speedtouch MAC address formatted as a string of hex digits. e.g. 00112233445566
tdTFTP directory. The value of the "td" option must match the value of the "-s" option from /etc/default/tftpd-hpa.
hdPath under "td" where bootfiles are found
bfRouter firmware filename

6.2  Ubuntu >= 11.10 Example

In later versions of tftpd (as of Ubuntu 11.10 at least), the td option is now relative to the tftpd default directory (/var/lib/tftpboot). So leave out the td= option altogether. Thanks to Matthew Marks for the report.

Example:

thomson:ip=192.168.1.254:ha=$MACADDR:hd=/:bf=ZZQ2AA7.417.bli:

7.  Start bootp

Start bootpd as root with debugging enabled:

sudo bootpd -d4

Yes, I'm starting bootpd on the console, not as a daemon. It's easier to see debug output this way.

8.  Upgrade the firmware

  • Turn off the Speedtouch
  • Hold down Reset and turn it on
  • Continue holding for at least 10 seconds (or until the Power LED flashes red-green repeatedly and the Ethernet LED flashes green).

Output from bootpd should look something like:

bootpd: info(6):   bootptab mtime: Wed Feb 20 14:46:57 2008
bootpd: info(6):   reading "/etc/bootptab"
bootpd: info(6):   read 1 entries (1 hosts) from "/etc/bootptab"
bootpd: info(6):   recvd pkt from IP addr 0.0.0.0
bootpd: info(6):   bootptab mtime: Wed Feb 20 14:46:57 2008
bootpd: info(6):   request from Ethernet address 00:14:7F:11:3E:01
bootpd: info(6):   found 192.168.1.254 (thomson)
bootpd: info(6):   requested path=""  file="BANT-V"
bootpd: info(6):   bootfile="//ZZQ2AA7.417.bli"
bootpd: info(6):   vendor magic field is xx.xx.xx.xx
bootpd: info(6):   sending reply (with RFC1048 options)

If all goes well after about a minute you should be able to log into the router again with the new firmware.

9.  Speedtouch 716 Addendum

Courtesy of Matthew Marks:

When resetting the Speedtouch716:

  • Turn off the Speedtouch
  • Hold down Reset and turn it on
  • Continue holding until the Power LED turns orange.

Links

Recent Changes (All) | Edit SideBar Page last modified on 15 January 2016, at 02:34 PM UTC Edit Page | Page History
Powered by PmWiki