Over-the-Air Digital TV with Linux
Pinnacle's PCTV HD Pro Stick is a USB 2.0 tuner card that supports both digital (ATSC) as well as analog (NTSC) TV signals. This tuner card comes with a portable telescopic antenna, a mini-remote control with batteries, a USB extender cable and an A/V adapter cable with inputs for S-Video, composite video (RCA) and stereo audio (1/8" jack). An integrated infra-red (IR) receiver on the device supports the remote control. This tuner card is slightly bigger than a typical USB thumbdrive and has a coaxial TV antenna input on one end and a USB connector on the other. When plugged in to my system, the tuner's width blocked adjacent USB ports. However, using the USB extender cable that came with the tuner card circumvented this problem. The portable antenna that comes with this card is good enough for viewing nearby HDTV channels, but it always helps to have an amplified antenna.
Out of the box, this card is not supported under Linux. To get this card to work with Linux, I had to download and compile its driver. I discovered that this tuner is based on an Empiatech EM2880 chipset, whose support has been added to the latest development version of the Video for Linux Digital Video Broadcasting (v4l-dvb) Project. I downloaded the v4l-dvb development source code and compiled the necessary modules for the running kernel (see the Building Device Drivers for Pinnacle PCTV HD Pro Stick and Hauppauge WinTV-HVR-950 on Ubuntu 7.10 sidebar). Compiling the kernel modules went through without a hitch, and after a system reboot, the Pinnacle PCTV HD Pro Stick was recognized by the system. Its digital (ATSC) tuner was registered as a DVB front end (/dev/dvb/adapter0), and its analog (NTSC) tuner was accessible as a v4l video device (/dev/video0).
Building Device Drivers for Pinnacle PCTV HD Pro Stick and Hauppauge WinTV-HVR-950 on Ubuntu 7.10
First, enable universe and multiverse package repositories by selecting System→Administration→Software Sources from the GNOME desktop menu. Click on the tab labeled Ubuntu Software, and make sure the boxes are checked for Community-maintained Open Source software (universe) and Software restricted by copyright or legal issues (multiverse). Click Close.
Next, apply all latest updates from Ubuntu by selecting System→Administration→Update Manager from the GNOME desktop menu, apply all system updates, and reboot the system.
Then, in a terminal, do sudo su to become the root user. Install the necessary packages to build em28xx kernel modules:
aptitude install mercurial build-essential linux-source
Download firmware version 4, necessary for USB tuner cards:
wget -q http://konstantin.filtschew.de/v4l-firmware/firmware_v4.tgz ↪-O /usr/local/src/firmware_v4.tgz
Unpack the firmware files into /lib/firmware:
tar xzf /usr/local/src/firmware_v4.tgz -C /lib/firmware
Grab the latest copy of the V4L DVB source code from mcentral.de:
cd /usr/local/src hg clone http://mcentral.de/hg/~mrec/v4l-dvb-kernel
Compile the V4L DVB drivers:
cd /usr/local/src/v4l-dvb-kernel make make install
And, finally, reboot the system.
After configuring the tuner as a “DVB DTV capture card (v3.x)” in MythTV, I was able to tune into standard-definition and high-definition programs. Picture quality for HD programs was fantastic, with astonishing crispness and clarity compared to SD programs. The viewing experience for this USB device was excellent.
I used tvtime to evaluate the analog TV performance. The picture quality was significantly better for stations with transmission towers that were geographically closer. Initially, sound did not work in tvtime. Using sox to route audio from tvtime to the default ALSA sound device solved the problem. Research on the Web indicated that many others have faced this same issue when using tvtime.
The Hauppauge WinTV-HVR-950 is a USB 2.0 HDTV tuner card, which is very similar to the Pinnacle PCTV HD Pro Stick, except the Hauppauge device does not come with a remote control. Like the Pinnacle PCTV HD Pro Stick, it supports digital (ATSC), analog (NTSC) as well as unencrypted cable TV signals. This card comes with a portable telescopic antenna, USB extender cable and A/V adapter cable with inputs for S-Video, composite video and stereo audio. I found that the antenna provided with this card was not as good as the one supplied with the Pinnacle PCTV HD Pro Stick. In fact, I had to use a better indoor amplified antenna or an outdoor antenna instead. This card also blocked adjacent USB ports when plugged in to my system.
Hauppauge does not officially support Linux for this product. But, this tuner card also is based on the Empiatech EM2880 chipset (same as Pinnacle's PCTV HD Pro Stick). Hence the same kernel modules built for the HD Pro Stick worked with this tuner. Follow the steps in the Building Device Drivers for Pinnacle PCTV HD Pro Stick and Hauppauge WinTV-HVR-950 on Ubuntu 7.10 sidebar to build the driver.
The viewing experience for both SD and HD programs and analog TV was similar to that provided by the Pinnacle PCTV HD Pro Stick.
- Bruce Nikkel's Practical Forensic Imaging (No Starch Press)
- Transitioning to Python 3
- Progress on Privacy
- Linux Journal December 2016
- Stepping into Science
- Tech Tip: Really Simple HTTP Server with Python
- Radio Free Linux
- FutureVault Inc.'s FutureVault
- CORSAIR's Carbide Air 740
- Red Hat OpenStack Platform