Up until a few weeks ago I had a Hauppauge WinTV PVR-250 in the computer I use for recording TV. However, this PCI card was not particularly reliable, possibly because the motherboard that I have can’t supply enough power all the time to the PC card. The machine just froze periodically, usually while I was watching or recording TV!
Instead, I decided to get hold of a Hauppauge WinTV Nova-T USB2. A USB device would be perfect because it should in theory be possible to connect more than one to the computer (I think the USB2 bandwidth is enough for this) and record two channels at the same time. The Nova-T is also a DVB card that can pick up terrestrial Freeview broadcasts here in the UK.
However, getting this device to work on Linux is like trying to get blood out of the proverbial stone. First off I had to download and compile my own kernel. The kernel has to be pretty cutting-edge - 2.6.13 in this case. I recompiled the kernel many times trying to get the various modules needed all sorted out. However, I still had no luck - I’d plug the TV device in and it would work up until firmware_class tried to load the firmware for the device. Turns out there’s some sort of bug in the hotplug code that stops the firmware for the device from loading.
The solution to this problem (after many hours of Googling and hacking) was to manually load the modules using modprobe with the device plugged in. This must bypass the hotplug stuff. At this point, the light on the front of the device comes on and the relevant things appear in /dev/dvb/.
The next challenge (which I still have to work out) is how to get it to tune in to the various Freeview multiplexes. I know I can receive Freeview as I have a Philips Freeview box connected to the TV downstairs. The signal is fairly weak though and has to be boosted. The Nova-T is plugged in to the RF-through connection on the Philips box. Tuning in doesn’t seem to be as simple as with terrestrial analogue signals where it just scans all the available channel numbers. With the tools that I’ve found (scan, tzap, dvbtune, etc.) I seem to have to specify the frequency of the multiplex in MHz. Sadly I haven’t got it to tune into anything yet.
Sadly, the moral to the story is that getting something as bleeding-edge as USB DVB TV cards to work on Linux can be a real pain in the neck. The only upshot is that I can now recompile the kernel in my sleep!