Home Theater PC
Latest update: May 23, 2010 – rev.1
- Features
- Software
- Hardware
- Diagram
- Toshiba Regza X Series 37X3030DB 37″ (94cm) Full HD LCD TV
- Logitech Harmony 720 universal remote control
- Thermaltake Mozart SX case
- Seasonic S12II 380W power supply
- Intel DG965WH motherboard
- Intel Core 2 Duo E6700 microprocessor – 64 bit, 4 MB cache, 2.66 MHz, 1066 MHz FSB
- Zalman CNPS8700 NT CPU cooler
- SilenX iXtrema Pro 80mm 14dBA 32CFM fans
- A-Data memory – 1 GB (2x 512 MB) PC6400 (800 MHz) DDR2
- Corsair memory – 2 GB (2x 1GB) PC6400 (800 MHz) DDR2
- Thermaltake PCI-E and PCI riser extender kit
- Western Digital Caviar Green WD10EACS 1 TB, 16 MB cache, SATA-II hard drive
- Western Digital Caviar Green WD20EADS 2 TB, 32 MB cache, SATA-II hard drive
- Sony DRU-500a DVD reader/writer
- Matrix Orbital VK202-24-USB Intelligent VFD
- Hauppauge WinTV NOVA-T-500 dual DVB-T tuners PCI Digital terrestrial TV card
- KWORLD USB Dual DVB-T TV Stick (DVB-T 399U)
- KWORLD DVB-S 100 DVB-S tuner PCI Digital satellite TV card
- PNY GeForce GT 220 PCI-E 1GB video card
- Interlink RF keyboard and mouse combo
- DIY TV and components stand
- Installation and setup – Notable details and specifics
- Technology wish-list
I have built a Home Theatre PC (HTPC), in order to replace the Tivo box I was using when living in Houston, which changed the way we approached watching TV.
Features
Current
- TV
- Full Digital Video Recorder (DVR) with advanced recording capabilities
- Terrestrial and satellite digital TV
- TV viewing with time shifting, pause, rewind, etc…
- Automatic advertisement removal for recordings
- Picture in Picture display
- Electronic program guide
- Export to DVD
- Videos
- DVD playing and ripping into DivX for the movies collection
- Playing of 1080p content via HD-DVD Blu-Ray Disk rips/dumps
- Movies (DivX, H.264 and other formats, including HD rips) collection management and playing
- Audio
- CD playing and ripping into MP3 into the Music collection
- Music collection (MP3 and other formats) management and playing
- Other
- Pictures collection with slide show display
- Weather display
- News (RSS) display
- Web browsing
- Web-based remote access for information and programming, from anywhere on the Internet
- Technical
- High definition HDTV TV outputs (through digital HDMI) for 1080p full HD
- Terrestrial Digital TV (DVB-T, TNT, Freeview)
- Satellite Digital TV (DVB-S)
- Hardware accelerated decoding of the following video codecs in all resolutions: MPEG-1, MPEG-2, DivX/XviD, H.264, VC-1
- Hardware accelerated deinterlacing
- Hardware accelerated upscaling
- Optical digital output for sound to the Home Theatre amplifier
- Front VFD display for various information (titles, times, channels, program watched)
- Any Linux-running machine on the local network will be able to act as a client and benefit from most services
- Used through a Logitech Harmony universal remote control
Future
- Multi-format flash card slots for picture, video and audio viewing/listening
- HD-DVD and Blue-ray player and ripper
Software
Operating system

Mythbuntu, a derivative of Ubuntu Linux – Great Linux distribution with a very active team build around providing a very easy MythTV implementation, with extensive documentation. Using the 9.10 (Karmic Koala), 64-bit, release at this time.
Media Centre

MythTV – For the time being the most complete media centre open source application. Its list of features and capabilities is quite amazing. Its configuration and use can sometime be a bit overwhelming, though. But it’s well worth it, and projects like Mythbuntu are helping a lot. Using the 0.22-fixes version at this time.
Diagram
Hardware
Diagram
I am using the existing cable under the house for both terrestrial and satellite TV, as it was not possible to easily install new cables. This involves a combiner and a set of diplexers.
Toshiba Regza X Series 37X3030DB 37″ (94cm) Full HD LCD TV
[link]
A Samsung model was planned, but its design got vetoed by my better half.
Got a great deal at the local Costco.
Full 1080p HD through HDMI.
Has a VESA mount that is used with the DIY stand (read below).
Logitech Harmony 720 universal remote control
[link]
Great web interface, easy to setup and customize, even knew about the Hauppauge remote codes.
Deals with the PC, the TV and the receiver automatically using tasks.
Thermaltake Mozart SX case
[link]
I got a nice deal on this case, as a second-hand product. It is slim, has no volume button, does not look too bad (but it is not that nice looking either…), and is fitting OK in a hi-fi environment.
It comes with a PCI Express x16 and two PCI slots riser, translating the slots form vertical to horizontal.
There is a semi-dark window in the front panel, which is nice for the VFD.
Seasonic S12II 380W power supply
[link]
This power supply replaced an Antec model that failed after one year (as warned about in the comments) and made too much noise anyway.
This one is quite silent indeed. On the other hand, it does not have a modular cables system, and it was quite tough to fit all the extra unused cables in the small case.
Intel DG965WH motherboard
[link]
Intel quality and stability, no fans, great on-board and automatic control for the case fans, optical digital audio output, HD Audio digital header for the sDVO/ADD2 cart (good for the sound part in the HDMI link), and a more than good enough on-board video card, including hardware-accelerated OpenGL, that can have TV outputs through the sDVO/ADD2 system.
Intel Core 2 Duo E6700 microprocessor – 64 bit, 4 MB cache, 2.66 MHz, 1066 MHz FSB
[link]
Let’s say I had the opportunity for the best possible deal for this great processor (thanks again Steve!).
It was the current top of the line of its series at the time of acquisition, and the extra power is put to use with the MPEG-2 and other HDTV (VC-1, H.264) software decoding.
Zalman CNPS8700 NT CPU cooler
[link]
I used to have the Thermaltake Golden Orb II CPU cooler, as it was recommended to be used with the case. Unfortunately it is noisy and cannot be controlled by the motherboard as it lacks the PWM feature.
The Zalman is PWM-capable (using a 4 wires cable) and is very silent. It will spin up and make some more noise when the machine is under load, which is OK, as this happens only when watching HD content with sound.
The case is quite cramped and I needed to cut off a few fins with scissors as well as a major chunk of the holding clip with the Dremel in order to make the cooler fit next to the power supply.
SilenX iXtrema Pro 80mm 14dBA 32CFM fans
[link]
The case needs two case fans, one blowing in, one blowing out, and located close to the hard drives.
This is the third attempt at making the system quieter, and it works!
Those are pricey as fans go, I hope that they last at least a year before they become noisy again.
I couldn’t use the provided rubber mounts, as it was not practical within the case’s configuration, I had to use regular screws. I used rubber parts to still provide some vibrations isolation between the case and the fans.
I believe that the motherboard is also capable of throttling those fans by varying the voltage supplied to them.
A-Data memory – 1 GB (2x 512 MB) PC6400 (800 MHz) DDR2
[link]
The Intel boards are known to demand very specific RAM modules, they need a specific voltage, 1.8V.
These are known to work with my motherboard, and were the cheapest with those specifications.
Corsair memory – 2 GB (2x 1GB) PC6400 (800 MHz) DDR2
[link]
Well, 1 GB was a bit tight, so I had to upgrade.
I really needed an additional 300 MB, but I’m afraid that 150 MB modules are not available
The price difference between a 1 and a 2 GB kit was of about £1, so I went with 2 GB.
Before and after the upgrade:
Thermaltake PCI-E and PCI riser extender kit
This is my luck… The Thermaltake web site says that you should only need those when using a MicroATX motherboard, and that forced me into looking into a full-size ATX model.
But my Intel motherboard still needs this kit. That is a real bummer, as I am having difficulties find anyone who stocks this kit.
Ah, Thermaltake has an on-line shop. It is well hidden, I have to say, but a phone call made sure I had the secret URL!
Oh, one last thing, quite illogical. This kit is made specifically for my case. My case has that riser, with 2x PCI slots, and 1x PCI-E 16x slot. The extender kit has only 1x PCI and 1x PCI-E 16x extenders. So either I ordered 1 kit and lost the use of 1 PCI slot, or ordered 2 kits, for twice the money, and got left with an extra PCI-E extender… I went for the more expensive solution.
Western Digital Caviar Green WD10EACS 1 TB, 16 MB cache, SATA-II hard drive
[link]
Super silent. Low power.
More than fast enough.
Tons of space.
“Payment” for services rendered (Merci Stéphane ! )
It is probably the best range of hard drives that can be used in a Home Theater PC.
It holds:
- Operating system (9.2 GB, EXT3)
- Swap (2 GB)
- Content (921 GB, XFS)
- TV recordings
- Live TV buffer
- Videos
- Music
- Pictures
Western Digital Caviar Green WD20EADS 2 TB, 32 MB cache, SATA-II hard drive
[link]
The disk above got full. This one is for additional content space, formatted in XFS.
Sony DRU-500a DVD reader/writer
Old stock I had. Not perfect, not perfectly fitting (I had to remove the vertical part at the front of the tray), but will have to do for the time being. Connected using a slim and round PATA cable.
Matrix Orbital VK202-24-USB Intelligent VFD
[link]
VFD, as opposed to LCD, is bright enough, and contrasty enough. This provides a good display through the semi-dark window in the front of the case. Mythlcdserver feeds it information. Connected to a spare internal USB header on the motherboard.
This thing works like a charm and really adds a nice touch. It is completely unnecessary, but I had to have it!
Hauppauge WinTV NOVA-T-500 dual DVB-T tuners PCI Digital terrestrial TV card
[link]
It just works out of the box now.
I had to use an option for the kernel module in order to turn on the on-board amplifier (LNA).
I have witnessed some pretty nice guys developing and polishing this driver in just a few months
I add to have a masthead amplifier installed, my signal was not good enough.
The remote is supported by LIRC and is configured in a few clicks using the mythbuntu-control-center.
While I’m still using the infra-red receiver, the remote functions were moved over to the Logitech Harmony.
KWORLD USB Dual DVB-T TV Stick (DVB-T 399U)
[link]
Very cheap at £29!
Works out of the box. An IR receiver is detected (no remote provided) as well as a keyboard (USB HID).
Adds two tuners to the systems for more concurrent recordings and live TV viewing while recording.
KWORLD DVB-S 100 DVB-S tuner PCI Digital satellite TV card
[link]
Works out of the box, no tweak, no firmware. Just works!
I’m using a 90cm dish with a simple universal LNB, pointed at the Astra 19.2 group of satellites. The goal is to get a few free-to-air French channels, mostly TV5.
I am now receiving the following French channels:
- TV5 France, Belgique, Luxembourg
- TV5 Europe
- Direct8
- France 24
- Arte
- NRJ Hits
- LuxeTV
- Canal +
- LCP
- NT1
- a bunch of French radios
- A whole lot of other channels from other countries that I do not really care about
It’s Composite/S-Video input could be useful with the LaserDisc player I still have around.
PNY GeForce GT 220 PCI-E 1GB video card
[link]
Fourth video card in the system’s history! This one is replacing an NVIDIA 9800GS, which replaced a 7100GS, which replaced the on-board Intel 965 video.
Provides hardware decoding of MPEG-1/2, DivX/XviD, H.264 and VC-1 up to full HD, full bit rate, Advanced 2x de-interlacing for 1080i, up-scaling, de-noising and an internal LDPCM codec for HDMI output giving 7.1 HD audio formats.
Beautiful!
Genuine Intel(R) CPU @ 2.66GHz
17:19 NVIDIA(0): NVIDIA GPU GeForce GT 220 (GT216) at PCI:1:0:0 (GPU-0)
VDPAU API version : 1
VDPAU implementation : NVIDIA VDPAU Driver Shared Library 195.36.15 Fri Mar 12 01:18:10 PST 2010
SURFACE GET BITS: 929.295 M/s
SURFACE PUT BITS: 1009.46 M/s
MPEG DECODING (1920×1080): 67 frames/s
MPEG DECODING (1280×720): 162 frames/s
H264 DECODING (1920×1080): 61 frames/s
H264 DECODING (1280×720): 135 frames/s
VC1 DECODING (1440×1080): 47 frames/s
MIXER WEAVE (1920×1080): 618 frames/s
MIXER BOB (1920×1080): 1094 fields/s
MIXER TEMPORAL (1920×1080): 256 fields/s
MIXER TEMPORAL + SKIP_CHROMA (1920×1080): 337 fields/s
MIXER TEMPORAL_SPATIAL (1920×1080): 138 fields/s
MIXER TEMPORAL_SPATIAL + SKIP_CHROMA (1920×1080): 158 fields/s
MIXER TEMPORAL_SPATIAL (720×576 video to 1920×1080 display): 457 fields/s
Interlink RF keyboard and mouse combo
All the system is normally used with the remote control. Sometimes, though, it is nice to have a mouse and a keyboard.
Radio Frequencies work better than Infra-red, there is no need for line of sight.
I can use the keyboard and mouse from the couch.
I salvaged this equipment from the trash at work.
DIY TV and components stand

I bought a TV wall mount from Amazon.co.uk at a relatively fair price.

I have pictures of the build in progress here:
I have added an extension that supports my Bose satellite speakers. Fugly sound, but they still are practical with an installation without too much space taken.
Finally, two cable trays somehow manage the mess and prevent any spaghetti incidents.
Installation and setup – Notable details and specifics
NVIDIA’s VDPAU
VDPAU (Video Decode and Presentation API for Unix) provides a large subset of PureVideo HD functionality for NVIDIA Linux, Solaris, and FreeBSD users. It in essence provides what PureVideo/DirectX Video Acceleration is on the Windows platform.
Some highlights of VDPAU:
- Defines an API for GPU-accelerated decode of MPEG-1, MPEG-2, DivX/XviD, H.264, and VC-1 bit streams.
- Defines an API for post-processing of decoded video, including temporal and spatial deinterlacing, inverse telecine, and noise reduction.
- Defines an API for time stamp-based presentation of final video frames.
- Defines an API for compositing sub-picture, on-screen display, and other UI elements
Here is a sample of what CPU usage is when playing a full bit rate 1080p VC-1 dump of the BBC’s Planet Earth HD-DVD:
Not only is VDPAU efficient, but it also brings top quality decoding, upscaling and deinterlacing. The deinterlacing and upscaling are quite incredible compared to the previous software-only solution. I quite simply feel like I have just bought a new TV!
Intel is absolutely Linux-friendly, in more ways than one
What a nice surprise! We all knew Intel’s stance towards Open Source: friendly and active. It has been proven again when I upgraded the BIOS of my motherboard using the CD ISO images provided on their web site. I was expecting a good old floppy emulation starting up a DOS session. Nope! I saw a Linux kernel boot before the flash upgrade! So, not only does Intel participate with drivers, but they do use the penguin as well in their own processes.
Audio using the optical digital output (S/PDIF)
I’m using a Yamaha Home Theatre Receiver for all sound output. I use it to play everything and decode Stereo, Dolby Surround, AC-3 (Dolby Digital) and DTS through the optical digital input.
There are a few configuration tricks.
- MythTV internal player
That was rather easy, in the General Frontend setup, I set the outputs to “ALSA:spdif”, and ticked the AC-3 and DTS pass-through options.
- MPlayer
That was a tiny bit more involved, I had to edit the system-wide /etc/mplayer/mplayer.conf file.
First, I had to tell it to use S/PDIF for everything:
# Specify default audio driver (see -ao help for a list)
ao=alsa:device=spdif
Just to make sure, I forced the other pass-throughs:
# Specify default audio codec (see -ac help for a list).afm=hwac3
ac=hwac3,hwdts,mad,
I do not really use mplayer anymore as MythTV’s Internal player is more or less playing anything properly now.
DVB cards order
The DVB-T card with both its tuners was intalled inside the system a long time before the DVB-S card.
The system was configured knowing that id 0 and id 1 were DVB-T.
Unfortunately, when the DVB-S card was added, it took first place, becoming id 0, the DVB-T stuff becoming id 1 and id 2. That messed-up MythTV, obviously.
There is a simple trick that forces the kernel to first install the DVB-T driver, then the DVB-S driver. Edit the /etc/modprobe.d/options files, and add:
# Load DVB-T before DVB-S
install cx88-dvb /sbin/modprobe dvb-usb-dib0700; /sbin/modprobe --ignore-install cx88-dvb
It plain English, this means: In order to load the DVB-S driver (cx88-dvb), load first the DVB-T driver (dvb-usb-dib0700), then simply load the DVB-S driver (cx88-dvb), ignoring this condition.
Of course, if you are installing from scratch with both cards from the get-go, this is not necessary.
Not losing one of the Nova-T-500′s tuners
This card is in fact a USB2 controller with two USB2 DVB tuner devices. The Linux kernel is normally set to put USB devices to sleep (suspend) for power saving after a period of inactivity. Those tuners take quite some time to wake up. The result, if MythTV tries to access a tuner too fast when it is asleep, is that the tuner will appear to be stopped. The main issue is that MythTV continues to use it as if it was fine. You end up with recorded programs of zero length.
There are two ways to go around this. The first way is to disable suspend in the kernel for USB devices. The second is to tell MythTV to wait a little bit more for the tuner to be fully awake.
I have selected the second path:
- I told MythTV to be less aggressive when tuning a channel and take more time to do it
- I told MythTV to release the tuners when it does not use them
- I told MythTV to gather EPG data using EIT only on the first tuner
Here is how to do this:
- Go to the MythTV backend setup and edit the capture cards:
- Select the first tuner:
- Then edit the Recording Options:
- Make sure that:
- Open DVB card on demand is selected
- Use DVB card for active EIT scan is selected
- you have increased the DVB tuning delay (I used 150 ms)
- Finish, then edit the second tuner:
- Then edit the Recording Options:
- Make sure that:
- Open DVB card on demand is selected
- Use DVB card for active EIT scan is not selected
- you have increased the DVB tuning delay (I used 150 ms)
- Finish. Escape, Escape, etc. to get out of the setup.







I have not been losing any tuner or any recording since I’ve done that.
List of files of interest
I have various files in this directory, xorg config and logs, dmesg, lspci, lsusb, as well as various v4l-dvb patches for my NOVA-T-500, MPlayer config, etc…
Forcing EDID with the NVIDIA driver even when the TV is OFF
TVs are not really like normal computer monitors. The will not transmit the EDID data, the information about their capabilities, like resolutions and refresh rates, when they are turned OFF or put in stand-by. This is unfortunate because you may want to reboot the MythTV front-end or restart X Window remotely while the TV is not fully turned ON. If you do that with the default settings, you will end up with no picture once the TV is turned back ON, as X Window could not determine what signal to send to the TV.
The trick, found when reading the MythTV Users mailing list, is to acquire the EDID information and force feed it to X Window when it starts, whether the TV is ON or not. For this you need to use the nvidia-settings tool, select your TV screen and save the EDID information as a raw binary file:
Place that file in /etc/X11/ and make sure that your /etc/X11/xorg.conf has the following information:
Section "Device"
Identifier "Generic Video Card"
Driver "nvidia"
Option "NoLogo" "True"
Option "UseEvents" "True"
Option "CustomEDID" "DFP-0:/etc/X11/toshiba-edid.bin"
Option "ConnectedMonitor" "DFP-0"
Option "UseDisplayDevice" "DFP-0"
EndSection
Technology wish-list
A new video card… That would be the 4th in the system (after the on-board Intel, an NVIDIA 7300LE and the current NVIDIA 8400GS). I now would like an NVIDIA GeForce GT220. It has more capabilities in the silicon (DivX decoding and a few other things). It has the ability do properly deinterlace 1080i in Advanced 2x and it has an on-board audio device that can do all those new “HD Audio” formats requiring LDPCM and higher bandwidth (compared to good old S/PDIF), all through the HDMI connection and while using little power.
A new amp that can do those nifty “HD audio” formats in 7.1 and that can switch HDMI.
My keyboard is OK, but it is big and bulky. A smaller, bluetooth-driven model would be nice.
I guess that the next step will be to build a NAS running Openfiler on a few TB of RAID disks.























Hi,
I have an HTPC but it’s still runs windows. it’s the only windows machine at home and I’m using Kubuntu on my other two computers. I’m planning to setup Ubuntu and MythTV on that machine but I’m still not that much experienced on linux so I’m looking for other people with the smilar experience.
I do not have a TV card and I do not want to record from TV, so I do not need it. All I want is a good media player in my TV cabinet to play my video files (mostly TV shows downloaded from internet) and I put 2 network cards on that PC so it acts as a firewall for my home network since it’s running 24/7, running a firewall on an HTPC is a good idea. I’m using ipcop linux firewall running as a virtual machine in vmware-server. I have IMON VFD remote control and VFD display on my case. I’M using a cheap desktop case but it’s not looking ugly inside the TV cabinet.
I’ll be watching this pages for any update on your HTPC build.
And I’m planning to buy that intel DG965WH mainboard to upgrade my desktop computer but I know it has some issues on linux so any info running ubuntu on this mainboard is good too…
Enjoy your new system…
Does the Prolink HDMI output work using the xf86-video-intel driver? Thanks.
For the benefit of Googlers who stumble across my 16 July question about HDMI, Nico asked again about HDMI support on the X.org mailing list (start of the thread here). Essentially, Keith Packard of Intel suggests that HDMI support is mostly working or close.
Just one quick question: do you have some numbers on the power consumption of this board?
Thx
Joseph,
Yes, HDMI works in 1080p using the Intel 2.1 Xorg driver, no configuration needed, all plug & Play
Manu, I have no clue about this. Check the Intel web site?
Just a warning about that power supply: they are notoriously short-lived. I bought two of them and both failed after about a year. Looking at product reviews confirms that I’m not alone on this. Fortunately they didn’t damage any other hardware when they went, even though the +5VSB was fluctuating beyond the scale of my PSU tester with one of them.
Hi,
Quite impressed with this! I have exactly the same case but having probs getting the remote and VFD to work in gutsy. I dont want to record or watch tv..just play my media files! I also intend to use Elisa as compared to mythtv!
Can anyone help me in setting up the VFD and remote please? email me javadayaz@gmail.com
thanks
Javad,
I know that our case comes in two versions, one with a VFD/remote control pack, the MediaLab, one without.
I have the model without. The remote comes from the TV card, the VFD is an after-market model.
The MediaLab is know to work with LIRC for the remote and lcdproc for the VFD and keys.
The MediaLab is a rebranded iMon product, so look for that for the configs of lcdproc and LIRC.
Nico
For the remote config, Mythbuntu created a nice command line too that’s very easy to use in order to create proper remote configs:
http://packages.ubuntu.com/gutsy/x11/mythbuntu-lirc-generator
It knows about the Soundgraph iMon stuff. It knows how to do a nice Elisa remote configuration.
I have checked the /etc/LCDd.conf file too, imon is there.
Nico
J’comprends que tu sois occupé !! Sinon, la vielle classouze l’installation … à part le merdier de fils, derrière
–
Phil
Le merdier de fils va etre proprement range avec l’aide de guide-fils, genre gros tuyau flexible visse sur les poutres du meuble.
Very nice site..I stumbled across it while reviewing your post on the linux-dvb mailer.
I have one question that hoepully you can help with. I notice that you have set Max Recordings to ’3′ to enable you to record multiple broadcasts on the same channel. I also wanted to do this, but when I did it messed up my picture in picture options. For example, when I enabled p-in-p with ‘V’ I could only change channels within the same channel subgroup. Does that make sense. For example say I set the Max Recordings to 3, tuned to channel 10, then enable P-IN-P and tried to change channels I would only be able to select 11,12,13 – all of which are on the same channel but sometimes show different programmes. I played with input groups but the only way I could get this working was to set Max Recordings to 1.
Any ideas?
Thanks
Tom
[...] On ouvre, on branche, on referme. Occasion tout de même pour constater que la carte mère IPIBL-LB peut faire du PWM, la solution de ventilation du CPU est donc toute trouvée. [...]
Can you explain how front panel of the Mozart case is removed? I want to change case fans to silent ones and looks like one needs to remove front panel. I plan to make my first HTPC with it…
Michael, you will have to remove the cover. Then the front panel is held by 3 clips at the top. You will have to push them. One of the clips is right above the optical drive, so you will want to remove that drive to make it easy. Once the clips are disengaged, you just have to swivel the whole front panel down and then pull it towards you.
[...] http://www.youplala.net/linux/home-theater-pc#toc-nvidias-vdpau [...]