the NSLU2 audio streamer

bullet1 Radio Streaming under 5 W

Published: 16 Jan 2009

For a couple of months now, IT46 and SchoolNet Namibia are collaborating to deploy a Wireless Network in Okongo, Namibia. During our visit to Namibia in December 2008, we discussed the possibility of using the future wireless network to deliver voice educational services to the schools.

After one of the warmest years in Swedish history, the cold has finally arrived. No time for outdoor biking means plenty of time to catch up with some hardware hacking projects!.

I explored the possibility of using a low power device as the NSLU2 for media streaming. The NSLU2 is a network-attached storage (NAS) device made by Linksys. The device runs the Intel X-Scale CPU and has two USB ports to host external hardrives. Thanks to an amazing open source community, it is possible to run Debian in the NSLU2.

Reflashing the NSLU2 was amazingly straightforward and the installer worked flawlessly. After four hours and a good connection to a Debian repository a newly image of Debian 5.0 (lenny) was running in NSLU2 hosting a 1 GB USB memory stick. The unofficial image of Debian contains some proprietary IXP4xx microcode needed to get the built-in network port up and running.

After installing the basic Debian distro, I added lighttpd and php5-cgi. After installing and configuring the webserver. I looked into audio streamers. I found a very light-weight web-based browser streamer that could do the job: Musicbrowser. After installing musicbrowser I was able to stream audio to a few webclients. Nice! Great success!

But, could I actually use the NSLU2 to play the audio? Inspiring by the Campcaster project, I thought it was a good idea to use the NSLU2 as an automation hardware for audio streaming. The NSLU2 has an extra USB port.. could I get a USB sound dongle to work? In December I got a few dongles from Giovanni as I have been working with the celliax project. I plugged the dongle into the USB port of the NSLU2 and good news: C-Media USB Headphone Set was recognized and modules available in the kernel. The final trick was to ensure that the /dev/dsp and /dev/mixer were created at start up!. Fixing a bunch of startup scripts and I was set.

The result... an automated audio streamer connected to two USB speakers consuming less than 5 W!

Posted by: Alberto Escudero-Pascual