Hauppauge WinTV-HVR-1900
A Hybrid DVB-T USB device from Hauppauge.
Overview/Features
- Interface: USB 2.0
- Inputs: Composite, S-Video
- Hardware MPEG-2 Encoder
- DVB-T TV/Radio
- Analogue TV/FM Radio
- Timeshift
- TV-Recorder
Making it Work
Checking the driver
This information is taken from this forum thread on ubuntuusers.de and complemented by own experiences on Ubuntu, Gentoo and Arch Linux.
According to Hauppauge's Running WinTV under Linux support page, there is Linux support for this card since the kernel 2.6.26 release.
This is the output of dmesg when plugged in on a Gentoo system running kernel 2.6.31:
usb 7-2: new high speed USB device using ehci_hcd and address 4 usb 7-2: New USB device found, idVendor=2040, idProduct=7300 usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 7-2: Product: WinTV usb 7-2: Manufacturer: Hauppauge usb 7-2: SerialNumber: 7300-00-F06BBD71 usb 7-2: configuration #1 chosen from 1 choice usbcore: registered new interface driver pvrusb2 pvrusb2: V4L in-tree version:Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner pvrusb2: Debug mask is 31 (0x1f) usb 7-2: firmware: requesting v4l-pvrusb2-73xxx-01.fw pvrusb2: ***WARNING*** Device fx2 controller firmware seems to be missing. pvrusb2: Did you install the pvrusb2 firmware files in their proper location? pvrusb2: request_firmware unable to locate fx2 controller file v4l-pvrusb2-73xxx-01.fw pvrusb2: Failure uploading firmware1 pvrusb2: Device initialization was not successful. pvrusb2: Giving up since device microcontroller firmware appears to be missing.
Current driver for outdated kernels
If dmesg output does not look like this your kernel may be to old. According to the forum thread on ubuntuusers.de the built-in drivers in older version of the kernel may have inconsistencies. You can download new drivers from LinuxTV (v4l). To compile and install untar the driver to a directory of your choice, change into the drivers directory and issue as root:
make make install
Make sure you have the built-essentials (gcc and co.) installed.
Getting the pvrusb2 firmware
Next you need the firmware file v4l-pvrusb2-73xxx-01.fw.
You may extract the firmware yourself or download the extracted firmware. Put the firmware into one of these directories (try out which one of those works for you):
/lib/firmware/ /lib/firmware/2.6/
On (K)Ubuntu Karmic and Gentoo its /lib/firmware/.
This is the dmesg output after plugging in the device:
usb 7-2: new high speed USB device using ehci_hcd and address 6 usb 7-2: New USB device found, idVendor=2040, idProduct=7300 usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 7-2: Product: WinTV usb 7-2: Manufacturer: Hauppauge usb 7-2: SerialNumber: 7300-00-F06BBD71 usb 7-2: configuration #1 chosen from 1 choice cx25840 4-0044: cx25843-24 found @ 0x88 (pvrusb2_a) pvrusb2: Attached sub-driver cx25840 tuner 4-0042: chip found @ 0x84 (pvrusb2_a) pvrusb2: Attached sub-driver tuner cx25840 4-0044: firmware: requesting v4l-cx25840.fw cx25840 4-0044: unable to open firmware v4l-cx25840.fw tveeprom 4-00a2: Hauppauge model 73219, rev D1F5, serial# 7060849 tveeprom 4-00a2: MAC address is 00-0D-FE-6B-BD-71 tveeprom 4-00a2: tuner model is NXP 18271C2 (idx 155, type 54) tveeprom 4-00a2: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xf4) tveeprom 4-00a2: audio processor is CX25843 (idx 37) tveeprom 4-00a2: decoder processor is CX25843 (idx 30) tveeprom 4-00a2: has radio, has IR receiver, has IR transmitter pvrusb2: Supported video standard(s) reported available in hardware: PAL-B/B1/D/D1/G/H/I/K;SECAM-B/D/G/H/K/K pvrusb2: Mapping standards mask=0x3ff00ff (PAL-B/B1/D/D1/G/H/I/K;SECAM-B/D/G/H/K/K1/L/LC;ATSC-8VSB/16VSB) pvrusb2: Setting up 20 unique standard(s) pvrusb2: Set up standard idx=0 name=PAL-B/G pvrusb2: Set up standard idx=1 name=PAL-D/K pvrusb2: Set up standard idx=2 name=SECAM-B/G pvrusb2: Set up standard idx=3 name=SECAM-D/K pvrusb2: Set up standard idx=4 name=PAL-B pvrusb2: Set up standard idx=5 name=PAL-B1 pvrusb2: Set up standard idx=6 name=PAL-G pvrusb2: Set up standard idx=7 name=PAL-H pvrusb2: Set up standard idx=8 name=PAL-I pvrusb2: Set up standard idx=9 name=PAL-D pvrusb2: Set up standard idx=10 name=PAL-D1 pvrusb2: Set up standard idx=11 name=PAL-K pvrusb2: Set up standard idx=12 name=SECAM-B pvrusb2: Set up standard idx=13 name=SECAM-D pvrusb2: Set up standard idx=14 name=SECAM-G pvrusb2: Set up standard idx=15 name=SECAM-H pvrusb2: Set up standard idx=16 name=SECAM-K pvrusb2: Set up standard idx=17 name=SECAM-K1 pvrusb2: Set up standard idx=18 name=SECAM-L pvrusb2: Set up standard idx=19 name=SECAM-LC pvrusb2: Initial video standard auto-selected to PAL-B/G pvrusb2: Device initialization completed successfully. pvrusb2: registered device video1 [mpeg] DVB: registering new adapter (pvrusb2-dvb) cx25840 4-0044: firmware: requesting v4l-cx25840.fw cx25840 4-0044: unable to open firmware v4l-cx25840.fw tda829x 4-0042: setting tuner address to 60 tda18271 4-0060: creating new instance TDA18271HD/C2 detected @ 4-0060 tda18271: performing RF tracking filter calibration
Getting the cx25840 firmware
Still the v4l-cx25840 firmware file is missing. There are several ways to get this firmware.
- Get the v4l-cx25840.fw file from liunxtv.org and copy it to the appropriate firmware directory. - Install the utilities for use with the ivtv kernel driver, ivtv-utils provided by the IVTV Project. On Ubuntu its in the multiverse section. On Gentoo the firmware files are in the seperate package media-tv/ivtv-firmware. Installation guides for many linux distributions are available on the project website.
- On Arch-Linux the firmware is included in ivtv-utils. Install it with
pacman -S ivtv-utils
- On Gentoo there is a third alternative: media-tv/linuxtv-dvb-firmware. But this package is missing v4l-cx2341x-enc.fw and conflicts with media-tv/ivtv-firmware. Therefore media-tv/ivtv-firmware is preferable. If for some reason you still want to go for media-tv/linuxtv-dvb-firmware the next section describes how to install it:
Emerge linuxtv-dvb-firmware on Gentoo
media-tv/linuxtv-dvb-firmware has to be unmasked:
echo "~media-tv/linuxtv-dvb-firmware-2009.09.19" >> /etc/portage/package.keywords/linuxtv-dvb-firmware
if /etc/portage/package.keywords is an directory or
echo "~media-tv/linuxtv-dvb-firmware-2009.09.19" >> /etc/portage/package.keywords
if it is a file.
Add a new device section to /etc/make.conf:
echo "DVB_CARDS=\"pvrusb2\"" >> /etc/make.conf
emerge -av media-tv/linuxtv-dvb-firmware
Checking the driver again
Now dmesg output should look like this:
usb 7-2: new high speed USB device using ehci_hcd and address 7 usb 7-2: New USB device found, idVendor=2040, idProduct=7300 usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 7-2: Product: WinTV usb 7-2: Manufacturer: Hauppauge usb 7-2: SerialNumber: 7300-00-F06BBD71 usb 7-2: configuration #1 chosen from 1 choice cx25840 4-0044: cx25843-24 found @ 0x88 (pvrusb2_a) pvrusb2: Attached sub-driver cx25840 tuner 4-0042: chip found @ 0x84 (pvrusb2_a) pvrusb2: Attached sub-driver tuner cx25840 4-0044: firmware: requesting v4l-cx25840.fw cx25840 4-0044: loaded v4l-cx25840.fw firmware (16382 bytes) tveeprom 4-00a2: Hauppauge model 73219, rev D1F5, serial# 7060849 tveeprom 4-00a2: MAC address is 00-0D-FE-6B-BD-71 tveeprom 4-00a2: tuner model is NXP 18271C2 (idx 155, type 54) tveeprom 4-00a2: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xf4) tveeprom 4-00a2: audio processor is CX25843 (idx 37) tveeprom 4-00a2: decoder processor is CX25843 (idx 30) tveeprom 4-00a2: has radio, has IR receiver, has IR transmitter pvrusb2: Supported video standard(s) reported available in hardware: PAL-B/B1/D/D1/G/H/I/K;SECAM-B/D/G/H/K/K pvrusb2: Mapping standards mask=0x3ff00ff (PAL-B/B1/D/D1/G/H/I/K;SECAM-B/D/G/H/K/K1/L/LC;ATSC-8VSB/16VSB) pvrusb2: Setting up 20 unique standard(s) pvrusb2: Set up standard idx=0 name=PAL-B/G pvrusb2: Set up standard idx=1 name=PAL-D/K pvrusb2: Set up standard idx=2 name=SECAM-B/G pvrusb2: Set up standard idx=3 name=SECAM-D/K pvrusb2: Set up standard idx=4 name=PAL-B pvrusb2: Set up standard idx=5 name=PAL-B1 pvrusb2: Set up standard idx=6 name=PAL-G pvrusb2: Set up standard idx=7 name=PAL-H pvrusb2: Set up standard idx=8 name=PAL-I pvrusb2: Set up standard idx=9 name=PAL-D pvrusb2: Set up standard idx=10 name=PAL-D1 pvrusb2: Set up standard idx=11 name=PAL-K pvrusb2: Set up standard idx=12 name=SECAM-B pvrusb2: Set up standard idx=13 name=SECAM-D pvrusb2: Set up standard idx=14 name=SECAM-G pvrusb2: Set up standard idx=15 name=SECAM-H pvrusb2: Set up standard idx=16 name=SECAM-K pvrusb2: Set up standard idx=17 name=SECAM-K1 pvrusb2: Set up standard idx=18 name=SECAM-L pvrusb2: Set up standard idx=19 name=SECAM-LC pvrusb2: Initial video standard auto-selected to PAL-B/G pvrusb2: Device initialization completed successfully. pvrusb2: registered device video1 [mpeg] DVB: registering new adapter (pvrusb2-dvb) cx25840 4-0044: firmware: requesting v4l-cx25840.fw cx25840 4-0044: loaded v4l-cx25840.fw firmware (16382 bytes) tda829x 4-0042: setting tuner address to 60 tda18271 4-0060: creating new instance TDA18271HD/C2 detected @ 4-0060 tda18271: performing RF tracking filter calibration
There are no complaints about missing firmware files anymore. And these devices are created:
/dev/video0 /dev/dvb/adapter0/demux0 /dev/dvb/adapter0/dvr0 /dev/dvb/adapter0/net0
In case you have an other video device already installed, e.g. a webcam, /dev/video0 may be /dev/video1 instead.
Watching TV
Analogue
Annoyingly tvtimer does not support pvrusb2 chipsets. Hence an alternative has to be found. You may use mythtv or freevo which are both in the ubuntu as well as the gentoo repositories. But both seem to be a little overkill for just watching tv. That's what the author of tv-viewer thought, too. Install tv-viewer as explained in the projects user guide. TV-Viewer supports timeshift and recording.
For Gentoo an experimental ebuild can be found here.
For Arch Linux an tv-viewer pkgbuild can be found on the AUR.
DVB-T
Not tested yet.
Listening to Radio
Analogue
Not tested yet.
DVB-T
Not tested yet.