I decided to take the plunge today and install the Apple TV Take 2 update on my Apple TV and attempt to get the SqueezeBox software (now called SqueezeCenter) running on it. I previously had this running on Apple TV version 1.1, but I want the ability to rent movies, so I had to update my Apple TV and decided to install the new SqueezeCenter at the same time. Unfortunately this has been quite complicated. I almost have things working.
- Following the instructions in this thread, I created a PatchStick to install SSH on my updated Apple TV. Prior to updating the Apple TV, I copied all the necessary SSH files off my Apple TV
- Pick up the latest SqueezeCenter (7.0) and the XM Radio Plugin
- 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.common
SERVER_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 "SqueezeCenter.app/Contents/Resources/start-server.sh"
popd
fi
if [ z"$#" != z"0" ] ; then
ConsoleMessage -S
fi
}
StopService() {
if [ z"$SERVER_RUNNING" != z ] ; then
kill `echo $SERVER_RUNNING | sed -n 's/^[ ]*([0-9]*)[ ]*.*$/1/p'`
fi
}
RunService "$1"
- Tar up the folder:
cd ~/Desktop
tar -cvf slim.tar SlimServer
- On a Tiger machine:
cd /System/Library/Perl
tar -cvf ~/Desktop/perl.tar 5.8.6
- Mount the SqueezeCenter dmg file that was downloaded above
- From the image, copy Install Files/SqueezeCenter.prefPane/Contents/server to your desktop
- Place the XMRadio plugin in ~/Destkop/server/Plugins
- Modify ~/Desktop/server/SqueezeCenter.app/Contents/Resources/start-server.sh to add
HOME=/Users/frontrow; export HOME
before the ./slimserver.pl lines
- Replace the mDNSResponderPosix with the one from the SlimServer 6.5.4 as the one for SqueezeCenter apparently is a PPC only app and the Apple TV doesn't have Rosetta. The SqueezeCenter developers are going to fix this.
- Tar up the folder:
cd ~/Desktop
tar -cvf server.tar server
-
sftp -1 frontrow@appletv.local
(Password is frontrow)
put slim.tar
put server.tar
put perl.tar
- Login via ssh using
ssh -1 frontrow@appletv.local
password is frontrow
- Change the root file system to read/write using
sudo mount -uw /
- Uncompress the files
tar -xvf perl.tar
tar -xvf server.tar
tar -xvf perl.tar
- Move the Perl modules into a good spot
sudo mkdir /Library/Perl
sudo mv 5.8.6 /Library/Perl
- 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
- Use iTunes to change the ID3 tags to version 2.2.0 and use that option to Reverse the Unicode strings to repair some issues with my database
I'm still trying to get the XM Radio plugin to allow 2 simultaneous connections, but other than that, I'm done. This has been a torturous process, but I figure by the next time I have to do this, I'll be able to do it in minutes :-)
Comments
February 18th, 2008
Tyler
http://gizmodo.com/357626/web-browse-on-apple-tv-with-safari-hd-out-now
Now thats cool.
February 29th, 2008
Paul de Reus
Managed to get my SC 7 working on the Apple TV 2.0 as well. Note that it is very important to leave /System/Library/Perl/…./libperl.dylib intact. If you make the mistake of overwriting it with a Tiger version, all Perl does is complain about an ‘Illegal instruction’ and throws a Seg fault (via Crashreporter).
I did not manage to get the scanner working correctly: it works OK for a small set (say 100 songs) but not for my full library (NFS mounted volume). Looks like the autocommit of MySQL does not work. Any ideas?
March 30th, 2008
arkid
Hi
Can you give us some feedback about how responsive the ATV is running SC7? I am possibly considering buying an ATV just for this purpose but really want to know about how well its cpu/ram actually handles a large music library when served to single (or multiple) slimboxes.
Thanks for any info!
March 30th, 2008
Scott Gruby
There isn’t a top or uptime command built into the ATV, so I can’t see the load. However, my wife and I watched a movie last week (regular definition to a 4:3 aspect ratio TV) on the ATV while SC7 was serving up XM radio to 2 Squeezeboxes. I haven’t tried playing music stored on the ATV out to the 2 boxes and watching a movie, yet. (The streaming uses a lot less CPU as far as I can tell.)
July 22nd, 2008
pif
According to ubench, an 1.3GHz iBook G4 has around 80% of the performance of an AppleTV (ubench tests CPU and RAM only, not I/Os). I bet throughput won’t be a problem at all with SC7; The RAM might impose a limit, I don’t know.
FYI, on my ATV I have simply copied the uptime and top binaries from 10.4.11/intel. Top fails with “illegal instruction” but uptime works fine.
August 23rd, 2008
Ravi
Will this work on the latest sc and the latest appletv updates as of August 2008?
Thanks for your hard work! I would love to use my appletv as the sc server so I don’t have to leave my macbook pro on all the time (using insomniax)
August 24th, 2008
Scott Gruby
It should work fine. I haven’t upgraded to SqueezeCenter 7.1, yet (I’m running 7.0.1), but I do have the latest AppleTV update.
August 18th, 2009
JuanLu
Hi Scott,
Thanks for your detailed instructions to run Slimserver on the AppleTv. I love Slimserver and had this soft running from a Debian NSLU first, after that from an iBook, from an ATV OSX-hacked and now I’d like to test having server and player (via SqueezePlay or Softsqueeze) in a ATV but with accesing my huge library from a NAS. do I need to implement the AFS (my MAS runs AFS and Samba)? advice?
After installing the server is not running, if I run manually I get “./Slimserver: line 25: $1: unbound variable”.
Learning unix and command line.. but slowly, :-( sorry
Thanks a lot again!
JL
August 18th, 2009
Scott Gruby
@JuanLu, I haven’t looked at this in awhile, so I’m not sure of the issue. Mine has been running well on SqueezeCenter 7.3.2; I’ve been unable to get a newer version running on it.
August 22nd, 2009
JuanLu
Hi Scott,
Problem solved!, folder misplacement… sorry to ask before double check. It works very well. My setup is not an easy environment: I have a Debian NSLU with all my music being served via samba (!!). The samba shares mounted thanks nitoTv and the Slimserver running these shares. My intention was to try the Squeezeplay running also in the AppleTv to take advantage of the great display for controling the Squeezecenter and the player I have in the same room (I’d like more the way it sounds that the AppleTv…). Is possible to run intel apps in the AppleTv without great modifications? have you tried the Squeezeplay?
Thanks a lot again for this great tip! (Free your music!)
JuanLu
August 22nd, 2009
JuanLu
ooops ….”intel apps” I mean OS X apps, of course
September 25th, 2009
Carlos
Hello,
I need some help. I’ve run into a dead end.
I followed all the instructions. Except I copied the Perl files from the ATV /System/Library/Perl folder as I don’t have access to a Tiger machine. Maybe this is the problem, take a look below.
I’m not able to connect to http://appletv.local:9000/ I suspect it is because SqueezeCenter is not running. If I type this:
cd /library/startupitems/slimserver
slimserver
I get an error that says:
-bash: ./slimserver: cannot execute binary file
Can you help me figure out where I went wrong?
Thanks,
Carlos
September 25th, 2009
Scott Gruby
Hi Carlos,
While I’d love to help, I no longer run SqueezeCenter on an Apple TV. I’m now using a Mac Mini as a media center, so I just double click the SqueezeCenter installer and everything just works; no more wasting time trying to figure out how to get this to work!
September 28th, 2009
Carlos
I found out that I was not creating the files the proper way. I was using “Word” and now I’ve used script editor. Now that I created them with script editor, I’ve managed to get the file SlimServer to run (manually) but I get a “./Slimserver: line 25: $1: unbound variable” error.
Can anybody help? As you probably can tell, I’m new to all this. Is there a way to see line by line what the program is doing to figure out what line 24 is referring to?
Thanks!
Carlos