One of my favorite pieces of open source software ever is MythTV. Several years ago, I attended a Linux User’s Group meeting in Orlando in order to do a PGP key signing. The speaker, who had planned to talk about open source DVR software, didn’t make it. I was interested. “Open source DVR software?” I wondered. “How good could that be?” You have to remember, my home computers were running Windows XP and I basically worked on Solaris machines at work. I really was out of the loop on how much open source had advanced.
Well as luck would have it, someone talked about this thing called Knoppix, and how they were handing out Live CDs at an upcoming tech gathering. I went home curious about this. The last time I had played with Linux, I had purchased 6-disc set of Slackware and it took a long, arduous process to install this command-line interface. It had been alright for mucking around, but nothing close to what I needed for real world action. Well I downloaded the Knoppix Live CD ISO, burned a CD, and booted it up.
Wow! It knocked my socks off! It powered up my machine, detected every piece of hardware, and put me on the internet with no configuration at all. The desktop interface was nothing like what I said back in my college days. I happened to own Partition Magic so I quickly carved out a slice of disk space and proceeded to install it. After a few months I found that I spent virtually no time using Windows XP and decided to migrate completely to Knoppix Linux.
That was cool! I felt like I re-entered true geekdom. Well in the midst of all of this, I had started reading more about MythTV, the open source platform for recording and playing back TV shows. I saw some other software projects that did the same thing, but nothing looked as good as MythTV. I read how difficult it would be to set things up, but in my eyes, it was all worth it to get that interface.
So I tried to do an experiment. If I could get it working on my desktop computer, then I would proceed to build a separate computer dedicated to recording and watching TV shows. To make this happen, I just needed to buy a $35 TV frame grabbing card. When that appeared in the mail, I plugged in, and immediately started installing the packages.
This is when I really started to grin. Installing packages using the Debian package management system was wicked. That old Slackware stuff had required me to dig it up from a CD. In those olden days, downloading a few dozen packages would have taken an all nighter. Now, it was nothing. I setup a MySQL database, installed MythTV, and through advice from others, started experimenting with XawTV.
I grabbed a small 13″ TV and set it on my desk next to my computer, and then proceeded to hook up my satellite receive box. I went outside the house and re-connect the satellite feed to my office. After confirming I could watch TV from that room, I unhook the output from the TV and instead connected it to the TV tuner card in my computer. After confirming XawTV could see the feed, I then worked at configuring MythTV to do the same.
When it started recording, it was a hoot! The more I figured out, the more I was impressed by what was possible. Seeing that this was really going to work, I started spec’ing out what I wanted in a real MythTV computer. I realized I needed the machine to tune the satellite receiver, and the one I had was going to be hard. Infra-red was the only choice. I dug around and discovered another receiver that came with a serial port. I ordered it, and after getting it, I hooked it up, and found a script out on the internet that could talk to it in order to change channels.
At about the same time, my new shiny black case arrived in the mail along with a motherboard, CPU, memory, and a nice NVidia card with a TV-out port. I remember going to my brother’s house for his daughter’s birthday. I told him I had to leave early, because a friend of mine was going to join me to assemble a home brew DVR. He asked me “why are doing that? Tivo is cheaper.” My answer: “because I can!” He thought I was speaking arrogantly, when I was trying to communicate how fun it was to build things that were possible.
After putting everything together, I had to hack it for wireless support. The wireless USB card was a real hassle and on many occasions I found myself rebuilding the kernel module to support that confounded thing. Suffice it to say, I eventually chucked it and put in a better support card.
Anyway, I put the machine together, configured it for television, wired it to the satellite receiver, and had a nice little 19″ TV set dedicated to recording and watching shows. That was awesome!
My television watching habits changed drastically. I no longer thought about, “I need to get home to catch xyz.” Instead, I just surfed through the lists of shows, picked what I wanted, and scheduled them. then I watched what I wanted, when I wanted.
This in turn drove other changes. I needed a bigger armoire to host this, and visited many furniture stores with a tape measure, making sure it would fit my MythTV box. Eventually I went out and bought a hi-def TV that had a nice VGA port on the back. When I installed that, everything leaped forward by huge bounds. Basically, this TV was like a jumbo monitor.
I periodically upgraded the version of MythTV I was using to pick up new features. I had recorded probably several seasons of Star Trek and loved picking some of my favorite episodes. From time to time, the whole machine froze up and required a reboot to set things right. A little research exposed flaws in APIC that when disabled, caused the freeze-ups to disappear.
One day I decided to refresh the hardware by replacing my 32-bit motherboard/CPU with a 64-bit one and added a pcHDTV card that would let me record hi-def shows over-the-air. This would be really cool, until a kernel upgrade followed a reboot generated a kernel panic. The box became un-bootable. I dug around and guess what: there was a documented problem in the kernel that was a dead-end. No MythTV. It was a serious withdrawal. For six months I had no MythTV. I managed to survive watching my Stargate SG-1 DVD collection. Finally someone patched this obscure bug. I rebuilt things, and I was flying again!
After being heavily chastised for asking a Knoppix-based question on a Debian IRC chat channel, I wiped the machine and loaded it with pure Debian Linux. I eventually migrated to Ubuntu Linux after seeing a presentation at the Melbourne Linux Users Group.
At one time, my parents came to visit, and the hard drive crashed. At that point, my Linux skills were really polished, and I had read enough about Linux RAID combined with Linux Volume Management that I went and bought a pair of 500 GB hard drives, and built the whole thing into a RAID-1, root-on-LVM-on-RAID system. Sweet! I now knew that the next time I needed to grow the array, it would be a piece of cake. I feel
Sadly, in this day and age, I have hit a new roadblock: digital TV. This is part of the same issue with recording HDTV. The RIAA basically wants to own this content through and through and they really don’t care about Fair Use. The digital cable boxes and HDTV receivers don’t grant you access to record this data. You either can’t record, or can only record downgraded material, pressuring you to buy their equipment at their rates and on their terms. Commercial-grade DVRs are able to silently erase your recordings according to policies set by the studios. Not cool in my book.
I connected my MythTV box to our cable box (dropped satellite when my family moved), and only about a 20 channels are analog and hence recordable by my tuner card. I have decided to repurpose it as a video server and started ripping my DVD collection. I’m trying to see if I can have enough room to put every DVD on it, and then watch it from various computers around the house. Having two kids through hampers my ability to stay up until 3:00am like I used to, experimenting, compiling, and building software. Instead, that spare time has gone towards writing two software books. Hopefully, I can get back into that swing some day.
But one thing remains constant: open source software is impressive, especially when built up with a strong community basis. I have even sent in some tiny patches for MythTV. This community has built all sorts of features including my favorite: automatic commercial detection. This was introduced in a commercial DVR and that company was hauled into court and forced to remove it. With open source, free software, there is no one to sue. 🙂
When ever I hear people debate whether Linux has entered the mainstream, I can tell them wholeheartedly that I already entered that a long time ago. For work I use a mac, but if I had to, I could wipe it and load it with Debian Linux with little interruption. And to think, all this because I wanted to sign some PGP keys. Go figure.