Project: Automated offsite backups for an NSLU2 – part 7

12 November 2006

Previously in this series: Part 1, Part 2, Part 3, Part 4, Part 5, Part 6.

I’ve discovered that in order to get automated offsite backups from my NSLU2 to Amazon S3, I have to get it to run Ruby so that it can run s3sync. I’ve installed the latter on a Ubuntu machine as a dry run, and it all looks good – so now I need to get Ruby onto the slug, and the first step in that direction is to install Unslung.

I won’t detail what you have to do to install Unslung, as that’s likely to change, and the last thing I want is for someone to land here in a few months time, follow my out-of-date instructions, and destroy their hardware. So, suffice it to say – I followed the instructions at the Unslung New User’s Guide and in the README file that came with the download – and I followed them exactly. I’ve supported enough software to know that most problems encountered by experienced users come from overconfidence and not following instructions… so I don’t want to be one of the people I’ve cursed in the past.

All that said, I did encounter one problem that required a quick detour; once I had done the initial checks, and tried to upload the Unslung firmware from the NSLU2’s web admin pages, I got an error dialog saying “upgrade: no enough free space” (sic). A quick poke around with Google made it clear that some people had fixed similar-sounding problems using a tool called “EraseAll” to clear out the slug’s flash RAM prior to doing an upgrade – but a quick check at the NSLU2-Linux site made it clear that they thought that using this tool was a terrible idea! Further investigation showed that there was a FAQ on the NSLU2-Linux site regarding similar (but different) messages, saying that out of memory errors when flashing

may be due to a SLUG using an older Linksys FW. My 2nd SLUG had the .24 version and faced this issue even after a factory reset and going straight to the download page. Linksys has a help page that will walk you through upgrading to the .63 FW. Once I did this, upgrading to the Unslung FW was per the install guide.

My slug is very old – its firmware was also the antediluvian V2.3R24 – so I kind of suspected that was the problem… I decided to upgrade to the latest Linksys firmware, and went to the page linked from the FAQ. Worryingly, that page said that you should use EraseAll, which I was feeling quite nervous of – so before trying to follow its instructions, I decided to see what would happen if I used the regular web-based interface on the NSLU2 to upgrade to the new V2.3R63 firmware (which is linked at the bottom of the page). To my delight, that seemed to work – at least the admin pages said that it was now version 2.3R63 – so I powered the unit down, plugged my drive back in, powered up again, and checked that the disk was still accessible. It was, so I started the Unslung install procedure from the README once more, from the top. This time, it seemed to work – the process completed without errors, the unit rebooted, and when (after a nail-biting few minutes) it came up, I checked the web interface, and it reported that its firmware version was V2.3R63-uNSLUng-6.8-beta.

Trying to avoid becoming cocky, I completed the instructions in the README, and updated the NSLU2-Linux Wiki to reflect my experiences). Once all of this was done, I had “unslung” my NSLU2 to the drive USB drive attached to it – or, in less jargonny terms, I had changed the unit’s settings so that no longer did it boot entirely from the build-in flash memory, afterwards mounting the USB drive separately for sharing, but instead it used the built-in memory as some kind of low-level bootstrap system to mount the USB disk as the root filesystem, and then booted from that. That probably sounds more complicated than it is – all I really needed to do was robotically follow the instructions in the README.

So, now that’s all installed, the next step is to install Ruby.

Next: Installing Ruby on an Unslung NSLU2.