Configurando a PixelView PlayTV STBVD Hybrid no Ubuntu 11.04

Olá a todos. Não é novidade que um dos dispositivos mais complicados de configurar no GNU/Linux é uma placa de TV. É preciso cuidados para adquirir uma pensando em usar nesse sistema senão fica-se sem usar esse hardware. Como exemplo pego a PlayTV STBVD Hybrid, que obteve suporte recentemente no kernel Linux.

[ Hits: 15.303 ]

Por: José Humberto da Silva Soares em 31/05/2011


Introdução



Olá a todos. Não é novidade que um dos dispositivos mais complicados de configurar no GNU/Linux é uma placa de TV. É preciso cuidados para adquirir uma pensando em usar nesse sistema se não fica-se sem usar esse hardware. Como exemplo pego a PlayTV STBVD Hybrid, que obteve suporte recentemente no kernel Linux.

O adaptador USB PlayTV STBVD Hybrid é um dos produtos da PixelView lançados no Brasil lançados a pouco tempo com suporte a TV digital e também TV analógica, Rádio, Svideo e outros. A partir do kernel 2.6.38 esse adaptador USB da PixelView passou a ser reconhecido no GNU/Linux, mas ainda não há assistentes na maioria das distribuições que a deixem pronta para uso. O artigo aqui procura mostrar como realizar essa configuração manualmente (pelo menos relativo a parte analógica), na parte que se refere dizer aos players de TV qual o dispositivo correto que aponta para a Hybrid e no som. Usaremos o TVTime para assistir TV, pois apresenta uma qualidade de imagem excepcional em comparação com outros programas do gênero.

Outro ajuste que precisa ser feito é em relação ao som, o qual o TVTime e outras aplicações por padrão não conseguem ter acesso por vários fatores, dentre eles pelo motivo de várias distribuições não habilitarem o sistema de som OSS no kernel e por usarem o Pulse Audio em seu lugar. Isso se deve também pelo próprio TVTime oficialmente ter tido a ultima versão lançada em 2005, e depois disso alguém adicionou alguns patchs ao programa, mas nada substancial para compatibilizá-lo com as novas tecnologias de som.

A base usada neste artigo é em cima do Ubuntu 11.04, usando um netbook Acer Aspire One D250, com Atom N270, 2GB de Memória DDR2 e HD de 160 GB, mas acredito em que qualquer versão de sistema ou em outras distros com o kernel 2.6.38 a Hybrid possa funcionar.

Bom, vamos aos passos:

Instalação dos programas necessários

É preciso redirecionar o áudio da Hybrid para as caixas de som. Será utilizado o sox para isso. Instale-o com:

# apt-get install sox

ou

sudo apt-get install sox

Agora o programa para assistir televisão, o TVTime:

# apt-get install tvtime

ou

sudo apt-get install tvtime

É possível que uma tela apareça perguntando pelo sistema de TV usado. Escolha na lista PAL-M, o qual é o usado no Brasil.

Obs.: Habilite no Synaptic todos os repositórios e tenha instalados os pacotes restritos, caso os passos deem erros.

Obtendo informações do Sistema

Do vídeo: Precisamos saber qual o dispositivo criado pelo sistema para a Hybrid. Se o seu sistema não tiver nenhuma webcam instalada ou outro dispositivo de vídeo semelhante, a TV estará em /dev/video0. Caso contrário haverá vários devs de video. Veja-os com:

ls -l /dev/video*

Se a Hybrid foi conectada por ultimo, ela será o dispositivo com maior número (Exemplo: /dev/video1 ou maior). Anote-o para o passo seguinte.

Obs.: se o seu sistema tem mais de uma placa de captura, preste atenção que cada uma tem além de um videon (n é o id do dispositivo) um vbi, que é relativo a seleção de canais. Com:

ls -l /dev/vbi*

Você saberá quantos tem. Para o caso da Hybrid ter sido conectada por ultimo, o vbi será o de maior numero (Exemplo: /dev/vbi1). Para esse caso, anote-o também.

Do som:

Usando:

cat /proc/asound/cards

procure pela linha que tem a palavra Cx231xxAudio (entre outras informações), e anote número dela (Aqui o número mostrado é 1, pois 0 é relativo ao dispositivo da placa de som do computador).

Ajustando o TVTime

Se não há webcam ou outras placas de TV em seu sistema, pode pular para o próximo passo. Caso tenha, será preciso modificar as configurações do TVTime. Execute como root:

Exemplo:

# gedit /etc/tvtime/tvtime.xml

ou

# sudo gedit /etc/tvtime/tvtime.xml

Na seção V4LDevice, mude o value para o valor anotado do dispositivo correto da Hybrid. Exemplo:

De

<option name=”V4LDevice” value=”/dev/video0”/>

Para:

<option name=”V4LDevice” value=”/dev/video1”/>

Lá embaixo, se for o caso de ter mais de uma placa de captura no sistema, procure por VBIDevice, e mude o value do vbi para o qual você anotou.

Exemplo:

<option name=”VBIDevice” value=”/dev/vbi0”/>

Para:

<option name=”V4LDevice” value=”/dev/vbi1”/>

Salve as mudanças e saia do editor.

Criação do script

O script tem como função abrir o TVTime e simular que ele está abrindo o som normalmente. O que acontece que o som da Hybrid fica “aberto” no momento em que se está assistindo TV, de maneira que se um canal for mudado, o som muda junto, pois o vbi muda tanto o canal quando o som associado a ele. Só temos acesso ao fluxo vindo da placa.

Crie em um editor de texto o seguinte:

#!/bin/bash

sox -r 48000 -t alsa hw:1,0 -t alsa pulse &

mpid=$!

tvtime kill $mpid

O Sox pega dos dispositivos de som (o kernel os cria como parte do sistema de som Alsa) associados a Hybrid o áudio e o joga no pulseaudio, no caso vem da placa de TV e vai para a caixas de som. Veja a parte hw1,0. O “1” é justamente o id do dispositivo de som que vimos anteriormente. Mude esse “1” para o valor que você anotou previamente (do Cx231xxAudio), se for diferente. Caso não deixe como está. O mpid=$! e kill $mpid garantem que o som será fechado se o TVTime for fechado.

Salve o script como, por exemplo, tvsom.sh, na sua pasta pessoal ou em outro local que lhe pareça melhor.

Torne o script executável, com:

chmod +x tvsom.sh

Ou no Nautilus dê um botão direto do mouse em cima do arquivo, escolha propriedades, e na janela que surgir vá para a aba Permissões. Nela marque Permitir execução do arquivo como um programa. Clique por fim em Fechar.

Neste momento você já pode usar o script diretamente no terminal, com:

/onde/o/script/foi/salvo/tvsom.sh

E o TVTime abrirá. Veja que aparecerá um sinal de ruido ou nada.

Clique então com o botão direito dentro da tela do programa. Um menu básico aparece. Clique em Gestão de Canais, e no outro menu que surgir clique em Pesquisar canais por sinal. Aguarde enquanto o programa localiza todos os canais disponível. Quando terminar, você já pode assistir a sua TV, bastando digitar o número do canal ou usar, inclusive, o controle remoto para isso (funciona sim, apesar que não todos os botões).

Passo Extra: Criando um lançador na área de trabalho para o script de TV

Para deixar a abertura da TV mais prática e rápida (pelo menos pela interface gráfica), criaremos um atalho para o script na área de trabalho.

Na área de trabalho, clique com o botão direito do mouse, e no meu que surgir em Criar Lançador. Na janela que surgir, coloque um nome para o atalho, como por exemplo TVTimeIM (de TVTime IMproved, para dizer que é melhorado... Escolha o nome que for mais agradável para você). Deixe Tipo como Aplicativo. Em Comando clique em Navegar , e na janela Escolha um aplicativo..., selecione o script criado para abrir a sua TV com som e clique em Abrir. Em comando ainda, coloque sh antes do caminho do script, para ficar assim: Exemplo:

"sh /home/usuario/tvsom.sh"

Para deixar ainda mais expressivo, mude o ícone padrão do lançador (o que tem uma mola embaixo) clicando nele (é um botão na verdade). Aparece a janela Selecionar ícone personalizado. Clique em pixmaps na lista de Locais, e na lista de arquivos escolha, por exemplo: tvtime.png e clique em Abrir.

Terminado de configurar o lançador, clique em OK. O atalho para a TV está pronto. Sempre que executá-lo, o script ativará o sox para que o Tvtime pareça que está com som mesmo.

Agradecimos

Artigo só foi possível com as analises prévias e e procedimentos obtidos em cima da linha de dispositivos de TV Digital da PixelView presentes em vários site. Procurei sintetizar as ideias e deixar o passo a passo mais claro e detalhado.

Obrigado a:

José Antonio Rocha, com a analise da Hybrid e pelo script, em:
Dougsland: Bom proveito a todos!
   

Páginas do artigo
   1. Introdução
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Rumo a um pinguim móvel

Medindo a temperatura da CPU na PCCHIPS M810 e outras placas

Mandrake x LG

Placas PCI x ISA-PNP

Endianness - Arquitetura de computadores

  
Comentários
[1] Comentário enviado por lindrix em 31/05/2011 - 23:13h

Correção na parte:

sox -r 48000 -t alsa hw1,0 -t alsa pulse &

Coloquem os 2 pontos depois de hw:

sox -r 48000 -t alsa hw:1,0 -t alsa pulse &

Agora sim vai funcionar sem problemas.

Artigo homologado no Ubuntu 11.04 e Fedora 15.

[2] Comentário enviado por bigben em 08/09/2011 - 21:24h

Muito bom, parabéns!
Depois de alguns minutos o áudio/vídeo congelam com a mensagem:

cx231xx #0: UsbInterface::sendCommand, failed with status --71

Se retiro e recoloco o conector USB, são criados novos dispositivos de áudio/vídeo sem remover os anteriores, mas mesmo reconfigurando tudo, não voltam imagem e som. Vc faz ideia do que possa estar acontecendo?

Grato

[3] Comentário enviado por lindrix em 08/09/2011 - 23:04h

1 - Faça a experiencia de executar em seu terminal o comando:

$ dmesg | grep cx231

E analise por linhas com problemas com error de alguma coisa. Veja se principalmente aparece alguma coisa relativa a firmware não baixado ou carregado. É possível que o seu kernel tenha sido atualizado para o 3.0, e alguns firmwares não foram acrescentados ou atualizados para ele.

Um firmware para essa placa é o v4l-cx231xx-avcore-01.fw:

http://www.linuxtv.org/downloads/firmware/#3

Se ele não existir em /lib/firmware, o copie para lá.

2 - Qual kernel você usa? A Hybrid funciona melhor com o 2.6.38 ou maior. É recomendavel instalar o linux-firmware-nonfree pois ele contém um firmware mais apropriado para essa placa, apesar de que sem ele dê certo, em teoria. Se a sua distribuição não tem esse pacote, será preciso o .fw para

3 - Um motivo para que novos dispositivos apareçam, como você falou, é por causa do driver cx231xx não ter recurso de hotplug completo para a Hybrid, que é uma tecnologia que permite que os dispositivos sejam ligados/desligados com o computador ligado. No caso, você é obrigado a reiniciar ou desligar o computador para retirar a Hybrid da usb. Um problema de tirar de todo jeito sem "desmontar" é ficar uma carga estática na placa, o que vai fazer ela demorar para responder quando for usada de novo. No próprio windows ocorre essa dificuldade.

Como novos devs são criados, você teria de reconfigurar o TVtime para eles. Um reinicio do sistema pode fazê-los sumir e ficarem só os padrões.

4 - Tenha o cuidado de identificar os devs corretos caso você tenha uma webcam em seu computador ou até outra placa de tv.

5 - É preciso esperar uns 10 a 20 segundos para começar a usar a Hybrid, para dá tempo do sistema carregar os drivers na memória.

Caso nenhuma das dicas funcione poste aqui o que apareceu quando você executou o dmesg | grep cx231 para poder te ajudar melhor.

[4] Comentário enviado por lindrix em 08/09/2011 - 23:11h

PS: o procedimento 2 é para o caso de você ter Ubuntu. Então não precisa do 1.

[5] Comentário enviado por bigben em 09/09/2011 - 08:17h

Desculpe, acabei não postando tudo.

$ cat /etc/issue
Ubuntu 11.04

$ uname -a
Linux bigben-note 2.6.38-11-generic #48-Ubuntu SMP Fri Jul 29 19:02:55 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

- O meu note é um HP Pavilion dv7 com webcam (que funciona perfeitamente).

- Já tenho o /lib/firmware/v4l-cx231xx-avcore-01.fw no meu sistema

- Instalei o linux-firmware-nonfree via apt só pra garantir

- O vídeo/áudio chega a funcionar, mas só por alguns minutos. Depois trava tudo e o dmesg fica carregado daquelas mensagens de erro
cx231xx #0: UsbInterface::sendCommand, failed with status --71

O que mais posso fazer pra tentar resolver o caso ?

Grato pela atenção

[6] Comentário enviado por bigben em 09/09/2011 - 08:22h

Meus 5 centavos de contribuição:

#!/bin/bash

ID=`cat /proc/asound/cards | grep -i cx231xx-audio | cut -d' ' -f2`

sox -r 48000 -t alsa hw:$ID,0 -t alsa pulse &
soxpid=$!

tvtime && kill $soxpid


[7] Comentário enviado por lindrix em 12/09/2011 - 01:33h

bigben, agradeço pelas saídas que enviou.

Você já tentou usar a Hybrid em outro computador? Se nele falhar também então o problema é na pixelview.

Pelo que pude ver você tem o Ubuntu 11.04 de 64 bits, não? Como a Hybrid funciona por algum tempo, há a possibilidade de que algum dos pacotes de 64 bits do seu sistema usados para a Tv estejam com algum bug ou em versões instavéis, em relação a versão de 32 bits. Experimente usar um live cd do ubuntu de 32 bits no seu notebook, deixe a internet ativa e faça todo o procedimento do tutorial para ver se a TV pega sem problemas (mesmo no livecd!). Se der certo, você deverá tentar atualizar os pacotes para a ultima versão ou escolher: ficar com um sistema de 64 bits mesmo sem Tv ou um de 32 bits com TV.

Sim, grande sacada o seu script! Permite que o processo de instalação da Hybrid seja totalmente automatizado. Ótima contribuição!




[8] Comentário enviado por lindrix em 19/10/2011 - 02:24h

Dica a todos: na configuração acima do script são usados 48000 hz para a frequencia do som. Experimentem usar 44100, pois pode ajudar a combater a desincronia entre o som e o vídeo vindos da Hybrid. No meu netbook deu certo. A questão é ver o quanto de hertzs a placa de som aceita no máximo.

[9] Comentário enviado por lindrix em 21/10/2011 - 21:00h

Novo script de uso da placa:

http://www.vivaolinux.com.br/script/Configuracao-da-placa-Pixel-View-Hybrid-semiautomatizada/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts