Monday, May 25, 2009

NSLU2 and Asterisk

I spent a good chunk of this past Saturday building an Asterisk server on one of my Linksys NSLU2s. For those that don't know what that is, it's a very small computer, just a bit smaller than a paperback book. Its original, commercial purpose was to provide file storage for home networks. Its only interfaces are one Ethernet port and two USB ports.

In any case, this effort sprang from a conversation with Sparks, where he was looking for something to provide VoIP access without drawing quite so much electricity as the behemoth desktop computer that he built (I'm still drooling over it). He's interested in what I can build with the NSLU2 because it only draws 10 W, where his desktop monster draws 300+.

A few of the things that I've learned this weekend:

  • the native build environment DOES NOT include building kernel modules
  • the asterisk16 package in the Optware distro is borked (asterisk14 works nicely)
  • the Slug (the generic name for a NSLU2 + SlugOS) can supposedly only handle 4 concurrent calls
  • the Slug and my desktop system can't come to an agreement on the alaw codec, but they play nicely with the ulaw codec
  • a good bit of spit and polish has gone into SlugOS since I last played with it; it now boots and shuts down quite nicely
  • If, with a 1GB thumb drive, you build the OS, build/mount a 200 MB swap file, and install Asterisk, MySQL, screen, irssi, and a number of core utils, you'll have about 500MB of free space left.
  • building a cross-compile environment is not a simple task (I was trying to build two actually: one for the NSLU2, one for my Media MVP).

Even though I'm not going to have anything to show for my effort after Monday (when Sparks takes custody of the box), I feel that I've accomplished a great deal this weekend. That and two of my friends will _owe_ me (ahem, Sparks, zENGx!) (heh).

As always, the notes for installing Asterisk on the NSLU2 are in the wiki.