(19 Oct 2007) I needed an Icecast server to fool around with LiquidSoap (I'd been annoying the Hak5Radio listeners for weeks) and I knew that OpenWRT has a package available so I decided to repurpose one of the NSLU2's. Following are my notes from the install:
1) Install OpenWRT on the NSLU2 as I did here. (Don't forget to run "ipkg update")
2) Install Icecast by running "ipkg install icecast" on the command line. The output should look something like:
root@OpenWrt:~# ipkg install icecast
Installing icecast (2.3.0-1) to root...
Installing libcurl (7.14.0-1) to root...
Installing libopenssl (0.9.8e-1) to root...
Installing zlib (1.2.3-3) to root...
Installing libvorbisidec (1.2.0-dave-1) to root...
Installing libxml2 (2.6.20-1) to root...
Installing libpthread (0.9.28-9) to root...
Installing libxslt (1.1.14-1) to root...
3) Create the log directory via "mkdir -p /var/log/icecast"
4) Create the logs via "touch /var/log/icecast/access.log" and "touch /var/log/icecast/error.log"
5) Set ownership on those files via "chown nobody:nogroup /var/log/icecast/*.log"
6) Time to mess with the config file (/etc/icecast.xml). This site explains the config entries in detail.
7) Note: the default setting in icecast generates large amounts of log entries. You will want to change "loglevel" in /etc/icecast.xml from a 4 to a 1.
8) Here's a copy of my icecast.xml file (I've removed all of the comment clutter). This will basically relay anything pushed at from SAM Broadcaster, IDJC, LiquidSoap, or the like.
<alias source="/" dest="/status.xsl"/>
One issue to note at this point, unless you cross-compile code for something like OpenSLUG, to run Icecast on the NSLU2, you're going to run OpenWRT on the NSLU2. OpenWRT is primarily written for devices that you leave on all the time (i.e., routers). There's not a whole lot of polish to it and there's a few idiocyncracies, the most annoying of which is YOU CAN'T TURN THE DANG THING OFF! Neither via software nor the button on the front. (For me, it's enough of an annoyance to learn cross-compiling.)
Just for giggles, here a screenshot of the NSLU2's CPU usage with Icecast running. Note: The difference between Icecast and no Icecast is not noticeable.