Comprei a placa de TV
Visus Xtreme PCI-e VI8507, porém estou com dificuldades em fazê-la funcionar no meu sistema. Essa é uma placa relativamente nova no mercado, mas descobri que ela é, na verdade, uma
Geniatech/MyGica X8507 remarcada. Observando as fotos da MyGica é notável a semelhança entre ela e a Visus. As placas são idênticas. A seguir a saída do comando
lspci -vvvnn:
02:00.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23885 PCI Video and Audio Decoder [14f1:8852] (rev 02)
Subsystem: Conexant Systems, Inc. Device [14f1:8502]
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 18
Region 0: Memory at dfc00000 (64-bit, non-prefetchable) [size=2M]
Capabilities: [40] Express (v1) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <2us, L1 <4us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [90] Vital Product Data
Product Name: "
End
Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
AERCap: First Error Pointer: 14, GenCap- CGenEn- ChkCap- ChkEn-
Capabilities: [200 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed+ WRR32+ WRR64+ WRR128-
Ctrl: ArbSelect=WRR64
Status: InProgress-
Port Arbitration Table [240] <?>
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
Status: NegoPending- InProgress-
Kernel driver in use: cx23885
Kernel modules: cx23885
Quando tentei utilizá-la pela primeira vez, o Tvtime não encontrava a placa de jeito nenhum gerando a mensagem “Arquivo ou diretório não encontrado | Não é possível abrir o dispositivo de captura /dev/video0”. De acordo com o comando
dmesg | grep cx23885, a minha placa não era reconhecida pelo driver:
cx23885 0000:02:00.0: PCI INT A disabled
cx23885 driver version 0.0.2 loaded
cx23885 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
cx23885[0]: Your board isn't known (yet) to the driver.
cx23885[0]: Try to pick one of the existing card configs via
cx23885[0]: card=<n> insmod option. Updating to the latest
cx23885[0]: version might help as well.
cx23885[0]: Here is a list of valid choices for the card=<n> insmod option:
cx23885[0]: card=0 -> UNKNOWN/GENERIC
cx23885[0]: card=1 -> Hauppauge WinTV-HVR1800lp
cx23885[0]: card=2 -> Hauppauge WinTV-HVR1800
cx23885[0]: card=3 -> Hauppauge WinTV-HVR1250
cx23885[0]: card=4 -> DViCO FusionHDTV5 Express
cx23885[0]: card=5 -> Hauppauge WinTV-HVR1500Q
cx23885[0]: card=6 -> Hauppauge WinTV-HVR1500
cx23885[0]: card=7 -> Hauppauge WinTV-HVR1200
cx23885[0]: card=8 -> Hauppauge WinTV-HVR1700
cx23885[0]: card=9 -> Hauppauge WinTV-HVR1400
cx23885[0]: card=10 -> DViCO FusionHDTV7 Dual Express
cx23885[0]: card=11 -> DViCO FusionHDTV DVB-T Dual Express
cx23885[0]: card=12 -> Leadtek Winfast PxDVR3200 H
cx23885[0]: card=13 -> Compro VideoMate E650F
cx23885[0]: card=14 -> TurboSight TBS 6920
cx23885[0]: card=15 -> TeVii S470
cx23885[0]: card=16 -> DVBWorld DVB-S2 2005
cx23885[0]: card=17 -> NetUP Dual DVB-S2 CI
cx23885[0]: card=18 -> Hauppauge WinTV-HVR1270
cx23885[0]: card=19 -> Hauppauge WinTV-HVR1275
cx23885[0]: card=20 -> Hauppauge WinTV-HVR1255
cx23885[0]: card=21 -> Hauppauge WinTV-HVR1210
cx23885[0]: card=22 -> Mygica X8506 DMB-TH
cx23885[0]: card=23 -> Magic-Pro ProHDTV Extreme 2
cx23885[0]: card=24 -> Hauppauge WinTV-HVR1850
cx23885[0]: card=25 -> Compro VideoMate E800
cx23885[0]: card=26 -> Hauppauge WinTV-HVR1290
cx23885[0]: card=27 -> Mygica X8558 PRO DMB-TH
CORE cx23885[0]: subsystem: 14f1:8502, board: UNKNOWN/GENERIC [card=0,autodetected]
cx23885[0]: scan bus 0:
cx23885[0]: i2c scan: found device @ 0x20 [???]
cx23885[0]: i2c scan: found device @ 0x66 [???]
cx23885[0]: i2c scan: found device @ 0xa0 [eeprom]
cx23885[0]: i2c scan: found device @ 0xa4 [???]
cx23885[0]: i2c scan: found device @ 0xa8 [???]
cx23885[0]: i2c scan: found device @ 0xac [???]
cx23885[0]: scan bus 1:
cx23885[0]: i2c scan: found device @ 0xc2 [tuner/mt2131/tda8275/xc5000/xc3028]
cx23885[0]: scan bus 2:
cx23885[0]: i2c scan: found device @ 0x66 [???]
cx23885[0]: i2c scan: found device @ 0x88 [cx25837]
cx23885[0]: i2c scan: found device @ 0x98 [???]
cx23885_dev_checkrevision() Hardware revision = 0xb0
cx23885[0]/0: found at 0000:02:00.0, rev: 2, irq: 18, latency: 0, mmio: 0xdfc00000
cx23885 0000:02:00.0: setting latency timer to 64
IRQ 18/cx23885[0]: IRQF_DISABLED is not guaranteed on shared IRQs
cx23885 0000:02:00.0: PCI INT A disabled
Fui orientado a utilizar o comando
modprobe cx23885 card=nn i2c_scan=1, onde “nn” deveria ser um número de 1 a 27. A cada número utilizado no comando, era necessário abrir o Tvtime e verificar se a placa era reconhecida. Somente os números 22 e 23 fizeram a placa funcionar. Com isso o comando
dmesg | grep cx23885 passou a retornar o seguinte:
cx23885 0000:02:00.0: PCI INT A disabled
cx23885 driver version 0.0.2 loaded
cx23885 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
CORE cx23885[0]: subsystem: 14f1:8502, board: Magic-Pro ProHDTV Extreme 2 [card=23,insmod option]
cx25840 2-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0])
cx25840 2-0044: firmware: requesting v4l-cx23885-avcore-01.fw
cx25840 2-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes)
tuner 1-0061: chip found @ 0xc2 (cx23885[0])
cx23885[0]/0: registered device video0 [v4l2]
cx23885 0000:02:00.0: firmware: requesting dvb-fe-xc5000-1.6.114.fw
cx23885_dvb_register() allocating 1 frontend(s)
cx23885[0]: cx23885 based dvb card
DVB: registering new adapter (cx23885[0])
cx23885_dev_checkrevision() Hardware revision = 0xb0
cx23885[0]/0: found at 0000:02:00.0, rev: 2, irq: 18, latency: 0, mmio: 0xdfc00000
cx23885 0000:02:00.0: setting latency timer to 64
IRQ 18/cx23885[0]: IRQF_DISABLED is not guaranteed on shared IRQs
Com isso eu consegui sintonizar todos os canais com boa imagem, no entanto o áudio não sai, independentemente da configuração utilizada no Tvtime.
Percebi que o Tvtime, quando executado a partir do Terminal, exibe algumas mensagens de erro relacionada ao mixer do sistema:
mixer: find error: Sucesso
mixer: Can't open mixer default, mixer volume and mute unavailable.
mixer: Can't open device default/Line, mixer volume and mute unavailable.
Pesquisando sobre o assunto descobri que seria necessário iniciar o Tvtime com os argumentos
--mixer=hw:0/Line para que as mensagens de erro desaparecessem. Fiz isso e, de fato, as mensagens desapareceram, porém a TV continua sem áudio.
Não sei mais o que tentar, por isso venho pedir ajuda aos demais colegas para ver se alguém mais tem alguma ideia de como fazer essa placa funcionar no Linux, pois já vai fazer um ano que a comprei, mas nunca a usei!
Grato pela atenção.