Build An Open Source HTPC / Media Center on Ubuntu

HTPC is an acronym for Home Theater Personal Computer. A computer system designed with the sole intention of being connected to a television, for entertainment purposes such as watching live TV, playing movies, surfing the Internet, games, listening to music, or viewing digital photographs. A HTPC may also be referred to as a Media Center, which is usually the software portion of the device that combines the functions of a personal computer and media software into a single convergence device.


Building a Linux HTPC / Media Center

You have likely seen a few commercial Media Center products in stores. Not surprisingly most of these are built on Windows Media Center software, or use proprietary software which of course inflate the overall price. In my opinion, Open Source software can be used to build a far superior HTPC/Media Center than any commercial software product out there. So I've written this guide in an effort to help you save some money and point you in the right direction when building your very own HTPC/Media Center.





Hardware recommendations

Creating an Open Source HTPC/Media Center requires some hands-on assembly of standard PC hardware components. If you're not comfortable doing so, I would suggest having a friend help you out, or refer to one of the many tutorials available on-line. Choosing the right hardware can also be an involved process. Some common considerations when building a HTPC/Media Center are performance, form factor (size) of component, cooling, storage capacities, minimal acoustics (noise reduction) and how to control your center from the comfort of the couch. In the last few months, I've had 20+ individuals writing in to ask for recommendations on which hardware is supported and best suited for a Linux HTPC/Media Center. So for the benefit of anyone looking for some excellent hardware recommendations, here is my list.



Linux HTPC
Linux HTPC
Linux HTPC

HTPC Case

When selecting a Home Theater PC chassis it is a good idea to first determine where it is you'd like to physically place the case. Most people slide the HTPC enclosure into a TV stand with of some sort, so be sure to measure and account for some additional airflow space. The case I've selected is a SilverStone GD02B. This unit has ventilation holes on the back, bottom and both sides which allow for great heat dissipation in tight spaces. With a depth of only 14 inches, it will comfortably fit inside most home theater cabinets and still accommodate a regular sized power supply, Micro-ATX motherboard form factor, or even high end graphics cards up to 11.5 inches. Not only is the GD02 a great looking enclosure, but it has enough room to harbor future upgrades.

- Micro-ATX, DTX, Mini-ITX motherboards
- Supports 11.5 inch graphic cards
- Two hard drive bays with anti-vibration mounts
- Single optical drive bay
- Two 80mm fans
- Aluminum front panel with USB2.0, Firewire, Audio + MIC and card reader slot.



Linux HTPC
Linux HTPC
Linux HTPC

Motherboard

The ASUS P5QL-EM Motherboard is an Intel G43 chipset Micro-ATX motherboard supporting the latest Intel Core2 processors using socket LGA775. Don't understand all that? That's perfectly fine, here's all you need to know. ASUS engineers some of the best motherboards on the market today. Stable, energy efficient, high-quality and full of features the P5QL-EM is a great choice for a HTPC system. The ASUS P5QL-EM motherboard features an integrated Intel GMA X4500 graphics processor, which has HDMI (High-Definition Multimedia Interface) with max resolution of 1920 x 1080. Yes, that's on-board HDMI out supporting uncompressed, all digital audio and video via a single cable and is HDCP compliant allowing playback of HD DVD, Blu-ray and other content. This alleviates the need to purchase a graphics card, bringing the over all cost of your HTPC system down and allowing a graphics card upgrade later if you so choose. Compared to similar spec Micro-ATX motherboards, the P5QL-EM price point is an excellent value at under $100.

- Intel G43 chipset
- Support Intel next generation 45nm Multi-core CPU
- FSB 1333/1066/800MHz
- Dual-channel DDR2 1066(O.C.)/800/667
- eSATA & 1394a & 8-channel HD Audio
- ASUS EPU (Energy Processing Unit)
- ASUS Express Gate
- All High-quality Conductive Polymer Capacitors

Audio tip: If your home theater amp doesn't have HDMI interfaces, you can purchase the optional S/PDIF out bracket for this board. This will allow for a TOSLINK (Optical Cable) connection. By default IEC958 is muted, so in order to get sound over S/PDIF you'll need to unmute this channel by running alsamixer.



Processor

Unlike a regular personal computer or gaming rig, HTPC/Media Center systems aren't usually process intensive. If you only want to watch regular DVD video (unlikely), a 1.5GHz processor will be enough. However, if you want to watch digital media, you'll want at least 2.4Ghz of processing power and 3.0Ghz+ if watching high definition 1080p video is of interest. Realistically you could get away with a single core budget processor, but lets not cutting corners sacrifice performance just to save a few dollars, purchase an Intel Core 2. Personally I have no interest in Blu-Ray, H.264 decoding or piracy in general. But if I recall correctly, AGP cards don't do hardware decoding, so if you're going to get into that sort of thing you'll want more processing power such as the Intel Core 2 Quad Q8200 Quad Core Processor. The Intel Q8200 is a impressive entry level quad core processor at a great price point.

Having said that, here comes the part where you'll need to make some decisions for yourself. My suggestions are one of the following.

Intel Core 2 Duo E8400 Dual Core Processor LGA775 3.0GHZ Wolfdale 1333FSB 6MB cache
Intel Core 2 Duo E7400 Dual Core Processor LGA775 2.8GHZ 1066FSB 3MB cache
Intel Core 2 Quad Q8200 Quad Core Processor LGA775 2.33GHZ Yorkfield 1333FSB 4MB cache



Memory

Computer memory is generally inexpensive these days regardless of manufacture. However, you also need to understand the difference between inexpensive and down right cheap. Steer clear from purchasing those no-name brand memory specials. The memory chips that do not make the grade for quality brands get resold to lower budget memory module manufactures that not only use these chips but may also skip testing before shipping the product out to consumers. In my opinion Crucial makes some of the best memory modules you can buy. Their products come with a lifetime warranty, FREE shipping and also have a Memory Advisor tool to help you find guaranteed-compatible products.

Due to chipset limitation, the ASUS P5QL-EM motherboard only supports up to a total of 4 ranks (4 sides in total) of RAM max. This means, in order to fully populate this board with 8GB, you're going to need four 2GB single-sided DIMMs or Two 4GB double sided DIMMs. I'm going to suggest 4GB of RAM which is more than enough and will only cost you $50.

All Crucial memory compatible with the ASUS P5Ql-EM
4GB Memory Kit (Recommended)
8GB Memory Kit



Linux HTPC

CPU Cooler

Due to physical size constraints of most HTPC cases, we're going to need a low-profile CPU cooler. For this I've selected the nearly silent Scythe Shuriken (SCSK-1100 - Revision B) heatsink/cooler. Featuring copper heat-pipes, high density stacked aluminum fins, a copper base and a low profile 12mm thick 100mm Pulse Width Modulation (PWM) fan. The unit stands at 65mm tall, making it the perfect choice. Installing socket 775 coolers can be a real pain sometimes, even more so using the SilverStone GD02 case. The PSU is a tight fit to our cooler. Avoid constriction by installing your hardware in this order. CPU, CPU heatsink/cooler and then your power supply. You'll thank me later.



High efficiency Power supply

The SilverStone GD02 media center chassis I've selected fits any standard ATX power supply, so no need for a recommendation here, but keep the following in mind. The hardware suggested in this article requires a power supply unit of 450 watts, though you may want to select a PSU with a higher wattage to accommodate the addition of future components such as hard drives or a stand-alone video card. Also another beneficial feature would be a PSU that has modular cords so that you can keep the case free from needless obstruction.



Storage

Due to the nature of a HTPC/Media Center, large amounts of hard drive space may be required to store images, music, video, games, and other multimedia. Thankfully disk drives are cheap now-a-days. Whether you have 1080p high definition movies, an image archive containing thousands of photos or hundreds of downloaded television shows, you'll want as much storage as possible for now and imminent needs. I suggest picking up one or two high capacity SATA hard drives from Seagate. Seagate manufactures a dependable product that provides a level of performance and reliability like no other.

The Seagate Barracuda 7200.11 hard drives are available up to 1.5 TB in size, or for those concerned with power and system temperature get the Barracuda LP (Low Power) hard drives which are available up to 2TB in size and offer low power consumption. Both a good choice.



DVD, Blu-ray or CD player

Now-a-days most people are downloading digital content from torrents, iTunes or by other means from the Internet. So a fair majority of individuals won't even require a DVD or Blu-ray player if this is the case. Others that have purchased a physical copy of their media may want to play it directly on the HTPC, so a DVD, Blu-ray or CD player is optional for our HTPC system. Either play direct with an optical drive, rip your content on another PC then transfer over a home network, stream data from a NAS (Network Attached Storage) device or transfer via USB drive. Regardless of where you get your content from, you will need one of these players to at least get the operating system installed. Any optical drive of your choice will suffice, but I recommend purchasing one with an SATA interface.



TV-Tuner

A TV-Tuner is another component that some HTPC/Media centers have. However, a tuner is beyond the scope of this article as the software we'll be focusing on does not include television streaming. This of course doesn't mean you can't install another Open Source software package for this functionality.



Monitor

This article assumes you already have a high-definition television, so I'd like to take this opportunity to comment on overscan issues. First let me say that all televisions are subject to overscan, some more than others, but this has been the case since inception. Basically, the television will display a smaller area of the broadcast than what is received in order to insure there are no visible black borders around the image. Some individuals may not even notice, as overscan can be as little as 2% of picture. However, when displaying your HTPC Desktop environment on a HTDV, a seemingly larger amount of overscan will be noticeable, not to mention irritating. Rather than fiddling for hours on end with your xorg configuration, check your television user manual for a 1:1 pixel mapping mode. Pixel mapping refers to the property that a HDTV is capable of displaying a digital signal transmitted at its native resolution without scaling the image. In the case of my HDTV. It is a Samsung (PN58A550) and offers "Just Scan" which directly maps the incoming image to the sets pixels, eliminating overscan and other possible processing.



Linux HTPC
Linux HTPC
Linux HTPC

Interfacing

Now that we have a hardware outline for our Media Center the only thing missing is a way of controlling it all from the comfort of the couch. Conventional wired keyboard & mouse combination's are limited in range, not to mention difficult to operate in the dark. Using a wireless keyboard & mouse requires a stable surface to operate from and a stand-alone media center remote control doesn't provide keyboard input. Eliminating any need for these would be ideal.

By far the best solution is a product from Logitech named diNovo Mini. The diNovo Mini is a Bluetooth (wireless) connected device that merges the functionality of full QWERTY keyboard, mouse and remote control into one compact, palm-sized unit. The clam shell design has a transparent flip top which protects the keys and automatically enables the device once opened. Featuring two operational modes, you can quickly switch between conventional keyboard & directional mouse pad or remote control. This is perfect for regular desktop actions that require mouse or keyboard like surfing the Internet, interacting with applications, and operations. But once in you're in media center, toggle remote functions for navigating menus, browsing. movie playback and volume control.

An integrated sensor detects environment light and automatically (can be controlled manually) turns the back-lighting on or off. Orange light represents keyboard & mouse mode, green is media mode.

- Full QWERTY keyboard
- Mouse Pad / Directional Pad
- Lithium-Ion Battery life rated at 1-month/per charge
- Backlighting (orange/green)
- Bluetooth 2.0 (30 foot range)
- Linux compatible

Out of the box the Logitech diNovo Mini works with Linux (Or at least Ubuntu 9.04), the only thing that doesn't is of course the Windows button. I'll be sure yo update this if I can get it remapped.





Operating System

The Operating System of choice for this project will be Ubuntu Linux 9.04 Desktop Edition 32-bit. Whether you choose 32-bit or 64-bit is dependent on your hardware and personal preference. Though most newer processors have 64-bit support which offers a 25%-45% performance boost when using a 64-bit kernel and libraries. I find 32-bit versions of most Open Source software applications are better supported, especially when it comes to multimedia and desktop environment. Since our HTPC/Media Center will be running Ubuntu 9.04 Desktop Edition and we need the best possible multimedia support, 32-bit version is recommended.

If you plan on installing more than 4 Gigabytes of memory into your HTPC, you need to recognize the fact that all 32-bit Operating Systems have only enough memory address space for 4GB. This "issue" isn't limited to just Linux, it affects other Operating Systems such as Microsoft Windows too. Good thing is that Linux is free and has a quick solution. You need to install a kernel that supports Physical Address Extension (PAE). PAE is a feature of x86 and x86-64 processors that enables the use of more than 4 Gigabytes (64GB in total) of physical memory in 32-bit systems.

Here's how to utilize more than 4GB of memory with Ubutnu Linux 32-bit.





Open Source Media Center Software

With so many Open Source media center projects to choose from, I've selected two I believe are the best based on performance, ease of use, functionality and features.



Elisa
Elisa

Elisa Media Center

Elisa is an Open Source cross-platform (Linux/Windows/Mac) media center connecting the Internet to an all-in-one media player.

Elisa Homepage
How-to install Elisa
Elisa Download (Strongly recommended you install from PPA)

At first glance Elisa may appear to be very basic, but as they say, looks can be deceiving. With a "less is more" design philosophy, it seems a lot of thought has gone into the Elisa layout. It is streamlined with a simplistic wheel like interface, that is fast and intuitive. Right from the start you'll notice how easy it is to use, something you can sit your child down with and in a matter of seconds they can be watching movies or listening to music. As with any great piece of software, Elisa just works with little effort.

Elisa runs on top of the GStreamer multimedia framework and takes full advantage of hardware acceleration provided with modern graphic cards by using OpenGL APIs. Like most media center applications, Elisa automatically detects changes in your media library on start-up (once configured). Going out onto the Internet to scrape cover art and organizing it all in one place. I found their method to be a little bit more elegant than other media center software I've tried in the past, but also lacking some of the customization features such as fan art and HD backgrounds. Overall, Elisa is a media center application done right. Though the customization and configuration are somewhat limited. Ease of use and a powerful feature set are an unbeatable combination, I recommend Elisa for beginners all the way to advanced user. See here for a full list of Elisa features.

Note: Days before this article was published, the Elisa project announced an upcoming prototype for a new version. Though I haven't had a chance to look at it yet, they promise a new interface design, quicker navigation and support for album and TV show fan art. Not only that, but they decided on renaming the project to Moovida. From the screen-shots alone, it looks like a step in the wrong direction, but I'll give it a test drive and update this article accordingly.



XBMC
XBMC
XBMC

XBMC Media Center

Originally developed for Xbox game console under the name Xbox Media Center, the XBMC team has ported their popular software to various platforms, including Linux, OSX and Windows OS. Though not as friendly as Elisa, XBMC offers a full feature set and customization options advance users seek.

XBMC Homepage
How-to install XBMC
XBMC Download (Strongly recommended you install from PPA)

XBMC Uses its own playback engine which supports a wide range of protocols and audio/video formats. Up-scaling any lower resolutions videos to the maximum of your display capability. The database driven video and music library offers multiple views which help organize and filter all of your media. Thought not on but default, it automatically fetches all artwork, fan art, synopsis & reviews on movies, plot, cast and episode information for TV shows, also album covers and artist information for music. XBMC can download or stream Internet video and audio streams from radio stations such as Podcasts, SHOUTcast and LastFM.

Though the Linux port of XBMC still has a few minor glitches, they have one of the larger communities you can turn to for support. Overall XBMC is the most flexible and robust Open Source Media Center.

The number of features for XBMC is absolutely huge, check them out for yourself.



Aeon Project
Aeon Project
Aeon Project

Aeon Project

I don't particularly care for the default XBMC theme. So, for those of you that appreciate great design and aesthetics, let me introduce you to the Aeon Project. This gorgeous interface is by far the most impressive piece of eye candy you'll find. Aeon developer Duncan Harris explains Aeon as a new interface for XBMC that was built upon a very simple brief: to create an attractive, sophisticated and above all personal environment for organizing and enjoying media. Of the many HTPC frontends in development and circulation, too many like to bombard the user with overwrought textures that draw attention away from the most important thing of all: the media itself. Aeon's solution is twofold. By favoring glass and otherwise transparent panels with little in the way of "bling", it allows digital media to express itself through its artwork. By drawing much of its texture and colour from themed definable backdrops, which it supports either as single images or cross-faded galleries, it allows individual tastes to dominate the experience.

Aeon Project Homepage

Put some beauty back into XBMC, get Aeon!