The Broadcom Crystal HD cards (BCM70012 and BCM70015) bring 1080p HD video decoding capability to low powered media centers and netbooks. Software decoding HD video strains the CPU and many cases causes stutters and skips during video playback. In this post, I will explain how to install Broadcom Crystal HD driver on Ubuntu systems. You only need the Broadcom Crystal HD Card if you do not have a dedicated video card or a on-board video card capable of HD decoding. If you are like me, running a media/file server on an Atom 330 processor or using a netbook, you may want to install Broadcom Crystal HD card to add HD capability. This is an updated version of my previous post on how to install XBMC on Ubuntu Server with Broadcom Crystal HD card. Broadcom Crystal HD works on all three major platforms: Windows, Linux, and OSX.
Table of Contents
BCM70012 and BCM70015
Although you may install Broadcom Crystal HD BCM70012 or BCM70015, the latter is newer and supports more formats. But it is also slight more expensive than its predecessor.
Note that the BCM70012 is full-height and BCM70015 is half-height MiniPCIe card (may come with an adapter).
Install Broadcom Crystal HD Driver on Linux
Installing Linux drivers is complex compared to installing Windows drivers. The procedure described below (based on this) is for Ubuntu but it may also work on other Linux distributions.
Step 1: Install Required Packages
Before you install Broadcom Crystal HD driver, you will have to install the packages necessary for compiling source codes and others:
sudo apt-get update sudo apt-get install autoconf g++ subversion linux-source linux-headers-`uname -r` build-essential tofrodos git-core subversion dos2unix make gcc automake cmake checkinstall git-core dpkg-dev fakeroot pbuilder dh-make debhelper devscripts patchutils quilt git-buildpackage pristine-tar git yasm zlib1g-dev zlib-bin libzip-dev libx11-dev libx11-dev libxv-dev vstream-client-dev libgtk2.0-dev libpulse-dev libxxf86dga-dev x11proto-xf86dga-dev libgstreamermm-0.10-dev libgstreamer0.10-dev
Note that you may have many of the above packages already installed if this is not the first time you are compiling packages from source code.
Step 2: Download Crystal HD Driver
Clone the Crystal HD Drivers using the following command:
git clone git://git.linuxtv.org/jarod/crystalhd.git
This should download the required files to a folder called crystalhd
within the active folder.
Step 3: Fix Code for Ubuntu 11.10 and Later
For Ubuntu 11.10 and later, the following edit needs to be made. Navigate to crystalhd/driver/linux
and edit crystalhd_flea_ddr.c
:
cd crystalhd/driver/linux nano crystalhd_flea_ddr.c
Add the #include
<linux
/delay.h
> as shown below (the first two lines will already be present):
#include "crystalhd_hw.h" #include "crystalhd_flea_ddr.h" #include <linux/delay.h>
Save and exit.
Compile and Install Broadcom Crystal HD Driver
Navigate to crystalhd/driver/linux
folder:
cd crystalhd/driver/linux
Then, execute the following commands in order:
autoconf ./configure make sudo make install
If you have a multicore processor then you can increase the speed of compilation by using make -j4
(where 4
is the number of cores) instead of make
. You may get CONFIG_DEBUG_SECTION_MISMATCH=y
warnings during the build process. These are "generally" harmless so ignore them.
Then install Broadcom Crystal HD libraries. Navigate to crystalhd/linux_lib/libcrystalhd
and execute the following commands:
make sudo make install
Again, you may replace make
with make -j4
(replace 4
with the number of cores in your system).
After installation, load the driver using the following command:
sudo modprobe crystalhd
Finally, check if the installation was successful using the following command:
lsmod
You should see something like this in the output:
..... ..... crystalhd 73644 0 ..... .....
Do not worry if no application is using it currently (you may see "used by 0").
Although you may not have to reboot I prefer rebooting. So reboot your server. Then check if CrystalHD is listed in the output of the following command.
Ubuntu Kernel Updates
In my case, I have disabled all automatic updates including kernel. But if you update your Ubuntu kernel then you will have to do the following:
cd crystalhd/driver/linux sudo make install
Broadcom Crystal HD brings the advantages of high definition H.264 and VC-1 video compression to netbooks providing near flawless playback of streaming media and Blu-ray Disc®, file-based content and broadcast (and other TV sources). Go ahead, install Broadcom Crystal HD Card and enjoy HD videos on your netbook, Intel Atom powered HTPCs or Apple TV.