2. REQUERIMENTOS:
Conecte o cabo da antena, de preferencia a um serviço de tv a cabo.
dicas de uso:
copie o arquivo correpondente ao controle remoto para
Uma placa receptora de tv que use chips da familia Brooktree
Bt848/848A/849/878/879

esse texto tratará da instalação da placa TView99 CPH063 (www.askeys.com)
Se você possui uma placa de outro fabricante algumas opções de
configuração poderão ser diferentes.
**NÃO ME PERGUNTE** sobre como configurar placas de TV que não usam esse
chipset. Use os mecanismos de busca (ex. google) para obter infomações.
Kernel 2.2.x,2.4.x ou 2.6.x, compilado com suporte a video4linux e bttv,
também precisa do suporte a i2c, devem estar como modulos.
(este texto não tratará desse assunto)
As distribuições já vem com os modulos compilado e instalados.
lirc, se desejar utilizar o controle remoto infravermelho
que acompanha a placa ou atravêz de um avulso.
xawtv, software para assistir tv
http://bytesex.org/xawtv/
Existem outras opções, consulte o freshmeat
(http://freshmeat.net/browse/128/)
3. INSTALANDO A PLACA:
Verifique quantos chips tem na placa, anote os códigos do mesmos,
bem como a marca e modelo do tuner (aquela caixa metálica onde se liga a
antena).
A TView99 possui 3 chips, a bt878, uma que não consegui
identificar (aparentemente eo responsavel pelo controle remoto) e outra
que parece ser o responsavel pelo mute do audio.
O tuner tem uma etiqueta escrito temic e outros códigos, mas
aparentemente e compativel com a philips ntsc.
Instale a placa em um slot livre.
Ligue o cabo de audio entre a saida da tv e em uma das entradas de audio
da placa de som. (não ligue no de microfone)
Caso não tenha catv, utilize uma boa antena externa, com a interna não
obtera bons resultados. A não ser que esteja numa posição privilegiada em
relação as torres de transmisão (meu caso).
4. CONFIGURANDO O LINUX:
Caso necessário compile o kernel com suporte a bttv.
para verificar se o kernel atual tem suporte ao bttv faça:
:~# modinfo -d bttv
bttv - v4l driver module for bt848/878 based cards
caso o mesmo não esteja presente
:~# modinfo -d bttv
modinfo: bttv: no module by that name found
Edite o /etc/modules.conf(1) , acrescentando:
# i2c
alias char-major-89 i2c-dev
options i2c-core i2c_debug=0
options i2c-algo-bit bit_test=0
# bttv
alias char-major-81 videodev
alias char-major-81-0 bttv
options bttv card=38 radio=0
# Na versão 0.9.x (kernel 2.6.x) a opção do tuner deve ser indicado nas opções do bttv
# da seguinte forma:
#
# options bttv card=38 radio=0 tuner=2
#
# se sua placa de video for diferente da TView99, altere o card para o
# número correspondente a sua.
# RECOMENDO que omita essa opção nas versões novas do bttv.
# (kernel >2.4.5)
# 38 eo marca/modelo da placa TView99, radio indica se a placa tem ou não
# um receptor de radio fm. o bttv detecta automaticamente algumas placas.
# ***** 10/05/2005 *****
# Algumas placas precisam da seguinte opção para o correto endereçamento do tuner.
# options tuner addr=0x61
#
options tuner type=2
#
# type indica o fabricante/modelo do sintonizador.
# Na vserão 0.9.x (kernel 2.6.x), o modulo tuner não aceita mais o parametro type,
# a indicação do tuner deve ser feito nas opções do bttv.
# o padrão brasileiro e equivalente ao americano (não confundir com o sistema
# de cor)
# largura de banda de 6mhz, audio na subportadora de 4.5Mhz modulado em FM.
# o tipo 2 também funciona (philips ntsc).
(1) Verifique como e a configuração dos modulos na distribuição em uso
uma lista de placas pode ser obtido em (caso o source do kernel esteja
instalado)
/usr/src/linux/Documentation/video4linux/bttv/CARDLIST
nesse diretório tem mais informações.
Verifique se existe o device /dev/video0, caso não exista crie-os com o
seguinte script:
#!/bin/bash
function makedev () {
for dev in 0 1 2 3; do
echo "/dev/$1$dev: char 81 $[ $2 + $dev ]"
rm -f /dev/$1$dev
mknod /dev/$1$dev c 81 $[ $2 + $dev ]
chmod 666 /dev/$1$dev
done
# symlink for default device
rm -f /dev/$1
ln -s /dev/${1}0 /dev/$1
}
echo "*** new device names ***"
makedev video 0
makedev radio 64
makedev vtx 192
makedev vbi 224
Essas informações estão na documentação do driver (Docs do kernel).
Feito isso, carregue o modulo bttv.
modprobe bttv
olhe nos logs se tudo correu bem (/var/log/message) e pelo dmesg.
Se kernel suportar, o bttv será carregado automaticamnete quando o
/dev/video for acessado.
Se desejar que o modulo seja carregando durante a inicialização, inclua o
bttv na lista de modulos a serem carregados durante o mesmo.
Onde por depende muito da distribuição em uso.
5. ASSISTINDO:
Adquira e instale o xawtv
verifique se não existe um rpm/tgz/deb dele nos cds de instalação.
A compilação e instalação dele não tem segredos.
faça o download do source e descompacte-o, e siga os passos abaixo.
./configure
make
make install
as setas para cima e para baixo muda de canal.
as setas direita/esquera faz a sintonia fina.
teclas +/- controla o volume, a opção mixer do .xawtv deve estar
configurada se a placa não possuir um controlador de volume.
selecione o sistema de cor pal-m.

use o scantv para fazer a verredura dos canais de sua região.
escolha us-bcast para canais abertos e us-cable para tv a cabo.

No modo overlay e normal a tela toda piscar quando se move a janela onde
esta sendo exibida a imagem.
O site do xawtv e o seguinte:
http://bytesex.org/xawtv/
Programa para decodificar o close caption
no dirétorio contrib/cc do source do xawtv tem o prgrama para decodificar
o close caption e outros textos.
utlize o make para gear o executavel.
copie o cc para o /usr/local/bin (ou outro lugar de sua preferencia)
execute ele em um xterm:
xterm -font 10x20 -geometry 32x10 -title "Close caption" -e cc -c
sintonize um canal que utilize close caption (Globo), nem todo programa
possui esse sinal. Os telejornais, algums filmes possuem ele.
algumas letras podem sair trocados/truncados.
recomendo renomer o programa cc para outro nome como dccaption, para
evitar o conflito com o compilador cc.
A vesão recente do xawtv já instala o decodificado de close caption, ele
foi renomeado para ntsc-cc.
6. O CONTROLE REMOTO:
Algumas placas de TV vem acompanhados de um controle remoto. Eles
utilizam uma das portas de I/O de uso generico disponivel no chip bt8xx.
infelismente não há uma padronização da forma como isso e implementado.
Mas isso não impediu que a comunidade open source desenvolvesem driver.
Mesmo que a placa não tenha uma entrada especifica para o controle remoto,
e possivel atravéz do uso de uma porta serial ou paralela a ulização do
mesmo, e claro, será necessário um aparelho de controle remoto (adquira
um em uma loja de material eletronico).
Obtendo, instalando e configurando o lirc:
O projeto Linux Infrared Remote Control
a formecer suporte a diversos tipos de controle remotos por infra-vermelho
de uso genérico.
Faça o download do lirc em
http://download.sourceforge.net/LIRC/lirc-0.6.3.tar.gz
descompacte-o em um dir qualquer (ex: no seu home dir ou /usr/src)
mude para o diretório recem criado (lirc-0.6.3)
Leia o README eo INSTALL.
rode o script "configure", se tudo correr bem, um menu ira se abrir.
escola a opção 1 [1 Driver configuration (driver:cph06x)]
depois o 4 [4 TV card ]
escolha a sua placa de tv.
[f TView99 CPH063 (card=38)]
Retorna ao menu principal, escolha a opção 2
[2 Software configuration]
selecione pelo mesnos a opcao 1.
1 Compile tools for X-Windows
5 Use syslogd instead of own log-file
No menu principal, escolha a opção 3
3 Save configuration & run configure
Isso irá gerar os Makefile.
as ultimas frazes serão:
You will have to use the lirc_gpio kernel module.
Now enter 'make' and 'make install' to compile and install the package.
então, de os comando make e make install.
Configuração:
adicione no /etc/modules.conf
# lirc
alias char-major-61 lirc_gpio
Para usar o controle e necessário mapear os botões com os seus códigos.
isso e feito no arquivo /usr/local/etc/lircd.conf, no diretório remotes/
exitem algums arquivos pré configurados. Em http://www.lirc.org/remotes/
existem outros.
A placa TView99 vem com o controle AS-218

/usr/local/etc/lircd.conf.
Carregue os drivers necessários
modprobe lirc_gpio (devera carregar o lirc_dev automáticamento, bem
como os do bttv, talvez seja necessário a carga manual desses modulos)
verifique com o comando lsmod se os modulos foram carregados
ex:
lirc_gpio 4592 0 (autoclean)
lirc_dev 8016 1 (autoclean) [lirc_gpio]
tuner 4224 1 (autoclean)
tvaudio 8240 0 (autoclean) (unused)
bttv 59360 0 (autoclean) [lirc_gpio]
i2c-algo-bit 7200 1 (autoclean) [bttv]
i2c-core 12176 0 (autoclean) [tuner tvaudio bttv i2c-algo-bit]
videodev 4480 2 (autoclean) [bttv]
Caso não aparece o lirc_gpio eo lirc_dev, olhe nos logs se não há alguma
indicação de problemas.
utilize o irrecord para verificar o funcionamento (na verdade ele server
para configurar o controle).
invoque ele com irrecord ~/teste
após uma mensagem de aviso apareçerá:
program now by pressing Ctrl-C! Otherwise press RETURN.
"aperte enter"
Hold down an arbitrary button.
"precione qualquer botão do controle e segure até que apareça a proxima
mensagem, será mostrado uma sequência de pontos '.'"
................................................................................
Found gap length: 199987
Now enter the names for the buttons.
Please enter the name for the next button (press
recording)
"digite aqui o nome do botão, ou de enter"
Checking for toggle bit.
Please press an arbitrary button repeatedly as fast as possible (don't
hold it down!).
"aperte o mais rapido que poder algum botão, mas não fique para sempre
fazendo isso, para e espere uns 10 segudos"
./irrecord: no data for 10 secs, aborting
No toggle bit found.
Successfully written config file.
OK, se chegou até aqui, o controle está funcionado.
agora carrege o daemon lircd
mude a permisão do /dev/lircd para 666 (chmod lircd /dev/lircd)
o /dev/lircd em um arquivo de conexão por sockets (unix)
compile e instale o xawtv com suporte ao lirc
configure --enable-lirc --outras-opcoes
crie o arquivo pessoal de configuração do lirc, no contrib do xawtv existe
um dot.lircrc, copie ele para o ~/.lircrc
chame o xawtv apartir de um xterminal, se tudo estiver correto o controle
deverá funcionar, presseione algum botão para verificar (ex:mute).
se aparecer "no infrared remote support available", o xawtv não conseguiu
se comunicar com o lird ou não existe uma configuração para o xawtv no
~/.lircrc.
será necessário algumas auterações no ~/.lircrc para que todos os botões
do controle tenham algum efeito sobre o xawtv, algumas funções não
correspondem ao existente no /usr/local/etc/lircd.conf, compare os dois e
faça as mudaças no ~/.lircrc.
ex:
no lircd.conf
CH_UP coresponde a trecla de subir os canais
no
~/.lircrc o mesmo e o CH+ mude para CH_UP
antes:
begin
prog = xawtv
button = CH+
config = setstation next
end
depois:
begin
prog = xawtv
button = CH_UP
config = setstation next
end
se quiser que o botão "FREEZE" pare a exibição de video
begin
prog = xawtv
button = FREEZE
config = capture toggle
end
no man page do xawtv-remote tem a listagem dos comando que podem ser
utilizados na opção config.
Para finalizar, coloque em algum rc.dot (rc.local) o lircd para ser
carregado no boot.
7. CAPTURANDO UMA SEQUENCIA DE VIDEO:
xawtv

streamer
avifile (vidcap)
nvrec
etc...
8. SOLUCIONANDO PROBLEMAS:
Aparece somente uma tela azul.
Troque a fonte de sinal para "television".
Não sintoniza nenhum canal.
Verifique se o cabo da antena está conectado.
Selecione a tabela de canais correto.
Pode ser que o tuner não esteja correto, experimente outros.
Não sai som.
Verifique se o cabo de audio está conectado corretamento, a saida da
placa de tv deve ser ligado na entrada line-in (ou aux) da placa de som.
Olhe se o mute não está ativo. (na barra de titulo)
Use um programa de mixer a abra o volume da entrada onde esta ligado o
audio da tv.
Também a possibilidade de incompatibilidade entre o bttv ea placa de
tv. Use a autodeteção (não especificar o tipo) ou tente outros tipos.
O controle de volume do xawtv não funciona.
Desligando o audio entre troca de canais, ou quando esta fora do ar.
Coloque na seção global do .xawtv
mixer = aux #entrada onde esta o som da tv. (line, aux, cd, tv)
A imagem está em preto e branco.
Mude o sistema de cor para pal-m.
Faça o ajuste fino da sintonia do canal.
Não possui a opção pal-m ou quando seleciona ocorrem erros.
Isso ocorre quando se está usando o Xvideo para mostrar a imagem.
O biblioteca/modulo video4linux que acompanha XFree86 4.0.x não possui
algums sistemas de cor.
Se o xawtv detectar que o X possui suporte ao Xvideo, ele o usará
mostrar a imagem.
Para contornar isso diga ao xawtv para não usar o Xvideo, utilize a
opção -noxv (xawtv -noxv).
Se as opções do sistema estiverem escritos em caixa baixa, o xawtv
está usando XVideo, e por tabela o X para acessar a placa.
O sistema inteiro trava quando abre o xawtv.
Algumas placas de video (trident) não possui capacidade para processar
a transferencia de dados entre a placa video ea placa de tv.
mude a forma de exibição para grabdisplay.
coloque no defaults do .xawtv
capture = grabdisplay
A imagem está fora de quadro ou está repartida em duas.
Implementação ruim do XVideo.
Troque de placa de video, muitos outros programas que usam o xvideo
apresentarão o mesmo defeito. (player de video)
Não use o xvideo (xawtv -noxv) para assistir a tv.
Esse problema e comum nas placas de video trident.
O som apresenta estralos.
Sem solução, causa desconhecida.
Quando em tela cheia a imagem não ocupa a tela toda, ficando no centro.
Configure no X o modo 640x480, e na seção global do .xawtv coloque
fullscreen = 640x480
A resolução máxima de captura dos chips bt878 (e outros) e de 640x480
(ou a resolução do padrao em uso), acima disso tem que fazer "soft
scaling". Algumas placas de video com suporte ao XVideo fazem isso.
(ex. Matrox mga200)
Para que foi pedido para identificar os chips existentes na placa?
Use essas informações para reportar os problemas que ocorrem.
Qual a diferença entre overlay e grabdisplay.
São a forma de como a imagem e passada para a memoria de video da
placa video.
No modo overlay (preview) a imagem e transferida diretamente para a
região da memoria de video onde está a área de exibição. E somente
usando o barramento pci não pesa para a cpu. Um efeito que esse modo
causa e o rastro deixado quando a janela da tv e mudado de lugar, ou a
imagem fica no lugar original por alguns instantes.
No grabdisplay a imagem e copiada e para a memoria do X, que manda
para a placa de video, tornando a exibição lenta, e usa uma fatia
consideravel da cpu (20%).
grabdisplay e usando quando se captura uma sequencia de video.
O que e XVideo?
E um recurso que as placas de video modernas possuem para ajudar na
apresentação de imagens no formato YUV (sinais de tv).
OBS:
As placas de video trident foram usandos para realizar alguns testes.
Tiveram um pessimo resultado.
9. ANEXOS:
Saida do dmesg
Linux video capture interface: v1.00
i2c-core.o: i2c core module
i2c-algo-bit.o: i2c bit algorithm module
bttv: driver version 0.7.57 loaded
bttv: using 2 buffers with 2080k (4160k total) for capture
bttv: Bt8xx card found (0).
PCI: Assigned IRQ 11 for device 00:08.0
PCI: The same IRQ used for device 00:08.1
bttv0: Bt878 (rev 2) at 00:08.0, irq: 11, latency: 64, memory: 0xdc000000
bttv0: subsystem: 144f:3000 => TView 99 (CPH063) => card=38
bttv0: model: BT878(TView99 CPH063) [insmod option]
i2c-algo-bit.o: Adapter: bt848 #0 scl: 1 sda: 1 -- testing...
i2c-algo-bit.o:1 scl: 1 sda: 0
i2c-algo-bit.o:2 scl: 1 sda: 1
i2c-algo-bit.o:3 scl: 0 sda: 1
i2c-algo-bit.o:4 scl: 1 sda: 1
i2c-algo-bit.o: bt848 #0 passed test.
i2c-core.o: adapter bt848 #0 registered as adapter 0.
bttv0: i2c: checking for MSP34xx @ 0x80... not found
bttv0: i2c: checking for TDA9875 @ 0xb0... not found
bttv0: i2c: checking for TDA7432 @ 0x8a... not found
tvaudio: TV audio decoder + audio/video mux driver
tvaudio: known chips: tda9840,tda9873h,tda9850,tda9855,tea6300,tea6420,tda8425,pic16c54 (PV951)
i2c-core.o: driver generic i2c audio driver registered.
i2c-core.o: driver i2c TV tuner driver registered.
tuner: chip found @ 0x60
bttv0: i2c attach [Philips NTSC]
i2c-core.o: client [Philips NTSC] registered to adapter [bt848 #0](pos. 0).
bttv0: PLL: 28636363 => 35468950 ... ok
bttv0: PLL: switching off
resultado do comando lspci -v
00:08.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 02)
Subsystem: Askey Computer Corp. MagicTView CPH060 - Video
Flags: bus master, medium devsel, latency 64, IRQ 11
Memory at dc000000 (32-bit, prefetchable) [size=4K]
00:08.1 Multimedia controller: Brooktree Corporation Bt878 (rev 02)
Subsystem: Askey Computer Corp. MagicTView CPH060 - Audio
Flags: bus master, medium devsel, latency 64, IRQ 11
Memory at dc001000 (32-bit, prefetchable) [size=4K]
A configuração descrito nesse texto foi originalmente implementado na distribuição
slackware 7.1, kernel 2.4.2.
Se você consegui fazer uma placa diferente da TView99 funcionar corretamente, me envie os parametros e outras informação usando na configuração dos modulos.
Este texto e de livre distribuição.
O original deste texto pode ser obtido em:
http://pebkac.hopto.org:81/bttv/
31/03/2001