Getting Started with a TV Tuner Card
Watching my beloved Orioles play is one of my favorite summertime activities. Unfortunately for me, my family doesn't share my passion for the Birds. After having to choose one too many times between heading upstairs to watch TV or remaining downstairs to use the computer, I had an idea. I decided to get one of those nifty TV tuner cards. A quick virtual trip to newegg.com confirmed that I could choose among several in my price range. At the time, though, it was the end of baseball season, so I shelved my plans for a while.
A couple of months passed and Christmas was right around the corner, so I revived my TV tuner card plans. In preparation, I did a bunch of Googling and reading, and I subscribed to the Video4Linux mailing list (see Resources). This research was vital to the success of the overall project. I strongly recommend that anyone interested in using a TV tuner card in his or her Linux system spend some time researching before purchasing, as proper research can make all the difference. After checking prices and researching various tuner cards, I finally settled on the Hauppauge WinTV Radio card. This specific model number is referred to as either the WinTV-dbx or the model 401. I chose this card for its price, stereo sound and the FM radio tuner. Additionally, many people who posted on the Video4Linux list reported their success with the card. Having made my decision, I placed my order and commenced waiting for it to arrive.
When the card arrived, I opened the package and found a pretty blue box containing almost everything needed for installation. Inside the box was the card itself, an audio cable for connecting to the soundcard, an FM antenna, a remote control and the software needed to install the card in Windows. Coaxial cables used to provide input to the tuner, however, conspicuously were absent. After some grumbling and a trip to Radio Shack, I was ready to install the card.
Installing the card into a vacant PCI slot was easy enough. Connecting the coaxial cable and the antenna was a little difficult, because I have big hands and there wasn't much room between the two connectors. The audio cable connected easily to the line-in of my sound card, and the remote control's infrared receiver similarly was effortless to plug in. It was time to boot the computer.
I recently put a Microsoft Windows partition on my computer, and after installing the included proprietary software I was able to watch TV, listen to the radio and use the remote control. I then rebooted into Linux and began the software installation. You can read about the installation process, which was quite easy and quick, later in this article. The next step after getting both the TV and the radio tuner to function was to enjoy the fruits of my labor.
I chose tvtime as my viewing application, because several folks on the Video4Linux list recommended it. tvtime is available from Yum, making for a quick and easy installation. Initially, the picture was poor because the hue, contrast and other settings were not set correctly. I was forewarned of this by the V4L list, however, so I wasn't especially surprised. After correcting the picture, I tested several different-sized windows. I found that a smaller window looks sharper but the picture degrades, becoming more grainy and blurry as the window size increases.
Next, I was ready to test the audio, so I donned my headphones. I immediately was disappointed by the decidedly mono sound output I heard. I knew the card had dbx stereo output, so I checked my connections first. Removing and reconnecting the audio cable did the trick, as the cable's connector wasn't inserted completely into the card. Chalk up another one for user error. After resolving this connection issue, the sound quality became quite good.
Once the testing of the TV tuner was complete, it was time to test the radio tuner. I chose GQRadio. After installing the tda9887 tuner module using modprobe, and I was able to listen to my favorite FM radio stations immediately. As with the TV test, the sound quality of the radio was very good.
Finally, it was time to test the remote control supplied with the card. I tried a couple of times to get the remote control working using LIRC, but I could not make it work properly. Other people on the V4L list reported having success with the remote, however, so there still is hope. Truthfully, it is not important to me that the remote works. The only time I'm going to watch TV on my computer is when I'm sitting next to the keyboard and mouse, both of which can be used to tune channels in tvtime. Spending time perusing LIRC's Web site and the V4L list will be of tantamount importance to you if remote control functionality is a priority. The remote did function on the Windows partition, though, so I'm sure my inability to configure the device was the problem rather than an issue with the hardware.
Although I did not try to use the WinTV 401 with any PVR software, I did check out the PVR Hardware Database and found that a few people have reported that this card works with MythTV. I couldn't find anything on the Freevo Web site that specifically states this particular tuner card functions with Freevo, but they do allude to it by saying "Any Video4Linux1/2 compatible board, which includes the popular Hauppage WinTV boards" works with Freevo.
When everything was installed and configured to my liking, I gave my new setup the Daughter Test. I sat down my two daughters in front of my workstation and gave them a crash course in using tvtime. In mere moments, my eldest was changing channels to her heart's content. Both girls were squealing with childhood delight at watching TV on my computer. Their only two complaints were that they couldn't watch TV on Mommy's computer and they couldn't watch Noggin. Noggin is a children's television network that resides on a channel above the tuner's 125-channel limitation. I explained to them it wasn't really the computer's fault, it was more a limitation of our cable provider.
The goal of purchasing the TV tuner card was to enable me to watch a different TV program than the rest of the family, without having to leave the room to do so. Having found that the card satisfied this objective, I decided to see how far I could push the limits. I opened tvtime and made the window fairly small. I started Neverwinter Nights in a window of its own and joined a server on the Internet, surfed the Web and instant messaged friends. Watching TV seemed to have no discernible effect on system speed or stability. Later testing showed that only about 7% CPU usage was required to watch TV on the computer. Now, I can't seem to play NWN without having the TV running in the corner of my screen.
I was very happy with the installation process, which--with the exception of the remote control--was accomplished easily. I can watch TV and listen to the radio on the computer while also using my computer for other tasks. My children love being able to watch TV on the computer, and they can use the TC functionality quite easily.
In summary, I can't help but recommend the purchase of this card. It's reasonably priced and offers good picture quality and very good sound quality. The manufacturer, although not officially supporting Linux, actually has a link to some Linux installation guides. It must be noted, however, that these guides are out-of-date. Still, as a prospective buyer, I found it reassuring that the company acknowledged that its hardware runs on Linux. My only minor disappointments were the picture quality in full screen or large windows and the fact that the remote didn't work as easily as the TV and radio tuners did. Overall, this TV tuner card is a solid product with some very nice features. Most importantly, once Opening Day arrives, I'll not have to leave my family in order to watch my beloved Os.
Intel Pentium4 2.4GHz
1GB of Ram
Fedora Core 2 using kernel version 2.6.9-1.6_FC2SMP
NVidia Geforce 5900 using NVidia drivers
Hauppauge WinTV model 401 TV Tuner Card with the Conexant 2388x chipset. Note: Some Hauppauge cards use the BT8x8 chipset and bttv drivers, so carefully inspect the card to see which chipset your card is using. These installation instructions may not work for the bttv drivers.
The installation process was surprisingly quick and easy. Red Hat and Fedora Core use kernels that provide many elements as loadable modules. This eased installation considerably, as otherwise, one would have to recompile the kernel to get the needed modules. I tested with kernel version 2.6.9-1.6_FC2SMP. There have been reports of problems with the 2.6.10 kernels, and I can confirm the stock Fedora Core 2 kernel 2.6.10-1.12_FC2SMP doesn't work. Because I use the kernel version listed in the system specifications above, I'm not affected. However, some people report success with various Hauppauge cards and the 2.6.1 0 kernels in Fedora Core 3. Please be aware that kernels change often, and any issues existing at the time this article was written may be resolved by the time you are ready to install the card.
Here is the abbreviated step-by-step process to install and configure the TV tuner card.
Install the card into an empty PCI slot.
Make all proper cable connections. No coaxial cables are included with the card, so make sure to have some prior to beginning installation. The included manual provides the procedures on how to connect the cable TV input, FM antenna, sound cable and IR remote receiver.
Power on the computer.
When Kudzu--the Red Hat/Fedora Core tool that runs at boot time to probe for and configure new hardware--runs, choose to configure the new hardware and accept all defaults.
Log in once the boot process completes.
Kudzu inserts lines similar to the following into modprobe.conf:
alias char-major-81 cx8800
Add this line:
options cx8800 tuner=43
immediately following the alias line above.
Add the following line to rc.local. Note: I wasn't able to get the radio tuner module tda9887 to load properly using modprobe.conf. It may be possible to do so, but I chose to add the line to rc.local.
Reboot the computer to test that all modules load properly when the computer boots. You may not need to reboot to test the modules, but I did for the sake of expediency.
Install television viewing application. tvtime is available by way of Yum and is known to work with this tuner card.
Install radio tuning application. GQRadio is available in an RPM package and is known to work with this tuner card.
Configure your viewing and listening applications and enjoy!
Another Conexant chipset model is available, the cx88XX module. If cx8800 doesn't work you might want to try cx88xx. You also may have to try different values for the options cx8800 tuner= line. It seems the chipsets on these cards can change with astounding frequency. Likewise, you may have to find a different radio tuner module from the tda9887 used above.
If you do not add the options cx8800 tuner=43 line to modprobe.conf, then tvtime produces the following errors:
Running tvtime 0.9.12. Reading configuration from /etc/tvtime/tvtime.xml Reading configuration from /home/ron/.tvtime/tvtime.xml videoinput: Can't get tuner info: Invalid argument videoinput: Can't set tuner audio mode: Invalid argument videoinput: Can't get tuner info: Invalid argument videoinput: Can't set tuner audio mode: Invalid argument videoinput: Tuner present, but our request to change to videoinput: frequency 247250 failed with this error: Invalid argument. videoinput: Please file a bug report at http://tvtime.net/ videoinput: Tuner present, but our request to change to videoinput: frequency 241250 failed with this error: Invalid argument. videoinput: Please file a bug report at http://tvtime.net/ videoinput: Tuner present, but our request to change to videoinput: frequency 235250 failed with this error: Invalid argument. videoinput: Please file a bug report at http://tvtime.net/ Thank you for using tvtime.
You may see this error message if the tuner=XX value is incorrect, but this is unconfirmed.
- Machine Learning Everywhere
- Own Your DNS Data
- Bash Shell Script: Building a Better March Madness Bracket
- Understanding OpenStack's Success
- Simple Server Hardening
- Returning Values from Bash Functions
- Understanding Firewalld in Multi-Zone Configurations
- From vs. to + for Microsoft and Linux
- Natalie Rusk's Scratch Coding Cards (No Starch Press)
- Tech Tip: Really Simple HTTP Server with Python