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.

  11. David Hoevers
    March 24th, 2010 at 14:09 | #11

    @Nelson
    What model do you have? One with a Geforce 9400m? 2GHz/2.26GHz?

  12. April 22nd, 2010 at 07:26 | #12

    Just dropped a BC HD into a dual 1.83 mini running 10.6.3 with 1.0.3 and it drastically dropped the cpu usage (90% to 45%) with a much improved frame rate. I did notice that every once in a while, at video startup I get dropped frames, which others are seeing with 10.6.3.

    Thank you for these instructions, they really helped keep the installation simple.

  13. JeanLuc7
    July 21st, 2010 at 09:35 | #13

    Installed this device in my Mac mini early 2006 (cpu upgrade to 2.16 GHz). Well the device seems to work as my cpu usage drops down from 125% to 10-30%. But the frame rate also drops from about 20 to only 4. There must be something wrong. I tried the 1.01 and the 1.03 driver version with the latest XBMC nightly build (r31938). What’s my fault?

  14. Gocho
    November 21st, 2010 at 01:16 | #14

    I installed the card, and using dharma rc1 I can’t select crystalHD as the render method, but there is a Allow HArdware acceleration (Crystal HD) checkbox… Is it the same result?

  15. xavier
    January 17th, 2011 at 18:07 | #15

    hello everyone
    But thank you for this tutorial I followed to the letter and I can not properly install my card.
    Here are the steps I followed:
    I downloaded the archive crystalhd-for-osx-1.0.3.zip
    I unzipped on the desktop in a folder named Crystal
    I launched the terminal and drag the folder and I run Crystal guests command. here is what I entered in the terminal …
    Thank you in advance to anyone who can help me

    Last login: Mon Jan 17 17:48:55 on ttys000
    Mac-mini-de-revaax:~ revaax$ /Users/revaax/Desktop/crystal sudo mv BroadcomCrystalHD.kext /System/Library/Extensions
    -bash: /Users/revaax/Desktop/crystal: is a directory
    Mac-mini-de-revaax:~ revaax$ sudo mv BroadcomCrystalHD.kext /System/Library/Extensions
    mv: BroadcomCrystalHD.kext: No such file or directory
    Mac-mini-de-revaax:~ revaax$ sudo chown -R root:wheel /System/Library/Extensions/BroadcomCrystalHD.kext
    Mac-mini-de-revaax:~ revaax$ sudo chmod -R 755 /System/Library/Extensions/BroadcomCrystalHD.kext
    Mac-mini-de-revaax:~ revaax$ mv libcrystalhd.dylib /usr/lib/
    mv: libcrystalhd.dylib: No such file or directory
    Mac-mini-de-revaax:~ revaax$ mv bcmFilePlayFw.bin /usr/lib/
    mv: bcmFilePlayFw.bin: No such file or directory
    Mac-mini-de-revaax:~ revaax$ sudo chown root:wheel /usr/lib/libcrystalhd.dylib /usr/lib/bcmFilePlayFw.bin
    Mac-mini-de-revaax:~ revaax$ sudo chmod 755 /usr/lib/libcrystalhd.dylib /usr/lib/bcmFilePlayFw.bin
    Mac-mini-de-revaax:~ revaax$ sudo kextload /System/Library/Extensions/BroadcomCrystalHD.kext
    Mac-mini-de-revaax:~ revaax$

  16. Bill Best
    February 22nd, 2011 at 03:32 | #16

    Does anyone have any updates on Flash browser support for CrystalHD with OSX? It is working great in Windows 7..so awesome to play 1080p video on my 4 year old laptop. Best upgrade yet! :)

  17. Phil
    August 10th, 2011 at 16:39 | #17

    Thanks for the great article!
    I am also using a 1.6GHz /512RAM Mini as MediaCenter and had stuttering on some 1080p videos (not all). When searching for a solution I came across your article, bought the CrystalHD for 30$ and it solved it. Perfect playback of 1080p with only 23% CPU load. Much cheaper than upgrading to 2GHz which costs over 100$

    If you can live without Wifi its the best thing you can do. Actually you can simply use a small USB wifi dongle instead.

    Only drawback for some might be that only XBMC currently supports the CrystalHD on Mac. Fine for me.

  18. Bill Best
    August 10th, 2011 at 19:49 | #18

    Which directions did you follow? I’ve tried and tried but I can’t get mine working in OSX but it works fine on my Windows 7 bootcamp partition.

    Phil :
    Thanks for the great article!
    I am also using a 1.6GHz /512RAM Mini as MediaCenter and had stuttering on some 1080p videos (not all). When searching for a solution I came across your article, bought the CrystalHD for 30$ and it solved it. Perfect playback of 1080p with only 23% CPU load. Much cheaper than upgrading to 2GHz which costs over 100$
    If you can live without Wifi its the best thing you can do. Actually you can simply use a small USB wifi dongle instead.
    Only drawback for some might be that only XBMC currently supports the CrystalHD on Mac. Fine for me.

    @Phil

  1. March 23rd, 2010 at 13:54 | #1