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: 16.791 ]

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

Fazendo sua webcam com chipset sn9c10x funcionar no Linux

Instalando Webcam Creative NX Pro no Ubuntu 5.10

Ajustando o desempenho de discos rígidos

Esclarecendo a questão dos drivers: o problema do suporte a hardware

Informações sobre Hardware no GNU/Linux - Guia Geral e Prático

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts