Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


TV digital brasileira no Linux: mais drivers experimentais disponíveis

O Mauro Carvalho Chehab (mchehabΘredhat·com) mandou o aviso:

“Estive trabalhando no meu tempo livre com alguns cartões novos de TV Digital que recebi. Agradeço a todos aqueles que nos tem ajudado, colocando estes cartões à nossa disposição.

Basicamente, estou adicionando, em caráter experimental, o suporte a 3 dispositivos que trabalhei recentemente, capazes de receber sinais digitais no padrão SBTVD – Sistema Brasileiro de Televisão Digital – dentro do Linux. São todos drivers abertos, ainda experimentais. Agradecemos retorno quanto a problemas em seu funcionamento.

Todos os drivers para esses dispositivos estão em:

http://git.linuxtv.org/mchehab/sbtvd.git

Na medida em que conseguirmos colocar suporte para novos drivers, eu colocarei os novos patches na árvore acima. Como de praxe, todos os drivers serão incorporados na minha árvore principal, à medida em que estiverem 100%, para serem incorporados nos novos kernels.

Com isso, temos suporte a 5 famílias de dispositivos:

1) Dibcom 0700 + DibCom 807x/809x:
Full-Seg – ou seja: pega canais HD, SD e LD;
driver dib0700. Nos meus testes, está funcionando 100%
Dispositivo testado: Pixelview SBTVD.
Driver: dib0700

2) Siano 11xx:
1Seg – pega apenas canais de baixa resolução (LD)
Também funciona 100%
O controle remoto funciona apenas na árvore de desenvolvimento.
Creio que os patches para o IR estão também na árvore do Linus. Ou seja,
devem estar funcionando a partir do kernel 2.6.36.
Dispositivo testado: Hauppauge WinTV MiniStick.
Driver: smsusb

3) Empiatech em28xx + Sharp VA3A5JZ921 (etiquetado como S.921 no chip):
1Seg – pega apenas canais de baixa resolução (LD)
Nos meus testes, conseguimos detectar os canais corretamente. No entanto,
o frontend requer sinais muito fortes. Por conta disso, não consegui
efetivamente pegar nenhum canal por aqui, embora ache que ele esteja
funcionando. Assim, aguardo testes para verificar se está 100%.
Como não possuo documentação alguma, o driver do frontend basicamente
repete a inicialização feita no driver original.
Dispositivo testado: Leadership ISDB-T.
Driver: em28xx

4) Conexant cx23102 + Fujitsu MB86A20S
Full-Seg – ou seja: pega canais HD, SD e LD;
Também funciona em modo analógico.
O driver para o frontend também repete a inicialização feita no driver
original. Nos meus testes, peguei os dois canais disponíveis em minha
localidade, tanto em 1seg quanto em fullseg.
Ainda faltam implementar algumas coisas, tais como controle remoto.
Não testei ainda as entradas S-Video/Composite.
Dispositivo: Pixelview SBTVD Hybrid.
Driver: cx231xx

5) NXP TDA7135 + Fujitsu MB86A20S;
Full-Seg – ou seja: pega canais HD, SD e LD;
A placa suporta TV analógica. No entanto, a parte analógica ainda não funciona.
O driver para o frontend é o mesmo do tipo anterior.
Ainda falta implementar controle remoto, S-Video/Composite e TV analógica.
Dispositivo: Kworld PCI SBTVD/ISDB-T Hybrid.
Driver: saa7134

Todos os dispositivos conhecidos são auto-detectados.

Para uso, basta seguir as instruções abaixo:

Instalar git e rodar os comandos:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git v4l-dvb
cd v4l-dvb
git remote add media git://linuxtv.org/mchehab/sbtvd.git
git remote update
git checkout -b sbtvd media/sbtvd
make oldconfig
make
make modules_install install

O make oldconfig irá perguntar quais drivers novos você deseja compilar. Não esqueça de solicitar que ele compile os drivers novos do video4linux/DVB. A dificuldade desse passo depende da distribuição que você tem. Quanto mais próxima ela for da última versão do kernel, menos perguntas serão feitas ;) Por favor, evitem enviar-me perguntas relacionadas a compilação do kernel. Eu dificilmente terei tempo para respondê-las, ou poderei ajudar muito, visto que a seleção de alguns drivers e parametros depende grandemente da distribuição que você usa (no meu caso, eu uso o RHEL 6 beta).

O Douglas escreveu um tutorial sobre como usar dispositivos SBTVD:

http://br-linux.org/2009/sbtvd-assistindo-tv-digital-aberta-brasileira-com-o-vlc-no-linux/

O uso independe do tipo de cartão. Apenas lembre-se que canais HD e SD não serão exibidos em dispositivos 1-Seg (embora ele detete a existência de canais HD/SD).

Por favor, reportem-me casos de sucesso nesses dispositivos, e/ou eventuais necessidades de ajuste.

Qualquer coisa, estamos à disposição.” [referência: http:]


• Publicado por Augusto Campos em 2010-10-08

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Clésio Luiz (usuário não registrado) em 8/10/2010 às 8:22 am

    Eu comprei o Pixelview SBTVD para uso no Linux graças ao seu trabalho, muito obrigado por isso.

    Por enquanto eu só consigo utilizá-lo no VLC. Tanto o Smplayer quanto o Kaffeine não conseguem aproveitar o arquivo channels.conf que eu gerei, só o VLC.

    Mauro Carvalho Chehab (usuário não registrado) em 8/10/2010 às 9:40 am

    Oi Clésio,

    Até onde sei, o grande problema nos aplicativos é que o parser da biblioteca de decodificação de audio libfaad (para Dolby AAC) não funciona muito bem. Dependendo de onde o stream está, ela não acha o início do frame. O vlc, embora também use a libfaad, implementa um parser próprio, resolvendo esse bug.

    Também é necessário que o aplicativo suporte bem o formato de vídeo H.264. Nem todos os players para TV digital suportam. A tendência, em se tendo mais opções de drivers, é que mais pessoas se interessem em colaborar na parte de userspace, e ajudem a resolver esses problemas.

    Rodrigo H. (usuário não registrado) em 8/10/2010 às 10:13 am

    Mauro, parabéns por esse trabalho com os drivers.
    São essas possibilidades que o Software Livre nos dá que mostram a verdadeira força da Liberdade, e não o tamanho da base instalada, como muitos insistem em falar.
    Belo trabalho.

    Allan Taborda dos Santos (usuário não registrado) em 8/10/2010 às 10:43 am

    Meus parabéns pelo trabalho (que os fabicantes é quem deveriam fazer).

    Eu gostaria de saber se o dispositivo ConnecTV Digital, da AOC, já possui drivers para o GNU/Linux e, em caso negativo, e em caso de estar trabalhando para o desenvolvimento do driver, como está o andamento deste.

    Possuo este dispositivo e ele só funciona no Windows 7, e o driver ainda faz o Windows dar tela azul às vezes. Eu queria que ele funcionasse no GNU/Linux.

    Illidan (usuário não registrado) em 8/10/2010 às 11:00 am

    Que massa cara. Parabens pelo seu trabalho.

    Sandro (usuário não registrado) em 8/10/2010 às 11:14 am

    Parabéns por seu tempo e dedicação grato Sandro Vieira

    Roney (usuário não registrado) em 8/10/2010 às 11:23 am

    Este trabalho deveria de ser dos fabricantes dos dispositivos..Ainda bem que tem ainda muita gente com boa vontade para ajudar..Parabéns pelo seu trabalho. Abraços

    @Mauro

    Parabéns pelo trabalho muito bem feito no suporte à estes dispositivos.

    Graças a isto, o Linux já possui um software melhor do que o de várias opções de TV Digital só para Windows.

    LEo (usuário não registrado) em 8/10/2010 às 1:03 pm

    Dá um erro para compilar… :(
    alguém sabe como solucionar?

    LD arch/x86/built-in.o
    make[4]: *** No rule to make target `drivers/media/video/saa7134/saa7134-rc.o’, needed by `drivers/media/video/saa7134/saa7134.o’. Stop.
    make[3]: *** [drivers/media/video/saa7134] Error 2
    make[2]: *** [drivers/media/video] Error 2
    make[1]: *** [drivers/media] Error 2
    make: *** [drivers] Error 2

    Se tem um tipo de desenvolvedor que eu pago pau (no bom sentido, pô!) é o cara que desenvolve drivers de hardware, principalmente quando não tem documentação à mão. @Mauro, parabéns!

    Mas acho uma puŧa falta de sacanagem os fabricantes não estarem nem aí. Creio que o custo para as respectivas empresas em desenvolver ou terceirizar a criação de um driver tendem a zero se ela abrir a documentação e permitir que pessoas independentes o implementem. Ou mesmo pessoas que trabalham na própria empresa e desenvolvem os drivers em tempo livre.

    Os próprios drivers da wacom para Linux, que não são oficialmente suportados pelo Linux (mas funcionam tão bem quanto no Windows ou no Mac!), são desenvolvidos por um funcionário da própria empresa.

    Até hj não entendo a dificuldade de alguns fabricantes em desenvolver drivers para plataformas alternativas, ou ao menos disponibilizar meios para isso, tais como documentação, etc.

    Deve ser o tal do efeito tostines: não desenvolvem por não haver demanda de seus produtos em plataformas alternativas, e não existe esta demanda por não existir suporte!

    @Mauro, mais uma vez, meus parabéns.

    MarcoLinux1998 (usuário não registrado) em 8/10/2010 às 1:30 pm

    alguem sabe se o Pixelview SBTVD (ou outro) pega FM? Parece estranho nao ter, pois é tudo por software certo?
    Ahh, parabens pelo trabalho!

    André (usuário não registrado) em 8/10/2010 às 3:20 pm

    Parabens pelo trabalho!!

    Gostaria de saber qual a possibilidade de tentar compilar esse driver num macos. O suporte a estes dispositivos é muito precario!

    Valeu

    Jurandir (usuário não registrado) em 8/10/2010 às 4:07 pm

    @mauro parabéns!!!!!!
    creio que deveriamos fazer uma campanha para que o fabricantes disponibilizassem driver linux, se todos enviássemos emails pedindo drivers os fabricantes se tocariam que não ha demanda de seus produtos no gnu/linux pq não ha suporte apenas isso….

    Alfredo (usuário não registrado) em 8/10/2010 às 4:35 pm

    @Mauro não irei repetir o que todos os outros já disseram, mas dou os parabéns pelo excelente trabalho! Muito agradecido!

    Marcio (usuário não registrado) em 8/10/2010 às 5:25 pm

    Mauro meus parabens, vou colocar finalmente meu device kworld ub430-AF Analógico e Digital pra funcionar no linux, eu comprei até o pixelview full hd pra usar no linux, pensando que nunca o outro device teria suporte, viva o linux a comunidade!

    Mauro Carvalho Chehab (usuário não registrado) em 8/10/2010 às 8:03 pm

    Allan,

    O dispositivo da AOC não é suportado. Não tem ninguem trabalhando nele ainda. Eu tenho 2 deles por aqui. Nenhum dos chips usados nele são suportados. Ele é baseado em um micro-controlador usado em alguns designs de placas de TV (Cypress), e em um frontend da ALPS. O driver original parece fazer algo diferente na USB. Para tentar descobrir o protocolo, provavelmente é necessário um dispositivo, em hardware monitorando o protocolo USB, ou então (preferencialmente) o auxílio do fabricante.

    Mauro Carvalho Chehab (usuário não registrado) em 8/10/2010 às 9:03 pm

    Com relação ao apoio de fabricantes, vale ressaltar que alguns têm colaborado e enviado drivers, ou diretamente, ou através de pessoas que atuam ativamente em software livre e trabalham nas empresas.

    Em particular, dos 5 drivers hoje com suporte ao SBTVD, 3 drivers USB foram fornecidos pelos fabricantes (DibCom, Siano, Conexant). A DibCom forneceu drivers para o chip deles que faz a sintonia e decodificação SBTVD.

    No caso da Siano, o driver inicialmente enviado tinha parte do suporte a SBTVD implementado. Tive que resgatar parte do código antigo, e fuçar um pouco para fazer funcionar, corrigindo alguns bugs. Infelizmente, a pessoa de contato com a comunidade no fabricante saiu há uns 2 anos atrás, e não conseguimos mais novas atualizações técnicas.

    A Conexant não fabrica o decodificador SBTVD usado nas placas atualmente suportadas, mas eles, oficialmente, têm mantido suporte aos drivers que forneceram (incluindo o driver do cx231xx), e ajudando em outros drivers feitos pela comunidade.

    O maior problema hoje é a falta de informações e colaborações na parte dos sintonizadores e decodificadores SBTVD, pois muitos datasheets não são disponibilizados publicamente. Facilitaria bastante se houvessem mais informações ou colaboração sob a forma de código fonte para esses produtos.

    Aos poucos, fabricantes têm nos procurado, direta ou indiretamente, para colaborar com a comunidade. Assim, eu creio que a situação vem melhorando ano a ano.

    Mauro Carvalho Chehab (usuário não registrado) em 8/10/2010 às 9:06 pm

    André,

    Nunca trabalhei com MacOS. Não sei como está o suporte nesse sistema, nem a dificuldade em compilar os drivers nele.

    Os drivers são GPL.

    Você provavelmente precisará mexer nas chamadas a API’s internas do Linux caso tente portar.

    Mauro Carvalho Chehab (usuário não registrado) em 8/10/2010 às 9:07 pm

    LEo,

    Foi um pequeno problema em um merge de um patch que fiz para o upstream. Já corrigi na árvore. Basta atualizar e re-compilar.

    Mauro Carvalho Chehab (usuário não registrado) em 8/10/2010 às 9:12 pm

    Márcio,

    A Kworld ub430-AF parece ter um hardware parecido com a Pixelview Hybrid. Eu não tenho nenhum modelo por aqui. Provavelmente, basta acrescentar a USB ID no arquivo cx231xx-cards.c, apontando, temporariamente, para a entrada da Pixelview, isso assumindo que use o sintonizador e o decodificador nos mesmos barramentos da Pixelview, e use a GPIO0 para o controle AGC do NXP 18271.

    Em todo caso, o ideal é criar uma entrada nova para esse cartão, ajustando, se necessário, GPIO’s e endereços I2C, enviando-me os patches, para que eu acrescente na árvore, e, posteriormente, upstream.

    Mauro Carvalho Chehab (usuário não registrado) em 8/10/2010 às 10:19 pm

    MarcoLinux1998,

    Normalmente, as placas puramente analógicas e as híbridas suportam FM, mas depende do sintonizador usado e do driver. Eu não testei ainda, mas é bem possível que as placas com o cx231xx+tda18271 funcionem também como FM no Linux.

    Desculpe por não ter entendido o post.

    O “Pixelview SBTVD” já esta na árvore do kernel? digo, kernel-2.6.35.7?

    Meus parabéns ao Mauro e Alan pelo trabalho.

    Mauro Carvalho Chehab (usuário não registrado) em 9/10/2010 às 8:56 am

    André,

    A versão apenas digital da Pixelview SBTVD já está no kernel. Usa o driver dib0700. A versão híbrida é reconhecida, erroneamente, nos
    kernels antigos pelo driver da DibCom, em virtude de utilizar o mesmo USB ID da outra placa. Enviei na terça a correção para o Linus. O Greg provavelmente incorporará nas novas versões dos Kernel stable. Essa correção faz com que a placa híbrida seja reconhecida pelo driver correto, embora eu provavelmente enviarei o suporte para a híbrida apenas para o kernel 2.6.38. Está muito em cima para o 2.6.37, e precisamos de mais testes ;)

Este post é antigo (2010-10-08) e foi arquivado. O envio de novos comentários a este post já expirou.