Our house was built before the widespread deployment of cable TV. When cable finally arrived here (i’m guessing sometime in the late 70’s), the house’s previous owners just took a drill to strategic portions of the exterior and ran the cables straight into the rooms where they wanted service.
Unfortunately, they only ran the lines into a couple of rooms. Not even the living room had a jack.
With the baby coming, Meredith insisted on better access to TV around the house (she’s got to do something while nursing, after all!)
This left me with a terrible choice: try to retrofit coax drops all over the house (painful, labor intensive) or find a way to transmit the signals wirelessly (possibly expensive, probably complicated).
We already had a pretty fast 5Ghz 802.11n network in the house and I had a bunch of obsolete hardware rotting in the closet, so the wireless decision seemed obvious.
I’m writing this guide because I hope someone finds it useful, and so three years from now when some piece of the system croaks I have notes to look back on…
MythTV: The DIY Solution
MythTV is an open source software project, so named because it is designed to turn off-the-shelf commodity hardware into the “Mythical” media convergence device.
In practice, it turns your PC into a Tivo-like device that can also play games, stream music, get weather reports, etc….
It is unlike Tivo in a couple of important ways:
- No mandatory subscription fees. However, to get good schedule data is it is important to subscribe to a service like Schedules Direct ($20 annually.) You can use that one account with all the MythTV boxes in your house, so the more units you add, the greater the cost savings vs. Tivo.
- Client-Server architecture. With Tivo, you play back recordings on the same box that does the recording. With MythTV, those roles can be split into two different machines:
1. A server (aka “back-end”) which takes a cable TV input from the wall and records programs to its hard drive.
2. A client (aka “front-end”) hooked up to a TV, which receives recorded and live programs from the server over the computer network either wired or wirelessly.One server can serve many clients. As you can surmise from the description, the clients don’t need access to a cable jack. So you can place them anywhere around the house. As long as they can communicate over the network with the server, they’ll be able to receive programming. In fact, you can even use your PC or Mac as a client.
Sadly, one way that MythTV is really not like Tivo is the ease of setup. Tivo is truly plug-and-play. You can have one unboxed and running in under 10 minutes.
MythTV makes you work for it. You need to pick the right hardware & software, then configure it properly. You even need to program the remotes so that they work reasonably well with the clients.
Thus:
If you hate tinkering with hardware, don’t try MythTV.
If you get upset editing xorg.conf by hand, don’t try MythTV.
If you didn’t understand that last sentence, don’t try MythTV.
Seriously, you will thank me later.
That said, the project has come a long way. There are now several MythTV re-spins based off major linux distributions, like MythDora and Mythbuntu. These greatly ease the process of getting a functioning system with a high “WAF” together in a reasonable amount of time.
Step 0: Pick a Distribution
I chose to use Mythbuntu 8.10 on our clients and server. This is the latest version of Ubuntu with the latest avaialble version of MythTV layered on top of it. I picked it mainly because of my familiarity with Ubuntu, the large database of supported hardware, and the helpful community around Ubuntu. (The community is critical — if you run into a problem, they are the only ones who will provide useful advice.)
Step 1: Get a SchedulesDirect Account
You’ll need to subscribe to SchedulesDirect in order to download your cable system’s TV schedule each day. They offer a free trial for 7 days, then if you like it they ask that you subscribe for $20/year.
As an aside, SchedulesDirect is a not-for-profit organization. They perform a valuable service, transforming the TV schedules from cable companies around the world into an easy-to-swallow XML feed that MythTV and other open soruce projects can download.
They’ve been 100% accurate with our cable schedules up until now, I highly recommend supporting them if you’re into DIY TV projects like MythTV.
Step 2: Get the server running
Fortunately for me, we had a cable drop in the room that I use as my gym. I could throw an ugly server in there and Meredith wouldn’t notice or care.
Digging through my junk closet, i found such a case. It had a 2006-vintage Celeron D motherboard, which is more than fast enough for the jobs that the server has to perform. In the MythTV world the back-end, with the help of a TV Capture Card, handles the recording and storage of the programs and listens for requests from clients to serve up content.
I also had a 1TB hard drive lying around, so threw that into the case. 1TB is good for 500-700 hours of standard-definition TV recordings.
The hardware that actually does the “heavy lifting” of encoding the signals from the cable into something that a computer can play back is called a video capture card (aka TV-Tuner card), and it was the one piece of hardware I didn’t have lying around.
The best place to find such a card is eBay. And the classic capture card for MythTV is the Hauppauge PVR-350, which is what I used.
This card is considered a good choice for a number of reasons, most importantly because its Linux drivers work well, and because it has two coax inputs. You can split your cable signal and stick two cables into the card — this lets you record two streams at once, or watch one stream of live TV while recording another. Very handy, especially if you have more than one client in the house. A decent capture card compatibility list can be found here. (But do yourself a favor — stick with the supported Hauppauge boards.)
One great feature of MythTV is that it can support multiple capture cards in the same machine. So, if I anted up for another PVR-350 and stuffed it in this server, the machine could record 4 streams at once!
MythTV also has the concept of a ‘master-slave’ server relationship. You can setup additional servers (called ’slaves’). The master server tells the slaves what programs to record when. This sort of expandability is a huge bonus, particularly if you are adding clients all over the house. Or if you and your spouse can never agree on what to record.
Once you’ve got your (hopefully compatible) hardware put together, installing the server software is usually straightforward.
Mythbuntu installs like plain, old Ubuntu but at the end of the setup also installs the MythTV software & helps you configure it. The configuration options are beyond the scope of this blog post. The MythTV wiki has a wealth of information about how to set it up.
Step 3: Build the client machines
Client machines typically take a little more thought to build, since they sit next to or under the TV. This means they cannot be excessively ugly, large or loud (WAF rears its ugly head once more…)
Additionally, the motherboard that you use in the client needs a way to send a signal out to a television. You can achieve this in one of three ways:
- a TV-Out built into the motherboard
- a TV-Out built into an add-on AGP or PCI video card
- a signal converter, which can change a VGA signal to composite or S-Video.
My junk closet/treasure trove happened to hold a couple of VIA EPIA-M10000 motherboards from 2003.
The VIA EPIA M-Series are considered classic motherboards for a Myth front-end because they are:
- Cheap (check out eBay)
- Use very little power
- Can frequently be run fanless, so they are silent
- Have a built-in MPEG2 decoder chip, which offloads the video decoding from the wimpy CPUs that these boards are usually saddled with.
- Have composite and S-Video TV outs.
- Are well supported in Linux
Alternatively, i’ve heard of people using mobos like the Intel D201GLY2 or the newer Atom-based D945GCLF Little Falls, two more low-power consumers.
All these motherboards are tiny (Micro-ITX sized) so you can use extremely small, somewhat less ugly cases which resemble cable boxes.
Installing the front-end is similar to the back-end, just stick the Mythbuntu disk in and answer a series of questions, including information about the back-end that you’re going to connect to.
The installer will set up the hardware automatically and this is why it is important to choose your hardware carefully — if your distribution is baffled by the hardware it detects, you are going to be in a world of pain and spending many sleepless nights trolling the MythTV support forums.
Just as an aside, here’s my xorg.conf file for my EPIA M10K, using the composite TV-out (hope it helps someone):
# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type “man xorg.conf” at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorgSection “InputDevice”
Identifier “Generic Keyboard”
Driver “kbd”
Option “XkbRules” “xorg”
Option “XkbModel” “pc105″
Option “XkbLayout” “us”
EndSection
Section “InputDevice”
Identifier “Configured Mouse”
Driver “mouse”
Option “CorePointer”
EndSectionSection “Device”
Identifier “openchrome”
Option “TVType” “NTSC”
Option “TVOutput”
Option “EnableAGPDMA”
Option “ActiveDevice” “TV”EndSection
Section “Monitor”
Identifier “Configured Monitor”
EndSectionSection “Screen”
Identifier “Default Screen”
Monitor “Configured Monitor”
Device “Configured Video Device”
EndSectionSection “ServerLayout”
Identifier “Default Layout”
Screen “Default Screen”
EndSection
If you want to change the channel from the couch, you’ll also need a remote and an IR receiver that plugs into a USB port. Lots of people like the StreamZap. One of the cool things about MythTV is that it not only supports a ton of different remotes, but you can also program remotes that it doesn’t know about out-of-the-box.
We had an extra Tivo remote lying around (also available on eBay, $10-15), and I was able to find links to someone who got it configured properly. This was a critical piece of the puzzle, because the more I can get the MythTV to behave like the Tivo, the happier Meredith is. And a happy Meredith is a critical goal for this project.
Step 4: Record Some Shows!
After the construction ordeal is over, the final step is to actually start using the thing.
You can watch Live TV with it, or set up programs to record. You can set up your recording schedule using the TV and remote (a la Tivo), but it is cumbersome and annoying. The *better* way to do it is to access MythTV’s web server.

Easier to program than Tivo.
When you set up your back-end Mythbuntu should have given you the option to install MythWeb. It is a very simple way to see the upcoming schedule of shows and pick which you want to record.
Another neat way to progam the MythTV system is through an iPhone. There’s an app for that.
Step 5: Watch TV, Already!
That was a lot of work, but in the end you’ve built a system that has many advantages over other PVRs:
- It can be easily expanded to every room in your house (without multiple subscription fees, a la Tivo)
- You don’t need to be near a cable jack
- Centralized storage means every client can access all the shows on the common back end
- The ability to stream music and other media, as well as games, to the front-ends around the house
If you are intrigued by MythTV but all the setup talk has you spooked, you can also buy pre-built MythTV boxes on eBay.
Good luck and happy loafing!










April 6th, 2009 at 11:17 pm
oh man i so want to do this (most houses in Quebec are old enough to have cable jutting through walls with drilled holes) but i fear the tech is too much for moi.
maybe you and the little one can make a trip north to Montreal and help me with it?
April 7th, 2009 at 10:55 am
lol! A trip to Montreal sounds very tempting (as does hanging out with you).
Knowing how long it took Adam to get all this going at home, though, I think we’d end up being your house guests for quite some time!