Hauppauge WinTV-HVR-1900

From LinuxTVWiki
Jump to navigation Jump to search

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 sys-firmware/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.