Modem Firmware

From BE Usergroup Technotes
Jump to: navigation, search

Contents

BEBox Modem Firmware:

Cases when Firmware upgrade is required:

  • 1. If the modem is with Orange PWR light then this indicates that the firmware is not functioning properly and the modem is waiting for fresh firmware to be uploaded in order to start working properly.
  • 2. If the modem is with another Firmware not approved by BE
  • 3. If the modem is not working properly and you have been advised to Upgrade it by the usergroup or the BE support team.
  • 4. Or you feel like it :D.

Prerequisites

  • BEBox
  • Ethernet LAN Connection to BeBox
  • The latest BE firmware file and updater program (flasher)
  • We recommend that you save your config file as a reference here but it is not advised to restore older configs onto newer firmware.

Updater Program
Modem Firmware Update Tool: http://www.beusergroup.co.uk/downloads/TGUPGv7201.zip (used to be called TG_UPGRADE.ZIP, in the video / screenshots below)

Firmware Files

NOTE: It is not wise to restore an old config onto newer firmware. Note down your settings and start configuration from scratch. Firmware should be downloaded from the BE site here, new firmware has been released to support the Sky PPP network:
https://www.bethere.co.uk/web/beportal/beboxdownload

Note:

ALL PREVIOUS FIRMWARE SETTINGS WILL BE LOST! The new firmware has a major security update in that the login details have changed to USER=> "Administrator" and PASSWORD=> the S/N found on the bottom of the router.
If you have issues logging in please see the password help page.

On the rare occasions that the firmware upgrade the wizard fails to detect the BeBox after a factory reset, you may need to force upgrade mode.

Problems


Q: My firmware update gets to 18-20%ish and then fails? Why?
A: Three things can cause this. First you can only update over LAN cable, you cannot update the BEBox over wireless. Second firewall software such as Windows Firewall or McAfee etc.. can block the upgrade tool so it fails. Third trying to flash the wrong firmware onto the wrong device can also cause this, i.e. Trying to flash the 585v7 firmware onto a 780WL BEBox etc.

Q: My firmware update seems to go through but fails at 100% and the router doesn't change to the new firmware!
A: This has been known to happen if there is a switch in between the computer running the flash tool and the BEBox. Wire the computer directly to the BEBox without a switch in between and retry.

Q: Feature X is BROKEN!!! Why? (For example, I can no longer VPN).
A: The two usergroup hosted 585v7 firmwares are generally more reliable than the older 7.x firmware. Bugs / problems should be noted over at the BE forum.

Q: I don't seem to be able to get an IP from the router and cannot find the router using the firmware upgrade tool.
A: Try forcing an IP address on your network adapter and trying the firmware update again.

Windows

Windows 7: Compatibility mode required!

Either use the instructions below or follow this video.

This step isn't a requirement but if you have issues upgrading the firmware try setting a Local Static IP on your computer.

Step 1 - Downloading the Firmware

To download the "Release" firmware from our website please login to the member center with your Member ID and Password which will open your personal Member area, then look for “Support” link then look for “BeBox” and download the firmware for your modem. We currently have 3 models-- SpeedTouch 716, 780 and 585, also download the templates if you use anything other than a 585v7 or 587nv2.

Step 2 - Upgrading the firmware

Extract the files from TG_UPGRADE.ZIP into a folder. Also make sure that the firmware file is downloaded, extracted and ready to be used. [in the screenshot the person has two different firmware files].

Newupgrade1.png

Double click on the setup file that you have extracted.

Click on Upgrade your Thomson Gateway.

Newupgrade2.png

Click Next.

Newupgrade3.png

The firmware tool will search for your BeBox.. If you have multiple routers on your network it may show two (as per the screenshot) or more results. Click on the correct one and press next.

Newupgrade4.png

Newupgrade5.png

It may ask you for the username and password. Unless you have changed it the username will be Administrator and the password will either be nothing (leave the box blank) or the serial number on the bottom of your BeBox - For example CP0850SFZRE. Then click OK.

Newupgrade6.png

Click Have Disk and navigate to the file of the firmware you want to install on the BeBox.

Newupgrade7.png

Click Next.

The firmware upgrade will start. This WILL take a few minutes so please wait for it to get to 100% before power cycling or unplugging anything or the BeBox.

Newupgrade8.png

You are done! (The "Go to the configuration interface" option does not work, leave it unticked).

Newupgrade9.png

Mac 10.7.X (and later) Command Line Script

This script is very new and very untested. Use with caution.

If you can find a Windows PC, or can invite a friend with a Windows based laptop to come over, then the Windows based firmware update will be MUCH easier. Use the following script if you have no other option.

Download the script: http://beusergroup.co.uk/drsox/beboxmacupdate.zip

Extract it somewhere easy such as the Desktop.

Read the instructions. Follow the instructions.

Mac PowerPC Compatible (GUI / Wizard)

Follow "Step 1 - Downloading the Firmware" for windows.

There is a Mac version of the Thompson firmware updater for the BeBox located here http://beusergroup.co.uk/downloads/mac_updater_090909.zip

Then follow the windows instructions for the GUI changing path names to suit.

Macupdate1.png

Macupdate2.png

Macupdate3.png

Macupdate4.png

Macupdate5.png

Macupdate6.png

Macupdate7.png

If that doesn't work the Linux instructions below will point you in the right direction for doing a bootp / tFTP upload of the firmware.

Linux and other Unixes

These instructions are mainly Linux-centric. The principles for other Unix variants will be the same, the details may be different.

Follow "Step 1 - Downloading the Firmware" for windows. Backup the BeBox configuration.

As there is no special firmware upgrade application, you have to use the firmware recovery method. This requires that you run a bootp (or dhcp) server on a local machine, and a tftp server on the same or another local machine. The firmware recovery method wipes out your configuration of the Bebox - so you'll probably want to backup the BeBox configuration before you start.

On some distributions, you will need the tcpd package, this includes these tools:
tftpd
bootpd

On *Ubuntu Linux (and probably other Debian based systems) you need packages bootp and tftpd:

sudo apt-get install bootp tftpd

It's also worthwhile installing the tftp package - this gives you a tftp client, so you can check that the tftp server works OK.

sudo apt-get install tftp

If you want to do other things with your tftp server in the future, you might care to look at the tftpd-hpa package rather than the tftpd package. This provides more features and security, and it runs out of init which saves messing about with (x)inetd.

Recent *Ubuntu installations make a mess of installing tftpd - you'd be better off installing the tftpd-hpa package instead. However, if you need to get tftpd to work, you need to create a file named /etc/xinetd.d/tftp with these contents:

service tftp
{
     disable     = no
     socket_type = dgram
     protocol    = udp
     user        = nobody
     port        = 69
     server      = /usr/sbin/in.tftpd
     server_args = -s /tftpboot
     wait        = yes
}

and then issue the command service xinetd restart to get xinetd to notice the change.

I also used tcpdump to monitor network activity and check that the firmware is uploaded. This is a long winded version with lots of output so you can see if (and where) any errors occur.

  • 1. Open two terminals.
  • 2. We need a static IP address on the local machine, 192.168.1.10 will do

- this can be set via the command below or use your systems network manager.

ifconfig eth0 192.168.1.10

BSD-based machines (FreeBSD, NetBSD, OpenBSD, etc.) name their network interfaces after the driver - ifconfig should show what your network interface is named.

Turn off any autoconfiguration using DHCP to avoid the IP address being released as you reboot the BeBox.

  • 3. In the first terminal run this command:
sudo tcpdump 

- if you have more than one NIC you will have to use the "-i ethX" flag.

  • 4. Connect the bebox via ethernet cable, without the DSL cable connected.

- you will probably see ARP traffic in the first terminal as the BeBox and the PC talk.

  • 5. Let's start by installing the firmware in the right place for the TFTP server.

There are several different TFTP server implementations, and a couple of different security models. So you need to find out the directory where your TFTP server looks for files to serve to clients. This base directory may be named /tftpboot, /var/lib/tftpboot, or /srv/tftp. You should put your BeBox firmware file in this directory - you may want to create a sub-directory if you anticipate updating several different BeBoxes (for example, you might want to have a TG585v7 sub-directory and a TG582n sub-directory).

- Now, in the second terminal window, if you have a TFTP client installed on the machine, run "tftp 127.0.0.1". At the tftp prompt, enter "get fred". If you see a 'file not found' error, then your TFTP server is running - if the command just hangs, the server isn't running, so do a CTRL-C to stop the command.

- If the TFTP server isn't running, then you need to start it. In the same terminal run the command:

sudo /usr/sbin/in.tftpd

On some systems you may need to run:

sudo /usr/sbin/in.tftpd -l

instead to start the server. Ubuntu machines have to run tftpd from (x)inet, my recommendation is to install tftpd-hpa instead (this runs from init, so it's simple).

- Once the TFTP server is running, you should be able to run "tftp 127.0.0.1" and get an error message trying to "get fred". Now you need to find whether your TFTP server allows clients to request any file, or only files under a 'hidden' base directory. So, if your base directory is /tftpboot, and your firmware file is /TG585v7/Be_TG585v7_xxxx.bin, you should try the commands "get /tftpboot/TG585v7/Be_TG585v7_xxxx.bin" and "get /TG585v7/Be_TG585v7_xxxx.bin". Hopefully just one will succeed. Remember which!

  • 6. In the second window we will need to setup the configuration file for bootp.

- Look on the bottom of the BeBox for the MAC code - 6 pairs of digits (0-9 and A-F), each pair separated by a colon, e.g. "00:11:22:33:44:55". This code, with the colons removed, is needed for the "ha" section on the line you're about to add.

- If your TFTP server only serves files under a 'hidden' base directory, the line you're about to add will need a "td" section to specify the 'hidden' base directory - for example, "td=/tftpboot".

- If your firmware file is under a sub-directory, or if your TFTP server serves any file, you'll need an "hd" section - for example, "hd=/TG585v7" or "hd=/tftpboot/TG585v7".

- You'll always need a "bf" section with the filename, for example, "bf=Be_TG585v7_xxxx.bin".

To clarify the above, the TFTP server serves a file with the name built from the "hd" and "bf" sections. This needs to match the successful get command you did earlier. If your TFTP server hides the fact that there's a base directory, then that hidden directory should be specified in the "td" section.

- edit this file "/etc/bootptab" file

sudo nano /etc/bootptab

- The file need to contain a line like:

bebox:ha=001122334455:ip=192.168.1.254:sm=255.255.255.0:td=/tftpboot:hd=/TG585v7:bf=Be_TG585v7_xxxx.bin

or:

bebox:ha=001122334455:ip=192.168.1.254:sm=255.255.255.0:hd=/tftpboot/TG585v7:bf=Be_TG585v7_xxxx.bin

depending on whether the /tftpboot (or similar) directory is hidden from client requests or not.

  • 7. In the second window run the command:
bootpd -d4 &

- this will start the bootp server in debug mode so we can see the BeBox request the firmware

  • 8. Turn the BeBox off. Press and keep pressed the factory reset button on the back of the BeBox (you might need a straightened paper-clip or similar to do this) while powering the BeBox on.

- Keep holding the reset button in until the Power LED turns from Red to Orange - Terminal two should show something like this:

bootpd: info(6):   recvd pkt from IP addr 0.0.0.0
bootpd: info(6):   bootptab mtime: Sun Aug 30 20:52:06 2009
bootpd: info(6):   request from Ethernet address 00:1F:9F:45:F7:44
bootpd: info(6):   found 192.168.1.254 (bebox)
bootpd: info(6):   requested path=""  file="CANT-P"
bootpd: info(6):   bootfile="/tmp/be_llu_tg585v7_r82y1_v2v_fw.bin"
bootpd: info(6):   vendor magic field is 99.130.83.99
bootpd: info(6):   sending reply (with RFC1048 options)
bootpd: info(6):   setarp 192.168.1.254 - 00:1F:9F:45:F7:44

- Terminal one something like:

02:48:53.907841 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:1f:9f:45:f7:44 (oui Unknown), length 300
...
03:00:40.549510 IP che.57056 > 192.168.1.254.spytechphone: UDP, length 5473                                                     
03:00:40.549560 IP che > 192.168.1.254: udp                                                                                     
03:00:40.549642 IP che > 192.168.1.254: udp                                                                                     
03:00:40.549768 IP che > 192.168.1.254: udp                                                                                     
03:00:40.638948 IP 192.168.1.254.spytechphone > che.57056: UDP, length 4 
...

- The BeBox will reboot on its own after about 1 min Do Not Turn It OFF While It Is Updating The Firmware Wait for all the lights to turn green again.

  • 9. Clean up

- In the first terminal press [ctrl]+c to kill tcpdump - In the second type "killall in.tftpd" and killall bootp" to kill the two server that we were running

Notes

The Linux firewall will probably have to be off or the interface set as local/internal - the initial bootp/dhcp packet is sent from the IP address 0.0.0.0, and this might be blocked by the firewall (you need a rule allowing inbound UDP traffic from 0.0.0.0/32 port 68 to this machine's port 67).

If the first terminal has output similar to this:

14:22:21.507005 IP 192.168.1.254.spytechphone > che.tftp:  58 RRQ "/tmp/be_llu_tg585v7_r82y1_v2v_fw.bin" octet blksize
14:22:22.506995 IP 192.168.1.254.spytechphone > che.tftp:  58 RRQ "/tmp/be_llu_tg585v7_r82y1_v2v_fw.bin" octet blksize
...

Then the firmware is not being sent to the BeBox. Things to look into are the firewall config, if the firmware reply is on the same NIC, that tftpd is running.


This method does not keep your config. If you have made changes then you will need to back them up and try to restore them via the BeBox's web GUI at http://192.168.1.254/cgi/b/bandr/?be=0&l0=1&l1=1&tid=BACKUP_RESTORE

OpenSuse 11.3 Procedure

I  successfully run this procedure on OpenSuse 11.3. It needed several modifications

  • 1. Switch off IPv6 in Yast. TFTP refused connections on my machine while IPv6 was on. (Similar problems with tftpd and tftpd-hpa under Ubuntu - even though there's no IPv6 listener on UDP port 69, I had to explicitly tftp to 127.0.0.1 rather than to localhost).
  • 2. Set up default route to 192.168.1.254 (either with "route add" or via network setup in YaST), ifconfig alone was not enough.
  • 3. The "/etc/bootptab" line had to be
bebox:ha=''001122334455'':ip=192.168.1.254:sm=255.255.255.0:bf=''be_llu_tg585v7_r82y1_v2v_fw.bin''

The important part is that the file path must be relative to the tftp server directory configured via Yast (which was /tftpboot by default). I started the tftp server via xinetd, by enabling it in the "network services" in yast.

Also, I found Wireshark more useful for debugging than tcpdump, it contained more informative error messages.


Misc

Converting firmware file names to the firmware numbers reported by the routers is done as follows

0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z
0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

For example "Be TG585v7 R82N0 V2V.bin" would show as "Software Release: 8.2.23.0" when installed on the router.

Personal tools