terça-feira, 12 de junho de 2007

Instalando Prolink Pixelview PV-BT878P+














Minha intenção nesta mensagem é repassar alguns dias de pesquisa e suor para fazer minha placa de captura de vídeo funcionar, e acreditem, ela funciona, incluindo o controle remoto.

Preparando o Ambiente

Minha placa é uma Prolink Pixelview PV-BT (este é o nome fantasia dela), que foi corretamente identificada pelo sistema através do comando:

# lspci
Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)

Brooktree é uma marca que foi adquirida pela Conexant e Bt878 é o CHIPSET.

No Linux existe um driver construído para gerenciar placas de vídeo que utilizem chipsets deste modelo (Bt8xx), o driver é o bttv.

O driver bttv pode ser encontrado em:
Este driver é compatível com a API de vídeo v4l2 (video for linux 2), que gerenciará o dispositivo de vídeo.

A instalação não será problemática se você tiver compiladores instalados e existe documentação junto com o pacote (em inglês é claro). Tente apenas:

Desempacote o arquivo, entre na pasta e compile o driver:

# tar -zxvf bttv-0.9.15.tar.gz
# cd bttv-0.9.15
# make
# make install


Após isto, caso seus compiladores estejam instalados, terá sido gerado o módulo do driver (os arquivos abaixo, mas não necessariamente com o mesmo caminho, já que aqui, 2.6.8-2-k7 é a versão do kernel que - eu - utilizo, e não a sua. para saber qual é sua versão de kernel digite o comando 'uname -r' no prompt):

/lib/modules/2.6.8-2-k7/kernel/drivers/media/video/bttv.ko
/lib/modules/2.6.8-2-k7/v4l2/bttv.ko

Uma vez que o driver está instalado, reinicie eu computador (isto não é realmente necessário, mas acho que é interessante).

Configurando a Placa

Após a inicialização, digite o execute:

# dmesg | grep bttv

bttv0: detected: Prolink Pixelview PV-BT [card=72], PCI subsystem ID is 1554:4011
bttv0: using: Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM) [card=72,autodetected]
bttv0: using tuner=5

Este é um resultado aproximado ao que você deve ter depois de ter instalado o driver bttv. Ele automaticamente configura a inicialização do módulo responsável pelo gerenciamento da placa de vídeo.

No entanto, pelo menos para o meu modelo de placa, a detecção automática da placa pelo driver não é correta (e na pesquisa que fiz, parece que nenhuma pixelview é muito corretamente detectada). Tive então de alterar os parâmetros da inicialização do módulo. Isto é feito alterando o arquivo:

/etc/modutils/bttv

Verificando como o módulo está sendo chamado na inicialização:

# cat /etc/modules.conf |grep bttv
post-install bttv insmod tuner
post-remove bttv rmmod tuner
alias char-major-81 bttv

Bom, se apareceu algo parecido, estamos no caminho, com alguma batalha pela frente..

Agora no meu caso eu tenho que fazer com que o módulo carregue a placa correta (card=70) e com o modelo de sintonizador adequado (tuner=43).

*** vejam que ambos são completamente diferentes daqueles que foram detectados corretamente (card=72 & tuner=5) ***

Para isto basta editar o arquivo /etc/modutils/bttv: (use o editor que preferir) ==> veja o arquivo depois da edição:

# cat /etc/modutils/bttv

alias char-major-81 videodev
alias char-major-81-0 bttv
options bttv card=70 radio=1 tuner=43
options snd-card-ens snd_index=0
options msp3400 mixer=1

Bom, eu descobri que a minha placa é o modelo 70 e o meu tuner é o modelo 43 fazendo testes.

Para fazer estes testes eu tive de instalar um visualizador de vídeo. Eu instalei alguns, mas o que eu achei realmente BOM foi o tvtime.
Depois de instalá-lo eu fazia o seguinte, carregava o módulo manualmente com os valores de placa e tuner possíveis.

Lista com possíveis placas:
Lista de tuners:
Testando a Placa

Para testar a placa XX com o tuner YY faça o seguinte:

1. descarregue o módulo atual:

# modprobe -r bttv

Se houver mensagem de erro falando que outro módulo ( o bt878 por exemplo ) está usando o bttv remova antes este que o está utilizando 'modprobe -r bt878', depois remova o bttv 'modprobe -r bttv'.

2. carregue o módulo com os novos parâmetros:

# modprobe bttv card=XX tuner=YY

e aí, faça o teste.. como? --> execute o tvtime

# tvtime

O tvtime tem várias ferramentas de configuração, você deve selecionar a entrada (tv, composite, etc) o sistema de tv (PAL-M se for Brasil) e mandar ele buscar os canais ( isto tudo é feito via menu do tvtime.

Bom, faça testes até achar um par de placa e tuner que servem para você (isto pode ser demorado mas se a sua placa for exatamente igual a minha, já sabe quais usar).

Após editar o arquivo, ainda temos de instruir o sistema a atualizar o verdadeiro arquivo de inicialização dos módulos do sistema /etc/modules.conf. Fazemos isto com:

# update-modules

Depois que achou os que te servem, edite o arquivo /etc/modutils/bttv e deixe-o como o que eu indiquei logo acima (só que com seus valores).

Mesmo após isto, eu vi que os módulos não carregavam diferente do automático (não sei explicar porque), mas achei uma dica de como burlar isto, é só colocar um bash na inicialização, da seguinte forma:

1. Crie o arquivo /etc/rcS.d/S90placatv com o conteúdo seguinte: (claro, troque os valores pelos adequados - seus -)

modprobe -r bt878
modprobe -r bttv
modprobe -r tuner
modprobe bttv card=70 tuner=43
sleep 3
chmod ugo+rwx /dev/video0

Dê permissão de execução para este arquivo:

# chmod +x /etc/rcS.d/S90placatv

Reinicie o sistema e tudo vai funcionar (assim seja!).

Espero que sirva. Depois vou colocar mais ou menos o processo de instalação do Controle Remoto. Agora já está meio tarde.

Nenhum comentário: