Turning an Apple TV into a MythTV Frontend
About a week ago I saw this post on mythtvnews.com and was immediately inspired to try hacking together a mythtv frontend for our bedroom TV (connecting to the backend/frontend mega box we have on the living room TV). I have been using MythTV on the TV in the living room for over a year and I love it, it is the perfect one stop media box for us.
The specs on the frontend/backend in the living room are:
2 Gigs RAM
2 TB Storage
6 Tuners (4 Standard Def, 2 HD on HDHomeRun)
Point is it is a beast of a machine, but we use it all of the time for recording/watching tons of TV, it holds our entire DVD collection, it holds my entire (non-DRMed) music collection, it holds a gallery of all our pictures, we use it for weather, internet radio, and as our print and file backup server. Which is all great in the living room, but we have two other TV’s in the house that are used frequently and we really wanted to bring all of that media to them as well. I had been looking at running mvpmc on a MediaMVP box as a good low cost solution for these TV’s, however it does not have a full MythTV frontend and has no prayer of being able to play HD. As a fill in solution we have been using MythTV Player which is a windows program that can play recordings off the backend along with accessing the movies and music over samba share. It was a workable solution, but HD did not work over the wireless and it meant watching TV on a laptop which isn’t a great bedroom solution.
When the Apple TV came out (as when any media playing device comes out) the entire MythTV community started asking if it could be hacked to run Linux and what kind of MythTV performance could be expected. Just on face value the Apple TV looks like a perfect MythTV box, it has Ethernet, HDMI, Digital Audio, Component Out, Analog Audio, an IR Sensor, and a USB port.
On the Inside it has:
1.0GHz Intel Pentium M
NVidia GeForce Go 7300
256 MB DDR2-667 RAM
40 GB Hard Drive (min)
It is definitively not a heavy-weight in the power department, but considering it is in a small elegant package and is passively cooled it is not bad. The question was, is it good enough? After reading the mythtvnews post and doing a little research I decided to try it for myself. I ran to Best Buy, laid down my $229 dollars and was ready to start.
What I did
I decided that I would try the Gentoo install following this wiki page. I chose Gentoo for two reasons, I liked that I would be compiling everything for the hardware and I wanted to learn about Gentoo (My other MythTV box is an Ubuntu install). There are other options out there (including Ubuntu) and even some that work in conjunction with the Apple TV software so you don’t have to loose the Apple TV functionality. Seeing as how I really just wanted MythTV and I wanted it to perform as best it could, a Gentoo clean install seemed like a good path.
As far as the Wiki HOWTO, it was pretty good. From looking around online you can see the sources that were pulled from to compile it, and sometimes they have a little more information. For me it worked great up until getting into the thick of the Gentoo Install, specifically after booting onto the live system (no USB patchstick) and attempting to install everything. Most of my issues were because I had never used emerge before and had to stumble a few times before I got everything configured correctly. After getting everything installed I ran into a couple issues getting the sound to work (the wiki explains how to get digital sound working, I needed analog) and getting XvMC and MythTV to play nicely together (looks to be related to the MythTV version I installed). However, after 12+ hours of time spent compiling (it is just a 1 GHz processor) and another 6+ hours of time on my part debugging and learning about Gentoo, the system is up and running.
First off, this little box is impressive. It can play HD, stream movies, and is pretty snappy (not like running on a quad-core but good enough). However, I will say that hacking the Apple TV is still in it’s early stages and while all of the information is out there on how to do it, it is definitely not for the faint of heart or the easily frustrated. Many of the threads that talk about problems end abruptly with no solution and sometimes you have to look at other distributions Wikis and translate it to the one you are using. Of course this is a problem with finding help on any Linux install, but with the scarcity of sources on doing this the frustration can be amplified. I imagine that all of the information will mature in the coming months and the Wiki pages will get more complete. I would be interested to hear if people have an easier time with Ubuntu (I imagine so) and if the performance is as good.
I currently have only one issue left to resolve (getting XvMC to play nice with MythTV) and this looks more to be a legitimate bug somewhere then a problem related to Apple TV. Even with this problem I can watch up to 720p HD with no issues, it is just the higher resolutions that are choppy.
Links to information sources
This is the boot loader project that makes all of this possible. The have some good information in their Wiki and also the config options to using inside MythTV to get HD to work.
The “Audio” section here is where I found the fix for Analog sound. Everything else I found told me I had to patch and recompile the Alsa driver, this is much easier.
This forum post (and the bug reports it links to) is the closest match to the issue I am having with XvMC. Unfortunatly following the directions did not fix the problem.
Setting up NTP in Gentoo (Time Syncing)
Setting up LIRC in Gentoo (I did not try to get the remote that came with the Apple TV working, too few buttons).