Not all digital TV cards are supported by Linux, but the Hauppauge NOVA-T is. What's more, it's the only one to allow digital TV streaming across a network.
Building and installing the drivers is quite a challenge. I tested the card under Fedora Core 2 (http://fedora.redhat.com), but the instructions in this article will work with most recent distributions. If you're using Fedora Core 2, you'll need to compile a new non-Fedora kernel, as the included version lacks a function required by the Hauppauge driver. For instructions on compiling a Linux kernel, see the README file included with the kernel source.
To compile the drivers for the card you must install the kernel source package provided with your distribution.
Untar the archive 'linuxtv-dvb-1.1.1.tar.gz' on your system and type the following commands to build the drivers:
$ cd linuxtv-dvb-1.1.1
$ ./makelinks /usr/src/linux
The card requires firmware to be loaded from the operating system each time the driver is initialised. This is included with the Windows drivers, installed as C:\Program Files\Hauppauge\WinTV NOVA\ttlcdacc.dll. So you'll need to install the Windows drivers on a computer and then copy them to the following location (you may need to create the directory /usr/lib/hotplug/firmware).
$ cp ttlcdacc.dll /usr/lib/hotplug/firmware/tda1004x.bin
Once you've compiled the drivers and installed the firmware, you can install the drivers by typing the following command, as the superuser, in the build-2.4 or build-2.6 directory:
$ ./insmod.sh load
If this command returns a lot of errors about 'modprobe' and 'insmod' not being found, type the following and rerun the above command:
$ export PATH=$PATH:/sbin
If everything seems to work, type the following command (you should see some messages similar to those below, indicating the card has been found and the driver loaded successfully):
DVB: registering new adapter (TT-Budget/WinTV-NOVA-T PCI).
tda1004x: Detected Philips TDA10045H.
tda1004x: Detected Philips TD1316 tuner.
DVB: registering frontend 0:0 (Philips TDA10045H)...
Watch and record DTV
To watch digital TV, you'll need an MPEG player such as MPlayer, available for download from http://www.mplayerhq.hu. You'll also need to build the Linuxtv DVB Applications and DVBStream.
Next, change to the linuxtv-dvb-apps-1.1.0/util/szap directory and view the file 'channels.conf-dvbt-australia'. Each line deals with one TV channel, such as:
To view a channel, you must first tune it in using its name. For example:
$ ./tzap -c channels.conf-dvbt-australia "TEN Digital"
If successful, this will return something similar to:
status 1f | signal bfbf | snr 0000 | ber 0000023e | unc 00000000 | FE_HAS_LOCK
Leave tzap running to keep the DVB card tuned to a channel. To watch the digital TV signal, use some of the other information from the channels.conf-dvbt-australia file: the QAM value (64), the FEC value (3_4), the video ID (512) and the audio ID (650). These values are located in the same place for each channel. Use these values as shown below to watch the signal on the channel "TEN Digital":
$ dvbstream -o -ps -qam 64 -cr 3_4 512 650 | mplayer -
Recording the output of the card shows off the power of the Linux command line. Use the following command to redirect the output from the card to a file:
$ dvbstream -o -ps -qam 64 -cr 3_4 512 650 > recording.mpg
You can now view the recording using MPlayer:
$ mplayer recording.mpg
Streaming television from the card to many other computers is very easy. Use the same DVBStream command, minus the -o and the mplayer command:
$ dvbstream -ps -qam 64 -cr 3_4 512 650
On the client PC, install DVBStream and MPlayer, and type the following command:
Now, with a single digital TV card you can watch TV on many computers.
Click here to view a screen shot of the Hauppauge NOVA-T card outputs an MPEG-2 stream that can be played with MPlayer.