Damian Budd

B.Sc. Eng. (Hons) Electronic Engineer, Hobbyist and Private Pilot

Home Theatre PC

Motivation

I wanted to build my own home theatre system where I had complete control over the hardware and software in the system. Rather than buying a commercial PVR and accept the price/quality trade-off I wanted a system where I had a choice in the graphics and audio hardware. I also wanted to have an upgrade path if I so desired. Likewise with the software I wanted a system that did not contain proprietary commercial software and have to put up with whatever bugs and limitations were inherent in that software, but instead be able to take advantage of software upgrades, new features and bug fixes.

 

Therefore the logical choice was to build my own Home Theatre PC and make use of open source PVR software.

Specification

Home Theatre PC

HDMI Graphics output up to 1080p, VGA and DVI

Surround Sound Audio outputs in both analogue and SPDIF

DVD player/recorder with possible upgrade to Blu-ray

IR remote control

DVB-S2 receiver

Description

Unlike my other projects, this project was really just a matter of purchasing off-the-shelf components, assembling them, installing software and getting it all to work.

 

Having done some research I discovered that the Gigabyte GA-MA785GM-US2H was recommended and considered adequate for Home Theatre PC applications. It contains the ATI 785G chipset which includes an integrated ATI HD4200 graphics adaptor. The HD4200 is considered suitable for High definition video and is also HDMI 1.3 certified to 1080p. The audio codec is the Realtek ALC889A which likewise has very positive reviews. Along with the GA-MA785GM-US2H I purchased an AMD Athlone II X2 processor and twin 2GB of Corsair RAM. For the case I selected the Lian Li PC-C36 low profile case with a 300W PFC power supply. Initially I used a spare 160GB Seagate PATA hard disk I had for it, but later added a 500GB Seagate SATA drive for additional storage space.

 

Since the Lian Li case is a low profile design I needed a low profile Wi-Fi card for network access and a low profile DVB-S2 card.

 

I opted to install Debian Lenny GNU/Linux software (www.debian.org) on it and then use the Debian build of MythTV (www.mythtv.org) as the PVR software. I formatted the PATA hard disk with the EXT3 file system, but later when I added the 500GB SATA hard disk I used the XFS filesystem as this is recommended for better large file support. Installing Debian Lenny was pretty straight forward as I have done this numerous times on many other machines. The only special requirement was to install the ATI proprietary graphics drivers. I'm not too concerned about these drivers being proprietary as most hardware vendors are now releasing drivers for Linux and providing good driver support. And in anycase I also wanted to make full use of my graphics hardware. Installing MythTV is also pretty straight forward as there are comprehensive instructions in the documentation and wiki.

 

For the DVB-S2 card I did a bit of searching because the two main requirements here were for a low profile card and one that had Linux drivers and was reported to be working well on Linux. I came across the Tevii (www.tevii.com) range of cards which met both these requirements so I purchased the S464 card. The card also comes with an IR remote control and the Tevii Linux driver provides support for the remote. Previously I have successfully used LIRC for IR remote controls, however these days motherboard manufacturers have dropped support for onboard Consumer Infrared remotes (CIR). The iTE super IO chips which are used on most mother boards have CIR functionality in them, but the mother board manufacturers have stopped routing the CIR lines to a board header.

 

Getting the Tevii S464 to work was also straight forward, it just required building and installing the driver and following the DVB card installation instructions on MythTV. The IR driver works as a keyboard driver, so when you press the buttons it is like pressing buttons on a keyboard which differs from the way LIRC works and integrates with the kernel and X server. The default key mappings are mapped to extra keys in the keyboard map so most of them didn't do anything in MythTV. I therefore modified the source code of the keyboard mappings for the Tevii driver to map the IR remote keys to their MythTV equivalent (or near equivalent) keys and rebuilt and installed the driver.

 

The only other parts of the configuration that required additional effort was getting the BIOS alarm to work and creating a custom MythTV desktop session.

 

I had installed KDE desktop and the KDM login manager for easy maintenance on the system, but ultimately I wanted the system to go straight into MythTV on startup. To achieve this I created a custom mythtv.desktop file in /usr/share/xsessions and edited it to point to the mythwelcome binary. Thus from the login manager KDM I could start mythwelcome directly instead of KDE desktop. I then modified the login manager script to automatically login to the mythtv user. This way the system boots directly into mythwelcome and then into MythTV. If I want to get back to the login manager to do some maintenance then I just exit mythwelcome.

 

For the BIOS alarm I followed the MythTV wiki section on ACPI wakeup and with a bit of fidgeting got it to work. So the system doesn't have to be running 24/7 but wakes itself up when there is a pending recording and shuts down automatically at the end of the recording or from the mythwelcome screen.

 

I have been very pleased with the performance of the system and MythTV as a whole, it is stable and does what is expected of it. I can connect it up to my Panasonic home theatre projector using the HDMI output and Hi-Fi using the optical SPDIF output and enjoy movies and TV on the big screen with Hi-Fi sound.

Duration

December 2009 – March 2010