Home > broadcom, mac, xbmc > Mac Mini + XBMC + Broadcom Crystal HD = 1080p video!

Mac Mini + XBMC + Broadcom Crystal HD = 1080p video!

January 13th, 2010

There I go again tweeting, when I should have been blogging.

For a long time I was using a Mac Mini (an early model Core Duo 1.66Ghz) as my living room media center but alas it just didn’t have enough beef to playback HD content. Mac Mini’s have integrated graphics (mine has a Intel GMA 950) which basically means that when you playback video on them the poor little CPU ended up trying to shift about huge data streams that only dedicated GPUs can really handle.

So I ended up buying a Popcorn Hour A110 which is designed for just that. The Popcorn box is a great little device – the remote is great, the playback capabilities are great but the media management and 12-foot UI are a weaker than FrontRow. Still, my Mac Mini was stored away.

Until now. When XBMC.org recently announced support cross-platform hardware decoding of mpeg2, h.264 and VC1 video content up to 1080p, well it piqued my interest. It turned out that these builds of XBMC can use a Broadcom Crystal HD PCI Express card to offload all the heavy lifting from the CPU.

Now it just so happens that the Mac Mini has a PCI Express slot but it is occupied by an Airport card. Thing is, the wifi signal in my Mac Mini has always been next to useless and besides, my living room has an ethernet router in it so I could ditch the Airport card.

Getting the Crystal HD
I bought mine from an Ebay store for about €20 – just make sure you get a BCM970012 card. Some speciality websites sell them for €80-100 but meh, I was willing to take a punt on €20.

Installing the Crystal HD
This is a little tricky since the Mini wasn’t designed to be user serviceable but if you are patient (and gentle with a putty knife) it is do-able. Just follow this dis-assembly guide and you’ll have it done in less than an hour. The only confusing parts I found were

  1. the four screws he refers to are the ones holding the base of the black plastic frame onto the motherboard frame. They are not the ones screwed into the DVD drive! In my defense, 3 of them are hidden in long sleeves which made them hard to spot!
  2. the wifi antenna is un-clipped by squeezing in the two black tabs that enter it from underneath.

Once you get the black frame off it’s a no brainer, just be careful not to pinch any wires when fitting it all back together later.

Installing the OS X Crystal HD Kernel Extension
There is a OS X Crystal HD “kernel extension” project – download their binary release (I took 1.0.1). NOTE that at the moment, they only advertise compatability with OS X 10.4 and 10.5 and as my Mini was running 10.5.6 I still have no idea if the kext works on 10.6.

Unpack the binary distribution and open a terminal window in that folder. Once in the unpacked folder enter:

sudo mv BroadcomCrystalHD.kext /System/Library/Extensions
sudo chown -R root:wheel /System/Library/Extensions/BroadcomCrystalHD.kext
sudo chmod -R 755 /System/Library/Extensions/BroadcomCrystalHD.kext

Kernel extensions won’t run unless they have the above owner/permissions. Ignore any error that OS X pops up at this stage.

Then run
mv libcrystalhd.dylib /usr/lib/
mv bcmFilePlayFw.bin /usr/lib/
sudo chown root:wheel /usr/lib/libcrystalhd.dylib /usr/lib/bcmFilePlayFw.bin
sudo chmod 755 /usr/lib/libcrystalhd.dylib /usr/lib/bcmFilePlayFw.bin

These libraries are required by the kernel extension (and again need to be permissioned/owned properly.

Now your Broadcom driver is installed. Load it up as follows

sudo kextload /System/Library/Extensions/BroadcomCrystalHD.kext

You should get a message saying the kernel extension was successfully loaded. You’ll only have to do this once as after reboots it’ll automatically be loaded.

Installing XBMC
The easy bit, just take the latest nightly build (I took r26715). Don’t take the Camelot build as it doesn’t have the Crystal HD support.

And that’s it. When you fire up XBMC, go to Video -> Playback and in the Renderers list, you should be able to select “Broadcom Crystal HD”. And more importantly, you should be able to enjoy full 1080p video playback without even getting close to maxing out the CPU. My little box could play back a full 1920×900/H.264 encoded stream at a full 24fps without using more than 50% of the two CPU cores.

Cheapest upgrade ever!

aehso broadcom, mac, xbmc

  1. January 14th, 2010 at 01:11 | #1

    Sounds great Aehso. Bookmarked.

  2. Palle
    January 22nd, 2010 at 20:44 | #2

    Sounds great. But what about Bluetooth for keyboard and mouse. Isn’t BT located on the same card as Wifi?

    I have some BT usb-dongles but not sure os-x supports them…

  3. January 23rd, 2010 at 01:23 | #3

    Sorry, I should clarify, I remote desktop to the mini from my macbook whenever I need to do anything that I can’t do from the apple remote. I don’t have a keyboard or mouse connected to it at all…

  4. Palle
    January 23rd, 2010 at 19:50 | #4

    Ok. Thanks for the clarification.

  5. Fabrice K
    January 29th, 2010 at 13:31 | #5

    @Palle
    No. The bluetooth card is not on the Airport card. You only loose Wi-Fi.

  6. David
    January 29th, 2010 at 22:03 | #6

    Thanks Aehso for the superb tutorial!
    The Broadcom chip is now working perfect in my Mac mini 1.83 (17% processorload instead of 85%!!!). The drivers are working also great in Snow Leopard!

    B.t.w. is there a way to autorun the line “sudo kextload /System/Library/Extensions/BroadcomCrystalHD.kext” everytime OSX boots?

  7. January 30th, 2010 at 10:05 | #7

    David,
    Great to hear you got it working. The kernel extension should automatically reload after reboot.
    If this isn’t working for you then double check the files you copied into /System/Library/Extensions and /usr/lib – they have to be owned by “root:wheel” and they have to be readable/executable.

  8. Nelson
    March 3rd, 2010 at 14:23 | #8

    I wish I had realized this ahead of time but the newer Mac Mini’s do not have a PCI Express slot. The Airport/Bluetooth combo card is connected to the board via a tiny ribbon cable. I know this because I just took mine apart and am staring right at it. I was really looking forward to this fixing my stuttering problems on some 1080p HD movies. Good tutorial nonetheless.

  9. Palle
    March 12th, 2010 at 13:48 | #9

    @Fabrice K
    Thanks, it is already connected by cable. So wireless is not needed. Guess I don’t have anymore excuses for not going ahead and order one :-) .

  10. Daniel
    March 15th, 2010 at 20:47 | #10

    I’ve just installed a BCM970012 in my Mac Mini running OS X 10.6.2 with kernel extension version 1.0.3. Works like a charm.

  1. No trackbacks yet.