/var/opinion - MythTV Goes Amiss
I miss my TiVo. I had one of the first TiVo units ever made, and I kept it alive through various hardware failures and it still works today. I replaced the existing drive with a 160GB drive, which gives me virtually unlimited storage. Then my television failed, so I picked up a terrific bargain on an HDTV from www.newegg.com. The TiVo will work with this television, but it doesn't really do it justice.
So, I've decided to do something I've been meaning to do for years now. I'm building a MythTV box on Linux, which will serve as a multipurpose multimedia server and perhaps even take over the jobs of my aging all-purpose storage and IMAP e-mail server. I've put off this project for a number of reasons. I didn't want to invest in the extra hardware, and from everything I've read it is time consuming (read: royal pain) to get a MythTV box working.
All the testing I did for the Ultimate Linux Box issue left me with a lot of extra hardware to play with. So that problem was solved for me. The only thing I had to purchase was a TV tuner card. I went for the Hauppauge WinTV-PVR-500MCE, which is basically two WinTV-PVR-150 tuners on a single card.
The WinTV-PVR-500 doesn't do HDTV, but there aren't many HDTV channels either. So the plan is to create a synergy between the MythTV box and my HDTV-capable cable box so I can get the best from both. In most cases, the MythTV box should change the channel on the cable box.
The first thing I did was test out the card in a PC I already had running, namely a box with an ASUS M2N32-SLI motherboard for the socket AM2 AMD64 processor. While I had the case open to install the Hauppauge card, I took the opportunity to install some new DDR2 memory modules, which I plan to test for speed improvements. After that, the PC wouldn't even boot to the setup screen.
I'd read that this motherboard is finicky about memory, thanks to BIOS issues, so I used the old memory to download and install the latest BIOS. That fixed the memory problem, but now every distribution of Linux I have crashed at boot time. I get the MP-BIOS “8254 timer not connected to IO-APIC” error that plagued some earlier Linux kernels. Although this may be a Linux kernel issue, it's more likely a problem with the new BIOS. I've never had a lot of luck with ASUS fixing BIOS bugs, so I hope the kernel developers find a way to work around the problem. Regardless, I added noapic to the boot command, and now Linux boots again.
By this time, I decide I don't want to mess with the ASUS box, so I build the computer with the slightly older, but still powerful hardware I planned to use for MythTV. The Knoppix distribution customized for MythTV called KnoppMyth is almost impossible to install, and it doesn't work when I get it installed. Kubuntu 6.06 installs cleanly, but I make the mistake of using a vanilla 2.6.17 kernel to add the Hauppauge drivers (it requires ivtv drivers from dl.ivtvdriver.org and firmware from the Hauppauge site). Vanilla kernels break numerous things in Kubuntu, and the Hauppauge drivers simply won't compile properly anyway.
So I resign myself to using an existing Ubuntu/Kubuntu kernel. I found numerous how-to sites for getting the ivtv drivers working on Ubuntu 5, but nothing for Ubuntu/Kubuntu 6. Unfortunately, there are significant differences between these versions. The biggest difference is how the two versions handle third-party firmware. After experimenting for far too long, I find the shotgun approach solves my problem. I put copies of the driver modules and firmware files just about everywhere, including my sock drawer. Finally, the modules load and the /dev directory is now populated with the right devices.
I still have miles to go before I sleep, but the rest of the MythTV installation looks pretty simple, at least on paper (or should I say “on pixels”). However, the above experience hammered home something I've known about Linux and Linux distributions for a long time, but haven't spoken enough about lately. Almost every distribution has forked the Linux kernel and much more to deliver on its specific goals for a Linux distribution. I hesitate to call this a bad thing, even though it tends to rear its ugly head when you try to do something like install the drivers for MythTV, because updated how-to instructions almost always trail the release of new distributions by many months.
There are reasons why these distributions take such liberties. The basic foundation isn't good enough. Those are fighting words, I know. And I will leave you hanging with that flame bait. I have much more to say on this topic next month.
Nicholas Petreley is Editor in Chief of Linux Journal and a former programmer, teacher, analyst and consultant who has been working with and writing about Linux for more than ten years.
- My Childhood in a Cigar Box
- Tech Tip: Really Simple HTTP Server with Python
- Papa's Got a Brand New NAS
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- Panther MPC, Inc.'s Panther Alpha
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- Simplenote, Simply Awesome!
- Returning Values from Bash Functions
- Debugging Democracy
- NethServer: Linux without All That Linux Stuff