Running Debian & Closing Thoughts
Once the installation was complete, the box rebooted and I was able to log in using ssh. At this point, I had a standard Linux system with the normal disk layout and utilities you'd expect. And if a tool wasn't available, installing it was as easy as issuing an "apt-get" command to access the 15,000 package library. For example, when I wanted to install the ImageMagick package, loading it was as simple as:
# apt-get install imagemagick
Then a couple of minutes later, after getting all the dependencies installed, the ImageMagick utilities were available. Of course, you'll have to remember that you're running on a box that is only 133 MHz with 32 MB of RAM so you won't be doing any heavy-duty image manipulation or database queries. But speaking of the 133 MHz speed, it's been discovered that at least with the older models, Linksys intentionally under clocked the NSLU2. If you're brave, a procedure has been documented to double the speed, putting it back to where it was designed by Intel. I've yet to try it, but it's only a matter of time before I do.
really ambitious, some people have even added additional
memory to the little box. But even as it is, people have found lots and lots of
uses for the NSLU2. Check out this
page to see what others are doing. And when you get yours up and running, add
your story to the list!
So how did it finally feel to have a full Linux install on the little box? Pretty good. It was bit slow, but I have to keep remembering that I'm not on a PC. I'm running on a box that fits in the palm of my hand, has no moving parts and draws about as much current as a night-light. And as I found out, you have to remember a couple more things. The Debian install really is "bleeding-edge" and this is an embedded device. If something goes wrong during the boot, you don't have a nice console and keyboard to fix it.
Case in point is that I had been successfully running my new Debian Slug for a couple of days, booting and rebooting a number of times. At some point, I noticed that I couldn't reach the slug on the network. I don't remember exactly what I had done last, but to bring it back, I just unplugged and re-plugged the power. As it booted back up, everything looked normal. The LEDs flashed, the disk clicked and all seemed right with the world. But when the boot finished, the NSLU2 was again nowhere to be found on my network.
I have a serial console on my original NSLU2, but not on this new one. And without boot-time visibility, you're really in the dark. After a bit of head-scratching and more reboots, I'd about given up and was goint to re-install when I thought maybe I'd try a different approach. I unplugged the drive from the NSLU2 and plugged it into a virtualized Linux instance running on my MacBook, thinking that maybe I would be able to examine the boot logs for info. I could see the logs, but nothing looked amiss. Sigh.
The only way I could see what was happening was to add debug statements to the boot, building my own boot log. This was a tedious process of adding statements, unplugging the drive from my MacBook, plugging it back into my NSLU2, rebooting the NSLU2, putting the disk back on my MacBook, examining the logs, etc. What I finally found is that everything was normal except that the "interfaces" file, which tells the Debian boot which network interfaces to bring up, was missing the one line that told it to automatically configure the internal Ethernet device. Once I added this line, I rebooted and was back to normal.
I have no idea what caused this problem. Maybe there was really somewhere else where this configuration was supposed to happen. Maybe somehow this file got deleted and automatically re-created without this line. Maybe it was something else I had done, or maybe I'd tripped over a Debian bug. But regardless, this kind of problem reinforces the point that this is an embedded box and that it's all too easy to shoot yourself in the foot and get locked out of your own system.
So where does the NSLU2 community go from here? Eventually, the open-source Ethernet driver will find its way into the standard Debian tree and NSLU2 support in the Debian tree will mature. At this point, as the Debian tree advances with the latest applications and Linux kernel, NSLU2 users will be able to easily follow along. And the specialized NSLU2 firmware distros such as OpenSlug and UcSlugc will also mature for those users with specialized needs. Work is also underway on a new bootloader that will give some additional capabilities such as a network boot and booting off new filesystems.
But one question remains: How long will Linksys produce the NSLU2? If the supply dries up, it will be hard for new people to get involved and for the community to continue thriving. The device has already been on the market without change for over two and a half years. This is a long time in the fast-changing consumer-electronics market and I can't help but think that the enthusiasm shown by the community is a factor in keeping it around.
But in case Linksys finally does decide to drop the "slug", the NSLU2 community has also been supporting additional, similar devices, such as the Synology DS101, Iomega NAS100d, D-Link DSMG600, and other Intel ixp4xx-based devices. And maybe one of these days Linksys will finally get around to releasing an updated version of the NSLU2. And when they do, I have no doubt that there will be willing cadre of developers waiting.
Related Items:Debian now available for QNAP NASes
Debian adds selected NAS support
How To Install Debian on the QNAP TS-209 Pro
How To: Hacking the Linksys NSLU2 - Part 5- Moving to Unslung
Hacking the Linksys NSLU2 Part VI - Installing a Media Server