Placa de TV não funciona corretamente no Linux

Iniciado por Lucas R, 11 de Fevereiro de 2012, 23:11

tópico anterior - próximo tópico

Lucas R

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.

Tota

Ola

Você não citou se ajustou o tuner de sua placa.

Toda placa de captura deve ter um card e um tuner

Você acertou o card e tem imagem, mas pode não ter acertado o tuner e por isto não ter som.

[]'s

Lucas R

Citação de: Tota online 12 de Fevereiro de 2012, 12:18
Ola

Você não citou se ajustou o tuner de sua placa.

Toda placa de captura deve ter um card e um tuner

Você acertou o card e tem imagem, mas pode não ter acertado o tuner e por isto não ter som.

[]'s
Olá Tota.

E como devo proceder para ajustar o tuner?

Obrigado pela atenção.

Tota


Lucas R

Citação de: Tota online 12 de Fevereiro de 2012, 19:16
Da mesma forma que ajustou o cards.
Ou seja, descobrir o tuner da minha placa e acrescentá-lo ao comando modprobe, tal como modprobe cx23885 card=23 tuner=nn, onde "nn" é o número correspondente ao tuner.

OK, eu não consegui descobrir o número do tuner através da opção i2c_scan, mas de acordo com o video4linux número correspondente ao Xceive XC5000 é o 76.

De posse dessa informação fui até o Terminal e digitei sudo modprobe cx23885 card=23 tuner=76, teclei ENTER e, para a minha surpresa, o comando retornou o seguinte:

FATAL: Error inserting cx23885 (/lib/modules/3.0.0-15-generic/kernel/drivers/media/video/cx23885/cx23885.ko): Unknown symbol in module, or unknown parameter (see dmesg)

Como não havia detalhes do que aconteceu de errado, segui a sugestão da mensagem de erro e dei uma olhada no dmesg.  Apareceu o seguinte:

[32816.846849] cx23885: Unknown parameter `tuner'

Com isso não consigo definir um número para o tuner, pois o parâmetro não é reconhecido.

O que fazer agora?  ???

Lucas R

Diante da mensagem de que o parâmetro "tuner" era desconhecido ao módulo, resolvi procurar se havia alguma maneira de descobrir os parâmetros válidos e achei o comando modinfo cx23885 -F parm, que faz exatamente isso. A saída do comando:

ci_dbg:Enable CI debugging (int)
ci_irq_enable:Enable IRQ from CAM (int)
ir_888_debug:enable debug messages [CX23888 IR controller] (int)
mpegbufs:number of mpeg buffers, range 2-32 (int)
mpeglines:number of lines in an MPEG buffer, range 2-32 (int)
mpeglinesize:number of bytes in each line of an MPEG buffer, range 512-1024 (int)
v4l_debug:enable V4L debug messages (int)
alt_tuner:Enable alternate tuner configuration (int)
adapter_nr:DVB adapter numbers (array of short)
i2c_debug:enable debug messages [i2c] (int)
i2c_scan:scan i2c bus at insmod time (int)
debug:enable debug messages (int)
card:card type (array of int)
vbibufs:number of vbi buffers, range 2-32 (int)
vbi_debug:enable debug messages [vbi] (int)
video_nr:video device numbers (array of int)
vbi_nr:vbi device numbers (array of int)
radio_nr:radio device numbers (array of int)
video_debug:enable debug messages [video] (int)
irq_debug:enable debug messages [IRQ handler] (int)
vid_limit:capture memory limit in megabytes (int)
enable_885_ir:Enable integrated IR controller for supported
    CX2388[57] boards that are wired for it:
HVR-1250 (reported safe)
TeVii S470 (reported unsafe)
    This can cause an interrupt storm with some cards.
    Default: 0 [Disabled] (int)

De fato não havia o parâmetro "tuner", mas havia o "alt_tuner", que parece ter a mesma função.

No entanto testei com os 87 tuners listados na relação do video4linux e nenhum deles fez com que o som saísse.

Com isso eu só posso concluir que há alguma coisa além do tuner que está impedindo o som de sair. Alguma idéia do que mais seria?

Tota

Ola

Não consegui ver o parametro => sound0 ou algo parecido ma saida de seu dmesg

Bem, como não tenho esta placa, só posso sugerir:

1) entrar no gerenciador de pacotes synaptic

2) pesquisar por => pulse

3) instalar:

paprefs
pavucontrol
paman

4) Ir em => Aplicativos => Multimidia => controle de volume do pulseaudio

5) verificar se o modulo de sua placa pode ser selecionado pelo pulseaudio

[]'s

Lucas R

Instalei o Controle de volume do PulseAudio, mas o módulo da minha placa não aparece lá.

A propósito, descobri que o meu computador não está conseguindo capturar áudio nem pela entrada de linha da placa de som e nem pelo microfone.

Acredito que isso esteja relacionado ao fato de eu não ter áudio na captura de TV.

alfredo_

#8
Olá
Olhe nessa direção eu encontrei uma solução para a parte analógica do mygica (é o castelhano). Talvez você servir
Eu acho que com modificações muito poucos vai funcionar.

http://ubuntuforums.org/showthread.php?t=1779987

Desculpem meu português ruim, eu estou usando o google para escrever.

Citação de: Lucas R online 11 de Fevereiro de 2012, 23:11
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:


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.

gpborges

Pessoal, estou no mesmo barco e já briguei demais também mas há um tempo atrás. Tenho um HTPC rodando Ubuntu 10.04 LTS (x86) + XBMC 10 (Dharma) onde tenho essa placa instalada. Tenho uma boa antena proeletronic externa, e consigo captar os canais aqui da minha região (Sumaré, próximo de Campinas-SP) no Windows7 que usei pra validar minha instalação da antena, sinal, etc...

Logo logo quero fazer o upgrade do meu HTPC para o Ubuntu 12.04 LTS (x86) + XBMC 11 (Eden) + PVR para tentar usar essa placa. Vou acompanhar os trabalhos por aqui e no que puder ajudar...

Vcs já viram esse link aqui? Eles descrevem um setup e alguns dizem funcionar... vejam o que acham:

http://ubuntuperonista.blogspot.com.br/2011/01/se-suman-cuatro-nuevas-senales-la-tv.html

Abs!

alfredo_

Olá

Não perca tempo com essa página
Citação de: gpborges online 06 de Junho de 2012, 01:12

http://ubuntuperonista.blogspot.com.br/2011/01/se-suman-cuatro-nuevas-senales-la-tv.html

Abs!

e seguir o link que eu coloquei. <http://ubuntuforums.org/showthread.php?t=1779987>
Usa o kernel 3.2 e não 3,3
Substituído. Subdevice = 0x8502, por favor. Subdevice = 0x8852 em cx23885-cards.c
Eu não posso ver que ele funciona, mas é muito provável.

sorte

gpborges

Olá Alfredo! Obrigado pelos direcionamentos. Acho que semana que vem, ou no máximo na outra devo conseguir testar e aí vou postando os resultados aqui!

Obrigado!

alfredo_

#12
Olá

É mais fácil tentar: modprobe cx23885 card=33

Isto requer um kernel 3.4 ou superior.

Eu também serviu para o cartão Leadership

Se funcionar, por favor avise.

Citação de: alfredo_ online 06 de Junho de 2012, 22:33
Olá

Não perca tempo com essa página
Citação de: gpborges online 06 de Junho de 2012, 01:12

http://ubuntuperonista.blogspot.com.br/2011/01/se-suman-cuatro-nuevas-senales-la-tv.html

Abs!

e seguir o link que eu coloquei. <http://ubuntuforums.org/showthread.php?t=1779987>
Usa o kernel 3.2 e não 3,3
Substituído. Subdevice = 0x8502, por favor. Subdevice = 0x8852 em cx23885-cards.c
Eu não posso ver que ele funciona, mas é muito provável.

sorte