IPFire (http://www.ipfire.org/) is a Linux distribution targeted towards providing a security focused router/firewall that can provide a number of services beyond basic router capabilities. It has been ported to run on ARM, including GlobalScale’s Dreamplug, allowing home users to setup a router with a similar level of capabilities to a corporate router with a power and space footprint roughly equivalent to typical consumer routers.

If you are doing a fresh install or wiping and doing a clean upgrade, the official IPFire directions should be sufficient - available at http://wiki.ipfire.org/de/arm/start/kirkwood/installation. If you have problems getting the bootloader configured correctly, be sure that you are copying their script at http://people.ipfire.org/~arne_f/testing/kirkwood/uboot-env.txt a single line at a time, rather than attempting to paste the whole script at once.

Doing an in-place upgrade (i.e. simply installing the new binaries) for major versions is a bit more complex (though not particularly hard) than a fresh install, and does not seem to be noted in the official documentation. Before you begin - you will need your JTAG-UART interface for the Dreamplug

The first step for an in-place update is to change what version of IPFire that pakfire (the package manager) is looking at. To do this, edit the file /opt/pakfire/etc/pakfire.conf. There should be a variable, $version, that will indicate the current major version your install is on. Simply update this to the new version - for example to go to 2.15 from 2.13 you would change it to 2.15-arm5tel.

Having updated the configuration file, force an refresh from the package manager with: pakfire update –force.

After this, you can now update the binaries - either perform this in the command line with pakfire –update (I recommend you do this using GNU-screen) or just browse to the pakfire page in the web interface and run the upgrade from there. This could take a while - so plan accordingly.

Once the upgrade is complete you will need to reboot so that the new binaries can be loaded into memory. However, major versions may require updating the bootloader, due to new offset values in the binary. I don’t know if this is the case between every major version, but it definitely occurs between 2.13 and 2.15.

As long as you’ve still got your JTAG-UART interface, updating the bootloader is fairly straight-foward. Just use minicom (the settings and instructions to connect with minicom are at http://wiki.ipfire.org/de/arm/start/kirkwood/installation if you need to refresh your memory) and copy and paste in each line from http://people.ipfire.org/~arne_f/testing/kirkwood/uboot-env.txt. Remember to paste each line in individually - this isn’t a shell script.

Once that is done, you should be able to boot into your freshly upgraded IPFire installation.