MythTV - Home Theater

This has been a passion of mine for several years. I found myself staring at another seemingly endless round of commericals one evening and thinking to myself "what is it that I was watching?!". That started me into looking at a digital video recorder, something that was computer based and would allow me to skip all those commericals. Finally, I ended up with deciding to use Hauppauge TV Receiver cards and install MythTV on a computer.

That was about three years ago. Since then, the HTPC (Home Theater PC) has gone through a number of receiver cards and computers.

Currently, my backend setup is:

  • Hauppague PVR-500 dual TV / Radio receiver.
  • Gigabyte GA-EP43-S3L
  • six 320G SATA-II drives (1.1T Video volume).
  • Intel Q6600 CPU
  • 8G DDR2 memory
  • Mandriva 2008.1 Linux distro.

    The front end setup is:

  • BioStar K8M800-M7A
  • AMD Sempron 2800
  • 1G DDR memory
  • Nvidia Geforce4 AGP video card
  • eHome Infrared Transceiver (external).
  • Yamaha RX-V361 Amplifier / FM Receiver.
  • Samsung 244T 24" LCD monitor.
  • Radio Shack 8-in-1 IR remote control.
  • Mandriva 2010.0 Linux distro.

    The PVR-500 is installed in a server that has 1.2 Terrabytes of RAID-10, 8Gig of SDRAM, running an Intel Quad Q6600 CPU. This monster box is the video server for the HTPC. The HTPC can be shut off and the video server will take care of recording the selections. When I want to watch some TV / Movies, I turn on the HTPC, let it connect to the video server and select something to watch. When those endless round of commercials now appear, I simply hit SKIP on the remote control and avoid them!

    In addition to the TV shows I timeshift (record) for later viewing, I have taken many movies that I've recorded, edited out the commercials, then transcoded them into DivX format. There are over 500 movies now on the video server. All the movies have come from off-the-air and there is no content from DVDs (/me thumbs nose at MPAA & RIAA).

    Here, I will describe how the current HTPC has been assembled.



  • TopAntec - Fusion Black Remote

    View of the Fusion Black Remote case

    Now, this is a nice case! Far better than the Antec Minuet case I purchased years ago to build my first HTPC into. This case measures 17.5 inches wide by 16.5 inches deep and sits 6 inches high on a shelf. The Yamaha amplifier sits very well on top of this case and they both almost look like they are the same equipment grade / family. The case is finished in a brushed aluminum front panel with a slightly texture black paint for the case. The result is a case that is attractive and will resist fingerprints.

    The case is built to house a standard ATX power supply with an area for two vertically mounted hard drives and a place for a horizontally mounted DVD drive. The DVD drive location features a spring-loaded panel that flips down when the drive tray is opened.

    The case comes with a 24pin power supply adapter cable that plugs in between the ATX power cable and the motherboard. This adapter has a smaller cable that is used to power the LCD front panel. No special power supply is needed with this case as it does with the Antec Fusion 430 case. The two, generous, 120mm side panel fans rotate quietly and should provide sufficent cooling for a modestly powerful motherboard / video. If you intend on using something like SLI video cards, then good luck, the case is not designed for a video gamer. This is a case for a home theater unit, it does not appear to have been designed as a do-everything case.


    TopGet IMON LCD working

    The lcd is fairly easy to get get working under the Mandriva 2010.0 distro. Grab the latest version (0.5.3) from sourceforge . Unpack the tarball, run configure, then make and make install (you should know the drill by now :). Only version 0.5.3 (latest) includes the imon driver patches.

    To test, run LCDd and you should see text on your LCD display. Then run lcdproc and this will give you some other output. If you have problems, there are plenty of messages and forums out there that deal with the imon lcd...

    TopPutting the LIRC together with 2 drivers

    To use both the front panel knob and a remote control, you have to combine the output of two lircd processes. The front panel IR receiver is not capable of "hearing" anything other than the remote that came with the Fusion case. Since I have the external eHome IR receiver and the front panel knob can only be read via lircd, you have to combine them. A bit tricky, but seems to work well once you get it going. Keep in mind, this is all on Mandriva, you Ubuntu guys may have to "jiggle" things to get it working for yourselves.

    To start off, install the stock lirc of version 0.8.6 and the kernel modules:
    urpmi lirc dkms-lirc

    Edit /etc/sysconfig/lirc to add these variables:
    HW0MOD="lirc_imon"
    HW1MOD="lirc_mceusb"
    OPTIONS0="--driver=default --device=/dev/lirc/0 --output=/var/run/lirc/lircd --pidfile=/var/run/lirc/lircd0.pid --connect=localhost:8765"
    OPTIONS1="--driver=default --device=/dev/lirc/1 --output=/var/run/lirc/lircd1 --pidfile=/var/run/lirc/lircd1.pid --listen"

    Once that is done, patch /etc/init.d/lirc:
    patch -p0 < lirc_imon_ehome.patch
    The patched lircd script will now start two copies of lircd and join their outputs into a single stream. Try irw and see what happens.


    TopMythTV Software Notes

    The MythTV software is built from rpm sources taken from the Mandriva contrib repositories. I prefer to do it this way as an RPM, in general, will do an uninstall more completely than a tarball. YMMV

    The MythTV source is from the 0.21 release with two modifications. One is a special SQL search for Movies that have not yet been placed into the Video Archives. I detest recording the same movie over and over again, then find it is already in my Video Archive. The second change (patch) is to have mythlcdserver use Ron Frazier's iMON LCD Server . Ron has done some very nice work with perl to produce a credible replacement for the mythlcdserver for the SoundGraph iMON LCD product. He also has done work with lirc to implement the IR remote included with this case (more on IR later).

    My LCD server patches have MythTV run the mythimon.pl when MythTV starts, and to shut it down when you exit MythTV. This is the SRPM for that mythtv with my patches .

    To build the RPM packages from SRPM:
    rpmbuild --rebuild mythtv-0.21-16567.2mdv2009.0.src.rpm



    TopLIRC Software Notes

    To get the LCD working on the Fusion, I had to take the latest code from the lirc CVS (as of 2009-03-09) and use that. The current release of lirc (0.8.3-4) does not support the Fusion LCD, but only does the VFD (Vacuum Floresent Display) that is used in the earlier version of this case.

    Also, I've found the remote control that was shipped with the Fusion to be somewhat useless. I have a perfectly good Radio Shack 8-in-1 Universal Remote that is also programmed to my Yamaha Amplifier. The SoundGraph IR receiver appears to be only capable of decoding the RM200 remote shipped with the case. I decided not to use this IR receiver but to continue using the USB model that came with my Hauppauge PVR-500.

    The SRPM I put together replaces the current release (8.3.4) of imon_lcd with that from CVS. The CVS lirc_mceusb2 driver would not work with the Hauppauge receiver, but, the release version did... This source rpm will allow you to build the imon_lcd driver that does not register an lirc device. It will register the driver half that creates the /dev/lcd[0,1] devices but no /dev/lirc.



    TopRon Frazier's mythimon.pl scripts

    Just when I think that I am doing so well with my perl programming, I come across something like this code that humbles me. This is a great peice of perl code that controls the LCD of the SoundGraph iMON and does some clever things with it. I can appreciate how much time was spent getting the information puzzled out to command this display. Thanks Ron!

    The original page is here for you to look at and get Ron's original source. I have, crudely, put together a tarball containing the modified mythimon scripts that work with my modified MythTV. The tarball has an install shell script to show you where things will go and you will probably have to adust the perl directory locations to match that of your system. The mythimon.pl script is to go into /usr/bin so it can be started by MythTV.



    TopFinal Thoughts

    After going to all this trouble to customize the code and get things setup, I did not want urpmi to remove my changes. I still would like to update the computer software as the Mandriva 2009 distro evolves. So, I placed the following lines into /etc/urpmi/skip.list to protect those packages from being upgraded.

    /^kernel/
    /nvidia/
    /mythtv/
    /MythTV/
    /^lirc/
    /^dkms-lirc/
    /^lib64myth/