UPSLUG2(8)

πŸ“¦ version 0.0, in fedora 43, fedora 44

πŸ’– UPSLUG2(8) πŸ’–

okay bestie, so this is upslug2 from the System Manager's Manual, and it's literally the glow-up tool for your NSLU2. no cap.


✨ NAME ✨

upslug2 β€” a whole utility that upgrades the firmware of a NSLU2 over the network πŸ¦‹


🌸 SYNOPSIS 🌸

upslug2 [options]

πŸŽ€ DESCRIPTION πŸŽ€

so upslug2 is a command line program, and its entire main character job is letting you upgrade the firmware of a LinkSys NSLU2 (that's the Network Storage Link for USB 2.0 Disk Drives, iykyk) to new or different versions. when a NSLU2 on your local network gets put into upgrade mode, upslug2 can connect to it and upload a new firmware. it's giving ✨remote flash✨.

and like, upslug2 will happily accept a full firmware image, but it can also upgrade the flash from individual files holding the kernel, ramdisk and root filesystem. so flexible. so versatile. πŸ’…

during the upgrade process upslug2 gives you status information (love that for us) and verifies the written image after the upgrade. it checks its own work. icon behavior.


πŸ’… OPTIONS πŸ’…

  • -C, --Complete-reprogram β€” reprogram the complete flash, which includes the RedBoot boot loader and the SysConf partition holding configuration information. > ⚠️ bestie. using this option may result in the NSLU2 becoming permanently unusable! 😭 by default upslug2 will not touch these two partitions, because that's what lets you flash a new firmware if an uploaded firmware doesn't work β€” and that is not possible if RedBoot itself is damaged. use with caution. fr fr.
  • -d, --device β€” the network device on the host machine that's connected to the network where the NSLU2 is located. (Default: eth0).
  • -e, --endian β€” the endianness of the files to be uploaded. upslug2 will usually detect the endianness automatically, but this option can be used to force byte swapping to occur. it 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. your bestie when you're lost 🫢
  • -i, --image β€” the 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 for data.
  • -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) πŸ’€ not me noticing the typo in "paylod", the manpage said it first, I'm just the messenger.
  • -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.

🧚 Options to specify firmware information 🧚

the following options should be used when individual kernel, ramdisk and root filesystem files are specified rather than a firmware image.

  • -E, --extra-version β€” extra version information, a 2 byte value. (Default: 0x90f7)
  • -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)

🌈 USING UPSLUG2 🌈

in order to use upslug2, the NSLU2 which is to be upgraded has to be put in upgrade mode. here's the ritual, step by step, no skipping πŸ•―οΈ:

  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. and listen β€” 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. fix? pull the power, reconnect it and repeat from the second step. you got this 🫢

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. it's persistent like that. honestly, relatable.


⭐ EXAMPLES ⭐

the most common use of upslug2 is the following:

upslug2 --image NSLU2_V23R63.bin

this specifies a firmware image which will be written to flash (with the exception of the RedBoot and SysConf partitions). no RedBoot drama, no SysConf drama, we love a safe default πŸ’–

alternatively, kernel, ramdisk and root filesystem can be specified individually:

upslug2 -k nslu2-zImage -r ramdisk -j root.jffs

in this case, the options -E, -F, -P and -T should 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 specify it:

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 NSLU2_V23R63.bin

πŸ”₯ SEE ALSO πŸ”₯

slugimage(1)


πŸ‘‘ AUTHOR πŸ‘‘

John Bowler <jbowler@acm.org>


okay that's the whole page bestie, go forth and flash responsibly πŸ’…βœ¨ January 2006 energy, from the System Manager's Manual files, UPSLUG2(8) era, and we ate. periodt πŸŽ€

πŸ“¦ where this page comes from