[mythtv-users] OT - getting capture card to work

Klaas de Waal klaas.de.waal at gmail.com
Wed Sep 16 16:15:01 UTC 2020


On Wed, 16 Sep 2020 at 17:41, Matt Zagrabelny <mzagrabe at d.umn.edu> wrote:

> Greetings,
>
> This is  a little off topic - I'm struggling to get my capture card to
> work.
>
> I'm starting with w_scan and mplayer to test things out before configuring
> Myth.
>
> Here is my card, it is a Hauppauge WinTV Quad HD PCIe:
>
> $ lspci -vvv
> [snip]
> 03:00.0 Multimedia video controller: Conexant Systems, Inc. CX23887/8 PCIe
> Broadcast Audio and Video Decoder with 3D Comb (rev 04)
>         Subsystem: Hauppauge computer works Inc. WinTV-quadHD
>         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> ParErr- Stepping- SERR- FastB2B- DisINTx-
>         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Latency: 0, Cache Line Size: 64 bytes
>         Interrupt: pin A routed to IRQ 19
>         IOMMU group: 11
>         Region 0: Memory at a1200000 (64-bit, non-prefetchable) [size=2M]
>         Capabilities: <access denied>
>         Kernel driver in use: cx23885
>         Kernel modules: cx23885
>
> 04:00.0 Multimedia video controller: Conexant Systems, Inc. CX23887/8 PCIe
> Broadcast Audio and Video Decoder with 3D Comb (rev 04)
>         Subsystem: Hauppauge computer works Inc. CX23887/8 PCIe Broadcast
> Audio and Video Decoder with 3D Comb
>         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> ParErr- Stepping- SERR- FastB2B- DisINTx-
>         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Latency: 0, Cache Line Size: 64 bytes
>         Interrupt: pin A routed to IRQ 16
>         IOMMU group: 12
>         Region 0: Memory at a1000000 (64-bit, non-prefetchable) [size=2M]
>         Capabilities: <access denied>
>         Kernel driver in use: cx23885
>         Kernel modules: cx23885
>
> It seems that the kernel is recognizing it okay:
>
> $ sudo journalctl -k -b
> [snip]
> Aug 15 19:59:23 zeus kernel: cx23885: cx23885 driver version 0.0.4 loaded
> Aug 15 19:59:23 zeus kernel: cx23885: CORE cx23885[0]: subsystem:
> 0070:6a18, board: Hauppauge WinTV-QuadHD-ATSC [card=57,autodetected]
> Aug 15 19:59:23 zeus kernel: tveeprom: Hauppauge model 165100, rev B4I6,
> serial# 4036150199
> Aug 15 19:59:23 zeus kernel: tveeprom: MAC address is 00:0d:fe:92:c3:b7
> Aug 15 19:59:23 zeus kernel: tveeprom: tuner model is SiLabs Si2157 (idx
> 186, type 4)
> Aug 15 19:59:23 zeus kernel: tveeprom: TV standards NTSC(M) ATSC/DVB
> Digital (eeprom 0x88)
> Aug 15 19:59:23 zeus kernel: tveeprom: audio processor is CX23888 (idx 40)
> Aug 15 19:59:23 zeus kernel: tveeprom: decoder processor is CX23888 (idx
> 34)
> Aug 15 19:59:23 zeus kernel: tveeprom: has no radio, has IR receiver, has
> no IR transmitter
> Aug 15 19:59:23 zeus kernel: cx23885: cx23885[0]: hauppauge eeprom:
> model=165100
> Aug 15 19:59:23 zeus kernel: cx25840 8-0044: cx23888 A/V decoder found @
> 0x88 (cx23885[0])
> Aug 15 19:59:23 zeus kernel: cx25840 8-0044: firmware: direct-loading
> firmware v4l-cx23885-avcore-01.fw
> Aug 15 19:59:23 zeus kernel: cx25840 8-0044: loaded
> v4l-cx23885-avcore-01.fw firmware (16382 bytes)
> Aug 15 19:59:23 zeus kernel: cx23885: cx23885_dvb_register() allocating 1
> frontend(s)
> Aug 15 19:59:23 zeus kernel: cx23885: cx23885[0]: cx23885 based dvb card
> Aug 15 19:59:23 zeus kernel: cx23885: dvb_register(): board=57 port=1
> Aug 15 19:59:23 zeus kernel: si2157 7-0060: Silicon Labs
> Si2147/2148/2157/2158 successfully attached
> Aug 15 19:59:23 zeus kernel: dvbdev: DVB: registering new adapter
> (cx23885[0])
> Aug 15 19:59:23 zeus kernel: cx23885 0000:03:00.0: DVB: registering
> adapter 0 frontend 0 (LG Electronics LGDT3306A VSB/QAM Frontend)...
>
> Using w_scan seems to find some frequencies that are usable:
>
> $ w_scan -fa -A1 -c US -X
> w_scan -fa -A1 -c US -X
> w_scan version 20170107 (compiled for DVB API 5.11)
> using settings for UNITED STATES
> ATSC
> VSB US/CA, DVB-T TW
> scan type TERRCABLE_ATSC, channellist 1
> output format czap/tzap/szap/xine
> WARNING: could not guess your codepage. Falling back to 'UTF-8'
> output charset 'UTF-8', use -C <charset> to override
> Info: using DVB adapter auto detection.
>         /dev/dvb/adapter0/frontend0 -> TERRCABLE_ATSC "LG Electronics
> LGDT3306A VSB/QAM Frontend": good :-)
>         /dev/dvb/adapter1/frontend0 -> TERRCABLE_ATSC "LG Electronics
> LGDT3306A VSB/QAM Frontend": good :-)
>         /dev/dvb/adapter2/frontend0 -> TERRCABLE_ATSC "LG Electronics
> LGDT3306A VSB/QAM Frontend": good :-)
>         /dev/dvb/adapter3/frontend0 -> TERRCABLE_ATSC "LG Electronics
> LGDT3306A VSB/QAM Frontend": good :-)
> Using TERRCABLE_ATSC frontend (adapter /dev/dvb/adapter0/frontend0)
> -_-_-_-_ Getting frontend capabilities-_-_-_-_
> Using DVB API 5.11
> frontend 'LG Electronics LGDT3306A VSB/QAM Frontend' supports
> INVERSION_AUTO
> 8VSB
> QAM_64
> QAM_256
> FREQ (54.00MHz ... 858.00MHz)
> -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
> 57000: 8VSB(time: 00:00.428)
> 63000: 8VSB(time: 00:03.560)
> 69000: 8VSB(time: 00:06.692)
> 79000: 8VSB(time: 00:09.824)
> 85000: 8VSB(time: 00:12.956)
> 177000: 8VSB(time: 00:16.088)
> 183000: 8VSB(time: 00:19.216)         signal ok:        8VSB     f=183000
> kHz (0:0:0)
> 189000: 8VSB(time: 00:19.912)
> [snip]
>
> When I try to use that frequency in mplayer I don't get the video like I
> would expect:
>
> $ grep WDSEpbs ~/.mplayer/channels.conf
> WDSEpbs:183000000:8VSB:49:52:1
>
> $ mplayer dvb://WDSEpbs
> MPlayer 1.3.0 (Debian), built with gcc-10 (C) 2000-2016 MPlayer Team
> do_connect: could not connect to socket
> connect: No such file or directory
> Failed to open LIRC support. You will not be able to use your remote
> control.
>
> Playing dvb://WDSEpbs.
> dvb_tune Freq: 183000000
> dvb_streaming_read, attempt N. 6 failed with errno 0 when reading 4096
> bytes
> dvb_streaming_read, attempt N. 5 failed with errno 0 when reading 4096
> bytes
> dvb_streaming_read, attempt N. 4 failed with errno 0 when reading 4096
> bytes
> dvb_streaming_read, attempt N. 3 failed with errno 0 when reading 4096
> bytes
> dvb_streaming_read, attempt N. 2 failed with errno 0 when reading 4096
> bytes
> dvb_streaming_read, attempt N. 1 failed with errno 0 when reading 4096
> bytes
> dvb_streaming_read, return 0 bytes
>
> Exiting... (End of file)
>
> And I don't get any output.
>
> If I look at the kernel messages I see some cryptic information:
>
> $ sudo journalctl -k
> [snip]
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]: mpeg risc op code error
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]: TS1 B - dma channel
> status dump
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: init risc lo   :
> 0xff17f000
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: init risc hi   :
> 0x00000000
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: cdt base       :
> 0x00010870
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: cdt size       :
> 0x0000000a
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: iq base        :
> 0x00010630
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: iq size        :
> 0x00000010
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: risc pc lo     :
> 0xff17f018
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: risc pc hi     :
> 0x00000000
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: iq wr ptr      :
> 0x00004192
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: iq rd ptr      :
> 0x0000418c
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: cdt current    :
> 0x00010888
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: pci target lo  :
> 0xff27ac10
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: pci target hi  :
> 0x00000000
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   cmds: line / byte    :
> 0x000f0000
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   risc0:
> Sep 16 10:28:27 zeus kernel: 0x1c0002f0 [ write sol eol count=752 ]
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   risc1:
> Sep 16 10:28:27 zeus kernel: 0xff27a920 [ INVALID sol eol irq2 irq1 21 18
> cnt1 cnt0 resync 13 count=2336 ]
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   risc2:
> Sep 16 10:28:27 zeus kernel: 0x00000000 [ INVALID count=0 ]
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   risc3:
> Sep 16 10:28:27 zeus kernel: 0x1c0002f0 [ write sol eol count=752 ]
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   (0x00010630) iq 0:
> Sep 16 10:28:27 zeus kernel: 0x1c0002f0 [ write sol eol count=752 ]
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   iq 1: 0xff27af00 [ arg
> #1 ]
> Sep 16 10:28:27 zeus kernel: cx23885: cx23885[0]:   iq 2: 0x00000000 [ arg
> #2 ]
>
> The top line in the above kernel messages is highlighted red:
>
> mpeg risc op code error
>
> and I've searched on that string, but didn't get much for answers.
>
> Does anyone have any insight for what I'm missing here?
>
>
> This can be a firmware issue.The "mpeg risc opcode error" could refer to
code that is running on the cx23885 chip.
 Maybe there is newer/better firmware for the chips on your card. Firmware
can be downloaded
https://github.com/OpenELEC/dvb-firmware/tree/master/firmware
It can be that your firmware file has become corrupt so downloading the
latest and comparing (sum <filename>) is a good idea.

It can also be a device driver issue. You could try a different
distribution with a Live CD (or Live USB stick nowadays) and see if that
makes a difference.
Or you can install the device driver set from TBS (tbsdtv.com). They use
the latest drivers from linuxtv.org and then add their own fixes. You have
to clone their git and then compile it yourself.

Klaas.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mythtv.org/pipermail/mythtv-users/attachments/20200916/a332ea55/attachment.htm>


More information about the mythtv-users mailing list