by havoc

About 5 years behind the curve, I decided that it would be nice to rip
all our CDs, box them up, put them in the basement, and play the full
music collection on shuffle.

To start, I got an external hard drive and the nifty Linksys
. The NSLU2 is a $79 Linux server with two USB ports. You
give it a blank USB hard drive, and it formats it with ext3; one small
partition has some admin files for the OS, and the other partition
holds your data. The NSLU2 runs Samba and acts as a file server.

So my plan was as follows: let NSLU2 format the drive, then attach the
drive directly to my laptop and rip CDs onto it. Move the drive back
to the NSLU2 and voila, a file server with all my music. This part
worked great. Even better: since I was using Sound Juicer and
HAL/gnome-volume-manager in Fedora Core 3, I believe it could have
been done without a command line. (Though I cheated and got rsync
involved.) Now we can access all our music from any of the 3 PCs.

The reason I got the NSLU2 was that our PCs are off most of the time,
since they’re loud and obnoxious. I figured I’d just put the NSLU2 and
hard drive next to my wireless router and stuff the whole mess in the
closet. That way no particular PC would have to stay on all the time,
and ideally they could all be turned off while we listened to music
on the stereo.

And that’s where the problem arises: how to get from a file share full
of music to our stereo system?

Plan A was to use the Tivo. It turns out that this has two
showstoppers. First, it requires a server running on a PC; Not
compatible with my “keep the PCs turned off” goal or my “Windows is
only for games” goal. Second, even if we could live with that, the
Tivo server software simply refuses to load any files found on a
network file share. Lame!

Switching to Plan B, I found a bunch
of products to connect 802.11 to your stereo
but virtually all of
them require a daemon that runs on a Windows PC. The only “digital
media player” I can find that will read files straight from a file
server is the Roku
, but it’s huge overkill, and costs too much (especially
since wireless requires an external adapter). From reading reviews, I
also get the impression that nearly all of these “digital media
players” are total crap, and that the required PC software is even
worse. The nicest- and simplest-looking of the
wireless-to-stereo-system converters is of course the AirPort Express, but
it too requires a PC-hosted iTunes server.

So after searching for the last few hours, I’m giving up on finding a
prebuilt appliance that will work. My Plan C thought was to buy a
small fanless Linux machine, an embedded board or something, and
install Rhythmbox on it. But that sounds like a serious pain in the
ass, and I avoided something like MythTV in the first place because I
didn’t want to fool around with custom hardware and software setups.

I had one last thought just now: “wait, the NSLU2 is a small
fanless Linux machine.” And then Google turned up running
an iTunes server on the NSLU2
. Which would mean I could use the
AirPort Express. So tomorrow’s plan is to read that article and see if
it looks possible. Still a pain in the ass, but at least no hardware
hacking is involved.

If it works, my total solution will be 1 external hard drive ($179), 1
NSLU2 ($79), 1 AirPort Express ($129) coming in under $400, which is
not that bad. I am making it worse by adding a second external hard
drive for backing up both music and data from the PCs, but that’s

If Tivo didn’t suck, then I could just go into the Tivo UI on my TV,
enter the file share name, and have the music available; since the
Tivo already uses a wireless adapter. If that had worked I could have
solved the whole problem for $260 and without using the command line

It’s interesting that probably the majority of gadgets I’ve used and
researched in the course of sorting this out are Linux-based.
Including the Tivo, the NSLU2, and many of the digital media players.

(This post was originally found at

My Twitter account is @havocp.
Interested in becoming a better software developer? Sign up for my email list and I'll let you know when I write something new.