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

Matt Zagrabelny mzagrabe at d.umn.edu
Wed Sep 16 16:59:41 UTC 2020


On Wed, Sep 16, 2020 at 11:15 AM Klaas de Waal <klaas.de.waal at gmail.com>
wrote:

>
>
> 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.
>

Looks to be the same checksum:

$ md5sum `locate v4l-cx23885-avcore-01.fw` /tmp/v4l-cx23885-avcore-01.fw
a9f8f5d901a7fb42f552e1ee6384f3bb  /usr/lib/firmware/v4l-cx23885-avcore-01.fw
a9f8f5d901a7fb42f552e1ee6384f3bb  /tmp/v4l-cx23885-avcore-01.fw

hmmm...


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.
>

Okay. Thanks for the suggestions. I'll keep digging!

-m
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mythtv.org/pipermail/mythtv-users/attachments/20200916/950c4a42/attachment-0001.htm>


More information about the mythtv-users mailing list