You are hereOther / Configuring your Apple TV and XBMC to use the Crystal HD hardware decoder

Configuring your Apple TV and XBMC to use the Crystal HD hardware decoder


By maho - Posted on 13 June 2010

Once your Broadcom Crystal HD hardware decoder is installed in your Apple TV there are a few minor changes required before you can enjoy HD quality movies with your ATV. All the information found here can easily be found using google but I could not find one single page that described the entire procedure so here it is.

Before you can proceed with the installation of the software required for the Broadcom Crystal HD hardware decoder you need to install "Launcher" and enable SSH on your Apple TV, instructions can be found at code.google.com/p/atvusb-creator/, I'm not 100% sure if I installed XBMC before I did everything below so to be sure, go ahead and install XBMC from the Launcher menu that is added to the ATV menu after successfully installing Launcher.

Software used in this example(stolen from it's rightful owners) - These are probably old by now so it might be a good idea to pay the creators a visit to get the latest versions.
www.mattiasholm.com/system/files/turbo_atv_enabler.bin - Downloaded from 0xfeedbeef.com/appletv/
www.mattiasholm.com/system/files/crystalhd-for-osx-1.0.3.zip - Downloaded from code.google.com/p/crystalhd-for-osx/
www.mattiasholm.com/system/files/xbmc-r31068-trunk-x86.dmg - Downloaded from mirrors.xbmc.org/nightlies/osx/

Assuming that you have SSH enabled your atv, login to it and download the files mentioned above. Once downloaded (for the non *nix initiated, use wget http://somehost.domain/file.ext to download files) run the following commands to enable your Broadcom Crystal HD hardware decoder.

sudo -s

Copy kext and libs to where they are expected to be and set correct permissions
cp -r BroadcomCrystalHD.kext /System/Library/Extensions/ 
chmod -R 755 /System/Library/Extensions/BroadcomCrystalHD.kext 
chown -R root:wheel /System/Library/Extensions/BroadcomCrystalHD.kext 

cp libcrystalhd.dylib /usr/lib/
chmod 755 /usr/lib/libcrystalhd.dylib 
cp bcmFilePlayFw.bin /usr/lib/

Copy the turbo_atv_enabler to sbin and set permissions
cp turbo_atv_enabler.bin /sbin/
chmod 755 /sbin/turbo_atv_enabler.bin

Add the turbo enabler to /etc/rc.local
echo /sbin/turbo_atv_enabler.bin >> /etc/rc.local
echo /sbin/kextload -v /System/Library/Extensions/BroadcomCrystalHD.kext >> /etc/rc.local

if rc.local did not exist, set permissions and ownership, it will not hurt to run this even if the file was already there.
chmod 755 /etc/rc.local 
chown root:wheel /etc/rc.local

Now lets try loading our kext
/sbin/kextload -v /System/Library/Extensions/BroadcomCrystalHD.kext

Run "dmesg" and you should get something like

BroadcomCrystalHD::start
allocated 18 elem
Starting BCM70012 Device
clock is moving to 175 with n 35 with vco_mg 2
CStopping BCM70012 Device
BroadcomCrystalHD: Found HW and started driver SW.

If you did not get output similar to that something might be wrong.

Last but not least, we need to install a version of XBMC that supports the Crystal HD

Mount the XBMC dmg
hdid xbmc-r31068-trunk-x86.dmg

Remove the currently installed XBMC
rm -rf /Users/frontrow/Applications/XBMC.app

Copy the mounted XBMC image content to /Users/frontrow/Applications/XBMC.app
cd /Volumes/XBMC
mkdir /Users/frontrow/Applications/XBMC.app
tar cf - * | ( cd /Users/frontrow/Applications/XBMC.app; tar xfp -)

Now start XBMC on your ATV, navigate to "System", "Playback" and make sure that "Allow hardware acceleration (CrystalHD)" is available and enabled.

Post new comment

The content of this field is kept private and will not be shown publicly.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.