NSLU2 - Installing OpenWRT/Kamikaze


There are several ways to install linux onto a NSLU2. Most versions require an external USB HD or a memory stick to install properly. The version I have elected to install, OpenWRT/kamikaze, can fit on the NSLU2 without the aide of an external device. This set of instructions are my very simple no-frills method compiled from several sources: OpenWRT and the wiki for OpenWRT. The first website has installation instructions for the other flavours of linux.

Installing OpenWRT/kamikaze

First, install upslug2 onto your linux PC. If you are not using linux, please refer to the OpenWRT website for alternative installation methods.

Installing upslug2 can be as simply as issuing a "apt-get install upslug2." If there are dependency issues, either update the libraries (which may break other programs) or download the source and rebuild it.

% svn co http://svn.nslu2-linux.org/svnroot/upslug2/trunk upslug2
% cd upslug2
% autoreconf -i
% ./configure
% make
Next, retrieve the image, openwrt-kamikaze-7.09-nslu2.bin, that will be flashed onto the NSLU2. Or this tarball that will include a readme. Files for different architectures and versions can be found here.

To flash the NSLU2, it has to connected to the same network segment as the PC that has the image. The simplest way to ensure it is on the same network segment is to plug your PC and the NSLU2 into a hub.

Place the NSLU2 into upgrade mode by pressing the reset button in with a paperclip or similar object and holding it while turing on the NSLU2. Hold the reset button in until the ready/status light turns red. Release the reset button immediately. The ready/status light should cycle red and green.

From your linux PC, you can issue a upslug2 command without any options to determine if the slug is indeed on the same network segment and is in upgrade mode.

% ./upslug2
NSLU2 00:11:22:33:44:55 Product ID: 1 Protocol ID: 0 Firmware Version: R23V63 [0x2363]
Since the NSLU2 was found, upload the kamikaze image. DO NOT STOP THIS PROCESS! It will take a few minutes, and stopping this process will create a paperweight.
% ./upslug2 --target="00:11:22:33:44:55" --image="openwrt-kamikaze-7.09-nslu2.bin"
Upgrading LKG123456 00:11:22:33:44:55
. original flash contents    * packet timed out
! being erased                   - erased
u being upgraded              U upgraded
v being verified                  V verified
    <status> <address completed>+<bytes transmitted but not completed>
* timeout occurred             + sequence error detected
Rebooting... done
When it is finished, telnet to the NSLU2 and change the password by issuing a "passwd" command. Once the password has been set, the NSLU2 will disable telnet, enable ssh, and finally reboot.

Determining the IP
If the NSLU2 was previously assigned network information through the Linksys Setup CD, the install process will try to use the information it finds on the NSLU2. UPDATE: The NSLU2 will next try to obtain an address through DHCP (thank you Jay). If it cannot find any information on the NSLU2 or through dhcp, the IP address will be set to the default

If the NSLU2 retrieves its network information through DHCP, try using arp -a to determine the IP address it was assigned. Since both the PC and NSLU2 are on the same segment, this should work. If there are many entries, grep for the MAC address.

% telnet 111.222.333.444
Trying 111.222.333.444...
Connected to 111.222.333.444..
Escape character is '^]'.
=== IMPORTANT ============================
Use 'passwd' to set your login password
this will disable telnet and enable SSH

BusyBox v1.4.2 (2007-12-28 10:50:24 UTC) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
KAMIKAZE (7.09) -----------------------------------
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
root@OpenWrt:/# passwd
root@OpenWrt:/# exit

[NSLU2 reboots]

% ssh 111.222.333.444

The directory /etc/config/ contains configuration files to assign hostname, network and other system information.

  This material is based upon work supported by the National Science Foundation under grants #0435454 and #0454432, and the NSF Graduate Research Fellowship Program. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.