upslug2 - utility to upgrade the firmware of a NSLU2 via the network
is a command line program intended to allow the upgrade the
firmware of a Linksys NSLU2 (Network Storage Link for USB 2.0 Disk Drives) to
new or different versions. When a NSLU2 in the local network is put in upgrade
can connect to it and upload a new firmware.
will accept a full firmware image but it can also upgrade the
flash from individual files holding the kernel, ramdisk and root filesystem.
provides status information during the upgrade process and
verifies the written image after the upgrade.
- -C, --Complete-reprogram
- Reprogram the complete flash, including the RedBoot boot
loader and the SysConf partition holding configuration information. Using
this option may result in the NSLU2 becoming permanently unusable! By
default, upslug2 will not touch these two partitions since this
allows flashing a new firmware if an uploaded firmware does not work. This
is not possible if RedBoot itself is damaged. Use with caution.
- -d, --device
- The network device on the host machine connected to the
network on which the NSLU2 is located. (Default: eth0).
- -e, --endian
- The endianness of the files to be uploaded. upslug2
will usually detected the endianness automatically but this option can be
used to force byte swapping to occur. This option accepts three values,
separated by comma: endianness of kernel, data and RedBoot FIS directory.
Valid values are l (little endian), p (pdp endian) and
b (big endian). (Default: ,b,b)
- -f, --from
- The MAC address of the host system.
- -h, --help
- Show summary of options.
- -i, --image
- The complete flash image to use.
- -j, --rootfs
- A root filesystem, usually of type jffs.
- -k, --kernel
- A compressed kernel zImage image.
- -n, --no-reboot
- Do not reboot after upgrade
- -p, --payload
- FIS directory payload. There are about 140 Kb in the last
block (between the FIS dir and the trailer at the end) which can be used
- -r, --ramdisk
- A compressed ramdisk image.
- -R, --ram-payload
- A ram paylod (replaced ramdisk). (FIXME: if it replaced the
ramdisk, why cannot you just use the -r option? What's the difference)
- -t, --target
- The MAC address of the NSLU2 to upgrade. Without this
option, upslug2 will only perform an upgrade if there is just one
NSLU2 in upgrade mode.
- -U, --no-verify
- Do not verify the image, only upgrade.
- -v, --verify
- Do not write to flash, only verify the image.
The following options should be used when individual kernel, ramdisk and root
filesystem files are specified rather than a complete firmware image.
- -E, --extra-version
- Extra version information, a 2 byte value. (Default:
- -F, --firmware-version
- The firmware version, a 2 byte value. (Default: 0x2329)
- -P, --product-id
- The product ID, a 2 byte value. (Default: 1)
- -T, --protocol-id
- The protocol ID, a 2 byte value. (Default: 0)
In order to use upslug2
the NSLU2 which is to be upgraded has to be put
in upgrade mode:
1. Disconnect any disks and/or devices from the USB ports.
2. Power off the NSLU2
3. Press and hold the reset button (accessible through the small hole on the
back just above the power input).
4. Press and release the power button to power on the NSLU2.
5. Wait for 10 seconds watching the ready/status LED. After 10 seconds it will
change from amber to red. Immediately release the reset button.
6. The NSLU2 ready/status LED will flash alternately red/green (there is a 1
second delay before the first green). The NSLU2 is now in upgrade mode.
If you decide not to flash the image the NSLU2 can be rebooted by disconnecting
the power. If the ready/status LED does not turn green after step four it will
remain red for several seconds then flash amber. This happens if you do not
release the reset button in time - pull the power, reconnect it and repeat
from the second step.
Once the NSLU2 is in upgrade mode it will remain in this state until either the
power is connected or a new image has been flashed. If the flash fails the
NSLU2 will (eventually) return to upgrade mode
The most common use of upslug2
is the following:
upslug2 --image NSLU2_V23R63.bin
This specifies a complete firmware image which will be written to flash.
Alternatively, kernel, ramdisk and root filesystem can be specified
upslug2 -k nslu2-zImage -r ramdisk -j
In this case, the options -E
typically be specified as well.
By default, upslug2
will search for the NSLU2 on the network on your eth0
network interface. If the network is on a different interface, you can easily
upslug2 -d eth1 --image NSLU2_V23R63.bin
If there are potentially more than one NSLU2 in your network which may be in
upgrade mode, you can specify its MAC address:
upslug2 -t 00:11:85:12:34:56 --image
John Bowler <firstname.lastname@example.org>