1

I have a (slightly old now, but still working) Hauppauge WinTV-HVR-1110 analogue/digital tuner card. I haven't used it for years, but I remember back in about Ubuntu 10.04 it worked fine in Linux. I recently dug it out and want to use it to record some VHS cassettes through my old VCR.

I found a guide to the HVR-1110 on the LinuxTV site. But, it was written for 14.04 and says to run (amongst other commands):

sudo apt-get install linux-firmware-nonfree

Which does not work for me on 16.04. There is no package linux-firmware-nonfree anymore. It seems it was removed from the repositories.

How can I get the tuner card installed and running in 16.04?

1 Answer 1

1

I figured this out, mostly based on the previous link to the LinuxTV page but with a few modified steps.

Note: This is specifically for the HVR-1110 card - but it can probably apply to other similar types of tuner card.

1. Physically install the card

Obviously the card needs to be installed in the PCI slot of your machine. Make sure you turn it off before you do this.

I also like to turn of the PSU at its switch, but leave the cable itself plugged in. This should in theory mean that the earth is still connected but the power cannot come on. You'd want the earth connected so you reduce your chance of frying something with static charge.

2. Test the saa7134 driver

The saa7134 driver should be automatically loaded, you can check this with:

$ sudo modprobe -r saa7134

Which should give back:

modprobe: FATAL: Module saa7134 is in use.

This error message indicates that the module has already been loaded (and cannot be re-loaded), indicating that the module is available.

Issue the following command to validate that the WinTV HVR-1110 card has been registered as a device:

$ sudo dmesg | grep "saa"

Which should give something similar to

[    4.061052] saa7134: saa7130/34: v4l2 driver version 0, 2, 17 loaded
...
[    4.061175] saa7134: saa7133[0]: subsystem: 0070:6700, board: Hauppauge WinTV-HVR1110 DVB-T/Hybrid [card=104,autodetected]
...
[    8.890761] saa7134 0000:06:01.0: DVB: registering adapter 0 frontend 0 (Philips TDA10046H DVB-T)...
[   14.099329] saa7134 0000:06:01.0: Direct firmware load for dvb-fe-tda10046.fw failed with error -2
[   14.099338] saa7134 0000:06:01.0: Direct firmware load for dvb-fe-tda10045.fw failed with error -2

Here we can see that the system is looking for the dvb-fe-tda10046.fw file, but cannot find it.

If you're using a slightly different card, the above output might give you a clue as to the file you need. You could modify the following step to give you the file you need instead of the one for the HVR-1110.

3. Download the linux-firmware-nonfree package

The linux-firmware-nonfree package is not in the repositories anymore, I'm not really sure why but I read something suggesting it might be incompatible with newer kernel versions. So, we probably don't want to install the whole package itself. Fortunately, we just need a single firmware file from it - so we can install just that.

Let's get the package from a Launchpad archive, and pull out the dvb-fe-tda10046.fw file.

cd ~/Downloads
wget http://launchpadlibrarian.net/182181877/linux-firmware-nonfree_1.16_all.deb
ar p linux-firmware-nonfree_1.16_all.deb data.tar.xz | unxz | tar x ./lib/firmware/dvb-fe-tda10046.fw --strip-components=3 

Now let's copy the firmware file to where it needs to be:

sudo cp dvb-fe-tda10046.fw /lib/firmware

Now we can remove it from our downloads folder

rm dvb-fe-tda10046.fw

4. Reboot

You'll need to restart at this point.

After you're back up, you should be able to run this and see the firmware has loaded:

$ sudo dmesg | grep "tda1004x"
[    9.134105] tda1004x: setting up plls for 48MHz sampling clock
[   11.534099] tda1004x: timeout waiting for DSP ready
[   11.594099] tda1004x: found firmware revision 0 -- invalid
[   11.594100] tda1004x: trying to boot from eeprom
[   13.982081] tda1004x: timeout waiting for DSP ready
[   14.082077] tda1004x: found firmware revision 0 -- invalid
[   14.082079] tda1004x: waiting for firmware upload...
[   33.314053] tda1004x: found firmware revision 29 -- ok

Success! This should now be all you need to get the card installed. You can use whatever DVB tool you like now to scan and tune TV broadcasts - I won't repeat the many guides available for this but you could start here.

Bonus: Analogue recording

I specifically wanted to record from the analogue input. It took me a little bit of messing around to finally figure this out, so I'll share the command that worked for me with the HVR-1110.

Firstly, TVTime was really helpful for viewing the analogue input to the tuner, so install that with:

sudo apt install tvtime

Then you can just run TVTime from the Dash, you should be able to select "Composite1" as the input.

To record, I tried a few things but found this worked well enough:

sudo nice --10 mencoder tv:// -v -tv driver=v4l2:norm=PAL:width=720:height=576:outfmt=uyvy:device=/dev/video0:input=1:fps=25:buffersize=500:alsa:amode=1:forcechan=2:audiorate=48000:adevice=plughw.SAA7134:forceaudio:immediatemode=0 -ovc raw -vf format=uyvy -aspect 4:3 -noautoexpand -oac pcm -o /home/sean/Videos/VCR4.avi 

You'll need mencoder installed.

This will dump a raw uyvy video file, which will be playable in VLC but will not be compressed. It will take up a lot of disk space (mine used about 1 GB per minute). You'll then have to use your choice of codec to compress it, you can do this with ffmpeg. It would also be possible to encode directly with mencoder if you prefer.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .