Installation using TFTP

All supported target devices are shipped with a builtin bootloader, comparable to the BIOS of X86 machines. This bootloader is used to bootstrap the system until it can boot an regular operating system. Besides the ability to load the executable code from flash, it can be received from another node in the local area network via the famous TFTP protocol.

For doing this, there are two ways:

Most of the hardware supported by FreeWRT 2.0 uses the second method. Only the device NETGEAR WGT634U is using the first method, the bootloader provides a DHCP/TFTP client. Though this may be a little confusing to people being familiar with netboot technologies, it is definitely the easier way of doing it. Otherwise one had to setup both DHCP and TFTP servers and configure them right.

The even quite simple task of sending the flash image to the target device is made even more easy by providing a little shell script for the job. Invocation is as follows:

[label=sending the new firmware via TFTP]
$ ./scripts/flash.sh firmware.bin [address]
The second Parameter address is used to specify a different IP address of the target device than the default 192.168.1.1.

Beware: do not rename the firmware image before flashing it using the script as the original name is parsed to guess what hardware is to be flashed.

To actually being able to flash the device, it has to wait for a tftp connection when booting. To complicate installation of third vendor's firmware images and to improve bootup time, of course, this feature is disabled by default. The following list shows what has to be done for a certain device to get it to wait at boot:

Target Device Action to be taken Comments
All supported Linksys models Ping Exploit nvram variable boot_wait needs to be on
All supported Asus models Recovery mode power off $\rightarrow$ push and hold the reset button $\rightarrow$ power on $\rightarrow$ power led is flashing
<>