[pvrusb2] PVR USB2 - how to check if it's dead?

Mike Isely isely at isely.net
Mon Dec 10 10:36:30 CST 2012


The "compliance tests" only tell you about the driver not the hardware.  
And the results you show are not surprising since the driver likely 
predates the test(s) by a long time.

Probably the easiest way to quickly check the health of the hardware is 
to look at your kernel message log after the device is plugged into your 
system.  If all goes well, it should be detected, loaded with firmware 
and configured to be ready for use.  The fact that you have a 
/dev/video0 is fairly strong evidence that the driver thinks the 
hardware is OK.  But still, a lot can be gleaned from the kernel log 
when the hardware is initialized.

The 29xxx series is indeed pretty old but the pvrusb2 driver should 
still be able to handle it just fine.  I don't know of any incompatible 
changes in V4L which might risk screwing it up.

I have however seen a couple cases where the 29xxx device's USB 
interface simply fails to operate correctly against specific kernel 
versions on specific PC hardware.  Yet that same exact PC 
hardware/software combination was able to operate a 24xxx device.  I've 
never been able to track that down; it "smells" like somebody is 
violating the USB spec but if that's the case there's little I can do 
about it in the pvrusb2 driver.

If you'd like, I can this weekend set up a test on the latest kernel 
with one of my 29xxx devices here.  I have no reason to suspect any 
trouble, but it has been a while...

  -Mike


On Mon, 10 Dec 2012, Helmut Jarausch wrote:

> 
> Hi,
> 
> I have an (old) Hauppage  WinTV PVR2 USB
> serial  29039 Rev D160
> 
> This has been working (under Linux) 2 years, ago.
> Now, I can't even check if the device is dead (I have never
> managed to get some Windows7 software running which handles it).
> 
> I do have the device  /dev/video0
> but even
> cat /dev/video0
> doesn't copy anything. Video players just hang waiting for the
> input buffer to fill. It looks like dead.
> 
> 
> I have connected a VCR to the PVR2 via S-Video and Audio cables.
> Therefore I set input to 2 :
> 
> v4l2-ctl --set-input=2 --set-ctrl=volume=62000,mute=0
> and
> v4l2-ctl -c stream_type=3 --set-fmt-video=width=720,height=480
> 
> As far as I remember (I've lost a hard disk with lots videos and my personal
> notes) this sufficed to get vlc or mplayer working.
> 
> 
> What can I do to check if the device is broken or better to get it working?
> 
> Many thanks for a hint,
> Helmut.
> 
> 
> 
> I have kernel 3.7_rc8 with
> CONFIG_VIDEO_DEV=y
> CONFIG_VIDEO_V4L2=y
> CONFIG_VIDEO_FIXED_MINOR_RANGES=y
> CONFIG_VIDEO_TUNER=m
> CONFIG_MEDIA_USB_SUPPORT=y
> CONFIG_VIDEO_PVRUSB2=m
> CONFIG_VIDEO_PVRUSB2_SYSFS=y
> 
> v4l2-compliance -d /dev/video0
> shows
> Driver Info:
>        Driver name   : pvrusb2
>        Card type     : WinTV PVR USB2 Model 29xxx
>        Bus info      : usb-0000:00:13.2-3
>        Driver version: 3.7.0
>        Capabilities  : 0x01070001
>                Video Capture
>                Tuner
>                Audio
>                Radio
>                Read/Write
> 
> Compliance test for device /dev/video0 (not using libv4l2):
> 
> Required ioctls:
>                fail: v4l2-compliance.cpp(293): !(caps & V4L2_CAP_DEVICE_CAPS)
>        test VIDIOC_QUERYCAP: FAIL
> 
> Allow for multiple opens:
>        test second video open: OK
>                fail: v4l2-compliance.cpp(293): !(caps & V4L2_CAP_DEVICE_CAPS)
>        test VIDIOC_QUERYCAP: FAIL
>                fail: v4l2-compliance.cpp(363): !doioctl(node2,
> VIDIOC_S_PRIORITY, &prio)
>        test VIDIOC_G/S_PRIORITY: FAIL
> 
> Debug ioctls:
>        test VIDIOC_DBG_G_CHIP_IDENT: OK (Not Supported)
>        test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
>        test VIDIOC_LOG_STATUS: OK
> 
> Input ioctls:
>                fail: v4l2-compliance.cpp(224): string empty
>                fail: v4l2-test-input-output.cpp(81): invalid name
>                fail: v4l2-test-input-output.cpp(179): invalid tuner 0
>        test VIDIOC_G/S_TUNER: FAIL
>                fail: v4l2-test-input-output.cpp(275): could get frequency for
> invalid tuner 0
>        test VIDIOC_G/S_FREQUENCY: FAIL
>        test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
>        test VIDIOC_ENUMAUDIO: OK
>        test VIDIOC_G/S/ENUMINPUT: OK
>                fail: v4l2-test-input-output.cpp(477): No audio inputs, but
> G_AUDIO did not return ENOTTY or EINVAL
>                fail: v4l2-test-input-output.cpp(521): invalid audioset for
> input 0
>        test VIDIOC_G/S_AUDIO: FAIL
>        Inputs: 4 Audio Inputs: 1 Tuners: 0
> 
> Output ioctls:
>        test VIDIOC_G/S_MODULATOR: OK (Not Supported)
>        test VIDIOC_G/S_FREQUENCY: OK
>        test VIDIOC_ENUMAUDOUT: OK (Not Supported)
>        test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
>        test VIDIOC_G/S_AUDOUT: OK (Not Supported)
>        Outputs: 0 Audio Outputs: 0 Modulators: 0
> 
> Control ioctls:
>                fail: v4l2-compliance.cpp(224): string empty
>                fail: v4l2-test-controls.cpp(165): invalid menu name
>                fail: v4l2-test-controls.cpp(201): invalid control 00990900
>        test VIDIOC_QUERYCTRL/MENU: FAIL
>                fail: v4l2-test-controls.cpp(295): returned control value out
> of range
>                fail: v4l2-test-controls.cpp(383): invalid control 00980909
>        test VIDIOC_G/S_CTRL: FAIL
>                fail: v4l2-test-controls.cpp(571): g_ext_ctrls returned an
> error (22)
>        test VIDIOC_G/S/TRY_EXT_CTRLS: FAIL
>                fail: v4l2-test-controls.cpp(713): subscribe event for control
> 'Brightness' failed
>        test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
>        test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>        Standard Controls: 9 Private Controls: 0
> 
> Input/Output configuration ioctls:
>                fail: v4l2-test-io-config.cpp(46): STD cap not set, but could
> still get a standard
>                fail: v4l2-test-io-config.cpp(132): STD failed for input 0.
>        test VIDIOC_ENUM/G/S/QUERY_STD: FAIL
>        test VIDIOC_ENUM/G/S/QUERY_DV_PRESETS: OK (Not Supported)
>        test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
>        test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
> 
> Format ioctls:
>                fail: v4l2-test-formats.cpp(236): fmtdesc.pixelformat not set
>        test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: FAIL
>        test VIDIOC_G/S_PARM: OK
>        test VIDIOC_G_FBUF: OK (Not Supported)
>                fail: v4l2-test-formats.cpp(379): unknown pixelformat 00000000
> for buftype 1
>        test VIDIOC_G_FMT: FAIL
>        test VIDIOC_TRY_FMT: OK (Not Supported)
>        test VIDIOC_S_FMT: OK (Not Supported)
>        test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
> 
> Codec ioctls:
>        test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
>        test VIDIOC_G_ENC_INDEX: OK (Not Supported)
>        test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
> 
> Buffer ioctls:
>        test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK (Not Supported)
> 
> Total: 38, Succeeded: 25, Failed: 13, Warnings: 0
> _______________________________________________
> pvrusb2 mailing list
> pvrusb2 at isely.net
> http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2

-- 

Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8


More information about the pvrusb2 mailing list