Installing SlimServer on an AppleTV
One of the services I needed to move off my server before shutting it down was SlimServer which runs my Squeezeboxes. I had looked at a few small PCs that were ultra quiet and as I was looking at the Shuttle website, it compared one of their boxes to a Mac Mini. Hmmm, I have an extra one of those lying around that I could use and then remembered I have an AppleTV that I'm not using. So, I decided to see if I could install SlimServer on the AppleTV as it is fanless and super quiet. Here's what I did:
- Download Patchstick
- Follow the procedure and install Patchstick from a USB thumb drive
- Download the Mac OS X version of SlimServer
- Download the XMRadio plugin
- Edit XROAPI.pm in the plugin by commenting out
if ( defined( $self->{activeClient} ) ) { return [ $client->string('PLUGIN_XMRADIO_ERROR_HEADER'), $client->string('PLUGIN_XMRADIO_IN_USE') . ' ' . $client->name() ]; }
So that I can have more than 1 Squeezebox talking to XM at the same time.
- From the AppleTV, enable AFP in the awakwardTV menu
- Mount the SlimServer dmg file that was downloaded above
- From the image, copy Install Files/SlimServer.prefPane/Resources/server to your desktop
- Place the modified XMRadio plugin in ~/Destkop/server/Plugins
- Mount the AppleTV volume via AFP
- Modify ~/Desktop/server/Slim Launcher.app/Contents/Resources/Start Slim Server.sh to add
HOME=/Users/frontrow; export HOME
before the ./slimserver.pl line
- Copy ~/Desktop/server to the AppleTV's AFP volume
- Create a folder on the Desktop called SlimServer
- In that folder create 2 files. The first is called StartupParameters.plist and it contains:
{ Description = "SlimServer"; Provides = ("SlimServer"); Requires = ("Disks"); Uses = ("mDNSResponder", "Resolver", "DirectoryServices", "NFS", "Network Time"); OrderPreference = "Last"; Messages = { start = "Starting SlimServer"; stop = "Stopping SlimServer"; };}
The second is called SlimServer and it contains:
#!/bin/sh. /etc/rc.commonSERVER_RUNNING=`ps -axww | grep "slimp3.pl|slimp3d|slimserver.pl|slimserver" | grep -v grep | cat`StartService() {ConsoleMessage "Starting SlimServer"if [ z"$SERVER_RUNNING" = z ] ; then pushd "/Users/frontrow/server" sudo -u frontrow "Slim Launcher.app/Contents/Resources/Start Slim Server.sh" popdfiif [ z"$#" != z"0" ] ; then ConsoleMessage -Sfi}StopService() {if [ z"$SERVER_RUNNING" != z ] ; then kill `echo $SERVER_RUNNING | sed -n 's/^[ ]*([0-9]*)[ ]*.*$/1/p'`fi}RunService "$1"
- Copy the SlimServer folder to the AppleTV's AFP volume
- Login via ssh using
ssh -1 frontrow@appletv.local
password is frontrow
- Change the root file system to read/write using
sudo mount -uw /
- Move the SlimServer folder using
sudo mv /Users/frontrow/SlimServer /Library/StartupItems/
- Make the SlimServer file executable
sudo chmod +x /Library/StartupItems/SlimServer/SlimServer
- Change the owner
sudo chown -R root:wheel /Library/StartupItems/SlimServer
- Disable auto updating
sudo bash -c 'echo "127.0.0.1 mesu.apple.com" >> /etc/hosts'
- Restart the AppleTV
sudo reboot
- From Safari goto: http://appletv.local:9000/
- Change the music directory in the SlimServer prefs to /mnt/Media/Media Files
The only problem so far is that it creates multiple Albums for each album due to how the AppleTV stores the music.