-   Linux - Hardware (
-   -   Getting analog video working on a Hauppauge HVR-1800? (

Electrode 11-05-2010 11:56 PM

Getting analog video working on a Hauppauge HVR-1800?
I picked up a Hauppauge WinTV HVR-1800 PCIe TV tuner a few days ago. Digital TV worked fine right out of the box (after setting up the firmware), but I have not been able to get analog video to work at all.

If I run mplayer, xawtv or tvtime using /dev/video1 (yes, that is the correct devnode, video0 is a different card in my rig), I just get a solid green screen at about 1 frame per second, and my dmesg fills with:


[ 1000.029300] format_by_fourcc(0x32315659) NOT FOUND
[ 1000.029326] format_by_fourcc(0x32315559) NOT FOUND
[ 1001.880037] cx23885[0]: VID A - dma channel status dump
[ 1001.880045] cx23885[0]:  cmds: init risc lo  : 0xaf9e4000
[ 1001.880048] cx23885[0]:  cmds: init risc hi  : 0x00000000
[ 1001.880051] cx23885[0]:  cmds: cdt base      : 0x000107b0
[ 1001.880054] cx23885[0]:  cmds: cdt size      : 0x0000000c
[ 1001.880056] cx23885[0]:  cmds: iq base        : 0x000105b0
[ 1001.880059] cx23885[0]:  cmds: iq size        : 0x00000010
[ 1001.880062] cx23885[0]:  cmds: risc pc lo    : 0xaf9e4034
[ 1001.880064] cx23885[0]:  cmds: risc pc hi    : 0x00000000
[ 1001.880067] cx23885[0]:  cmds: iq wr ptr      : 0x00004179
[ 1001.880069] cx23885[0]:  cmds: iq rd ptr      : 0x0000416d
[ 1001.880072] cx23885[0]:  cmds: cdt current    : 0x000107b8
[ 1001.880075] cx23885[0]:  cmds: pci target lo  : 0x00000000
[ 1001.880077] cx23885[0]:  cmds: pci target hi  : 0x00000000
[ 1001.880080] cx23885[0]:  cmds: line / byte    : 0x00000000
[ 1001.880083] cx23885[0]:  risc0: 0x80008000 [ sync resync count=0 ]
[ 1001.880087] cx23885[0]:  risc1: 0x1c000500 [ write sol eol count=1280 ]
[ 1001.880091] cx23885[0]:  risc2: 0x7b570500 [ jump sol irq2 irq1 22 20 18 cnt1 cnt0 count=1280 ]
[ 1001.880097] cx23885[0]:  risc3: 0x00000000 [ INVALID count=0 ]
[ 1001.880100] cx23885[0]:  (0x000105b0) iq 0: 0x80008000 [ sync resync count=0 ]
[ 1001.880104] cx23885[0]:  (0x000105b4) iq 1: 0x1c000500 [ write sol eol count=1280 ]
[ 1001.880108] cx23885[0]:  iq 2: 0x7b570500 [ arg #1 ]
[ 1001.880111] cx23885[0]:  iq 3: 0x00000000 [ arg #2 ]
[ 1001.880113] cx23885[0]:  (0x000105c0) iq 4: 0x18000100 [ write sol count=256 ]
[ 1001.880117] cx23885[0]:  iq 5: 0x7b570f00 [ arg #1 ]
[ 1001.880120] cx23885[0]:  iq 6: 0x00000000 [ arg #2 ]
[ 1001.880122] cx23885[0]:  (0x000105cc) iq 7: 0x14000400 [ write eol count=1024 ]
[ 1001.880126] cx23885[0]:  iq 8: 0x7c89d000 [ arg #1 ]
[ 1001.880129] cx23885[0]:  iq 9: 0x00000000 [ arg #2 ]
[ 1001.880131] cx23885[0]:  (0x000105d8) iq a: 0x1c000500 [ write sol eol count=1280 ]
[ 1001.880135] cx23885[0]:  iq b: 0x7c89d900 [ arg #1 ]
[ 1001.880138] cx23885[0]:  iq c: 0x00000000 [ arg #2 ]
[ 1001.880140] cx23885[0]:  (0x000105e4) iq d: 0x15c0dc92 [ write eol irq1 23 22 resync 14 12 count=3218 ]
[ 1001.880146] cx23885[0]:  iq e: 0xd975cc0e [ arg #1 ]
[ 1001.880148] cx23885[0]:  iq f: 0x13c61431 [ arg #2 ]
[ 1001.880150] cx23885[0]: fifo: 0x00000040 -> 0x2840
[ 1001.880151] cx23885[0]: ctrl: 0x000105b0 -> 0x10610
[ 1001.880154] cx23885[0]:  ptr1_reg: 0x00000040
[ 1001.880156] cx23885[0]:  ptr2_reg: 0x000107b8
[ 1001.880158] cx23885[0]:  cnt1_reg: 0x00000000
[ 1001.880161] cx23885[0]:  cnt2_reg: 0x0000000b
[ 1001.880165] cx23885[0]/0: [ffff880078545e00/0] timeout - dma=0xaf9e4000
[ 1001.880167] cx23885[0]/0: [ffff880078545000/1] timeout - dma=0xa7c10000

One such block per second (exactly). After this, digital TV no longer works and even unloading and reloading the kernel module won't help - I have to reboot the machine to get it going again.

Google only turned up a few listserv posts from 2008, none of which are of any use - they only tell me that some people got it working at some point, not how.

I am using kernel 2.6.36 built for amd64, with the cx23885 driver included with that kernel, and the firmware linked from the wiki page:

electrode@baphomet:/lib/firmware$ md5sum v4l-cx23885*
b3704908fd058485f3ef136941b2e513  v4l-cx23885-avcore-01.fw
1cb3c48a6684126f5e503a434f2d636b  v4l-cx23885-enc.fw

lspci -v for the card:

90:00.0 Multimedia video controller: Conexant Systems, Inc. Hauppauge Inc. HDPVR-1250 model 1196 (rev 0f)
        Subsystem: Hauppauge computer works Inc. Device 7801
        Flags: bus master, fast devsel, latency 0, IRQ 40
        Memory at d8200000 (64-bit, non-prefetchable) [size=2M]
        Capabilities: [40] Express Endpoint, MSI 00
        Capabilities: [80] Power Management version 2
        Capabilities: [90] Vital Product Data
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Kernel driver in use: cx23885
        Kernel modules: cx23885

So, has anyone RECENTLY gotten analog capture working on this card?

business_kid 11-07-2010 03:52 AM

You're only beaten when you run out of ideas.

If you have to reboot the machine, chances are something is going belly up as soon as you ask for analog video, then you're not stopping it, so you have to reboot.

Does pstree, or top give you any clues? I would run sshd there and ssh into the box for a console on the fault condition. Then you can hunt around.

Electrode 11-07-2010 03:31 PM

No, nothing is running that is accessing the card. Attempting to modprobe the driver again after modprobe -r'ing it gives this:


[146884.972951] cx23885 driver version 0.0.2 loaded
[146884.973116] cx23885 0000:90:00.0: PCI INT A -> Link[LNK3] -> GSI 17 (level, high) -> IRQ 17
[146884.973310] CORE cx23885[0]: subsystem: 0070:7801, board: Hauppauge WinTV-HVR1800 [card=2,autodetected]
[146885.377574] tveeprom 7-0050: Hauppauge model 78521, rev C1E9, serial# 3130595
[146885.377578] tveeprom 7-0050: MAC address is 00:0d:fe:2f:c4:e3
[146885.377580] tveeprom 7-0050: tuner model is Philips 18271_8295 (idx 149, type 54)
[146885.377583] tveeprom 7-0050: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
[146885.377585] tveeprom 7-0050: audio processor is CX23887 (idx 42)
[146885.377587] tveeprom 7-0050: decoder processor is CX23887 (idx 37)
[146885.377588] tveeprom 7-0050: has radio
[146885.377590] cx23885[0]: hauppauge eeprom: model=78521
[146885.381258] cx25840 9-0044: likely a confused/unresponsive cx2388[578] A/V decoder found @ 0x88 (cx23885[0])
[146885.381261] cx25840 9-0044: A method to reset it from the cx25840 driver software is not known at this time
[146885.385658] tuner 8-0042: chip found @ 0x84 (cx23885[0])
[146885.415369] tda829x 8-0042: setting tuner address to 60
[146885.439738] tda18271 8-0060: creating new instance
[146885.469373] TDA18271HD/C1 detected @ 8-0060
[146886.359370] tda829x 8-0042: type set to tda8295+18271
[146887.237578] cx23885[0]/0: registered device video1 [v4l2]
[146888.087606] cx23885[0]: registered device video2 [mpeg]
[146888.087613] cx23885_dvb_register() allocating 1 frontend(s)
[146888.087618] cx23885[0]: cx23885 based dvb card
[146888.125571] MT2131: successfully identified at address 0x61
[146888.127235] DVB: registering new adapter (cx23885[0])
[146888.127241] DVB: registering adapter 2 frontend 0 (Samsung S5H1409 QAM/8VSB Frontend)...
[146888.127666] cx23885_dev_checkrevision() Hardware revision = 0xb1
[146888.127673] cx23885[0]/0: found at 0000:90:00.0, rev: 15, irq: 17, latency: 0, mmio: 0xd8200000
[146888.127681] cx23885 0000:90:00.0: setting latency timer to 64
[146888.127739] cx23885 0000:90:00.0: irq 40 for MSI/MSI-X

Trying to tune DTV after doing this:

[146920.576869] do_IRQ: 1.113 No irq handler for vector (irq -1)
The frontend tunes but there is no output from demux/dvr. Analog still does not work.

Electro 11-07-2010 07:20 PM

I have seen and experience the same issue that you are having when I start fiddling with the settings for Hauppauge PVR-250. It is best to unload all modules for your card and wait for about 30 minutes and try again. If that does not work, you have to shutdown your computer completely and wait for a few minutes and turn it on again. Heat also causes problems, so put any PVR card far away from any high heat generating sources. Raw video capture cards works a lot easier because they do not require firmware.

Your card is only a PVR card and not a raw video capture card. Also you will have to select the input. Use v4l-ctl to change the input. If you are using mplayer and it is compile to include ivtv or PVR, you can specify the input on the same line. After you change the input, set the recording to a good default like a DVD format. It can take about two to five minutes for it to settle on the input and the recording format.

Electrode 11-07-2010 07:57 PM

Recompiling mplayer with PVR support now. From what you say, this won't work:

mplayer -tv device=/dev/video1:input=1 tv://
Given that the devnodes are video1 for v4l2/raw and video2 for MPEG, and I want to capture from the S-Video input, what should I use?

Electro 11-08-2010 01:06 AM


Originally Posted by Electrode (Post 4152156)
Recompiling mplayer with PVR support now. From what you say, this won't work:

mplayer -tv device=/dev/video1:input=1 tv://
Given that the devnodes are video1 for v4l2/raw and video2 for MPEG, and I want to capture from the S-Video input, what should I use?

That is only for raw capture cards. Your card is not a raw capture card. You have to use the pvr option.

Normally, /dev/video0 is the first capture card and /dev/video1 is the second video capture card. It does not relate to separate inputs. Assuming /dev/video0 is your Hauppauge WinTV HVR-1800, you have to tell it to switch to the input that you want using the utility V4l2-ctl. You will have to find out what device node your Hauppauge WinTV HVR-1800 is at before using the utility v4l2-ctl. The following is how to switch to a different input assuming that S-video is input 2 and the pvr is at /dev/video0.

v4l2-ctl -i 2 -d /dev/video0

Go to the following for more information about v4l2-ctl.

I have not used the pvr option in Mplayer, so I do not know how well that works. If you want to use Mplayer and assuming /dev/video0 is your PVR card, do the following.

mplayer /dev/video0

From the logs, I can not tell you for sure what device node your PVR card is at. The logs are too truncated. I prefer to see the whole thing from beginning of boot up.

All times are GMT -5. The time now is 07:43 PM.