Ginga-NCL no Ubuntu 10.04

Ginga-NCL versão C++ é uma implementação de alto desempenho, um protótipo ideal para embarque em set-top boxes comerciais, caracterizados por baixas capacidades de processamento e armazenamento. O objetivo deste artigo é mostrar pontos chave para concluir com sucesso a instalação do Ginga-NCL.

[ Hits: 33.836 ]

Por: Frederico Martins Pedroso Júnior em 20/10/2010 | Blog: https://github.com/fredpedroso


DirectFB e complementos



É um módulo que permite rodar aplicativos gráficos do Linux diretamente, sem necessidade de um servidor X completo.
Linux: Ginga-NCL no Ubuntu 10.04
Gimp no console
Segue abaixo como instalar o DirectFB e os pacotes que precisam para o bom funcionamento.

Faad2:

wget http://downloads.sourceforge.net/project/faac/faad2-src/faad2-2.7/faad2-2.7.tar.gz?use_mirror=ufpr
./configure --with-mp4v2
$ make
$ sudo make install


FFmpeg:

git clone git://git.ffmpeg.org/ffmpeg/
$ cd ffmpeg
$ git clone git://git.ffmpeg.org/libswscale/
$ ./configure --enable-shared --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaad --enable-postproc


Xine-Lib 1.1.17:

wget -c http://prdownloads.sourceforge.net/xine/xine-lib-1.1.17.tar.bz2
./configure --enable-faad --disable-ffmpeg-uncommon-codecs --with-external-ffmpeg
$ make
$ sudo make install


DirectFB:

git clone git://git.directfb.org/git/directfb/core/DirectFB.git
$ cd DirectFB
$ ./autogen.sh
$ make
$ sudo make install


DirectFB-extra:

git clone git://git.directfb.org/git/directfb/extras/DirectFB-extra.git
$ cd DirectFB-extra
$ ./autogen.sh
$ make
$ sudo make install


Obs.: Dentro da pasta "interfaces" modificar os arquivos Makefile.am de forma que todos os LIBADD das interfaces contenham a variável $(DFB_LIBS). Por exemplo:

libidirectfbvideoprovider_xine_la_LIBADD = $(DFB_LIBS) $(XINE_LIBS)

DirectFB-examples:

git clone git://git.directfb.org/git/directfb/extras/DirectFB-examples.git
$ cd DirectFB-examples
$ ./configure
$ make
$ sudo make install


FusionSound:

git clone git://git.directfb.org/git/directfb/core/FusionSound.git
$ cd FusionSound
$ ./autogen.sh
$ make
$ sudo make install


Obs.: Dentro da pasta "interfaces" modificar os arquivos Makefile.am de forma que todos os LIBADD das interfaces contenham a variável $(DFB_LIBS). Por exemplo:

libifusionsoundmusicprovider_mad_la_LIBADD = $(DFB_LIBS) $(MAD_LIBS)

Obs.:

df_dok
e
df_andi

Estes comandos devem estar funcionando corretamente, aconselho que testem também as outras funções do df.

Variáveis de ambiente

Exportar variáveis para que o Ginga-NCL ache as dependências na hora de compilar. Automatizaremos esse processo aqui adicionado as variáveis no arquivo .bashrc para que elas sejam exportadas toda vez que abrirmos o console.

echo " export LD_LIBRARY_PATH=/usr/local/lib/lua/5.1/socket:/usr/local/lib/ginga:/usr/local/lib/ginga/adapters:/usr/local/lib/ginga/cm:/usr/local/lib/ginga/converters:/usr/local/lib/ginga/ic:/usr/local/lib/ginga/iocontents:/usr/local/lib/ginga/players:/usr/local/lib/ginga/dp:/usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib:/lib64:/lib:/usr/kerberos/lib" >> ~/.bashrc

$ echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig" >> ~/.bashrc


Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Interatividade
   3. FrameBuffer
   4. DirectFB e complementos
   5. Instalar Ginga-NCL
Outros artigos deste autor

Segurança com Iptables

Leitura recomendada

Como instalar o Novo SGA - Sistema de Gerenciamento de Atendimento

Instalando as últimas versões do Xfce, MATE e Cinnamon com PulseAudio no Slackware

Resolvendo dependências no Slackware com slackpkg

Octave - Programação científica no Linux

Customizando e atualizando o Slax

  
Comentários
[1] Comentário enviado por martin_riggs em 21/10/2010 - 12:57h

Gostei bastante do seu artigo, eu estou terminando meu TCC agora, com uma aplicação toda em NCL. Utilizo o Linux Ubuntu e nele instalei o VMware para usar a máquina virtual Fedora com o Ginga. Para executar os comandos via terminal utilizo o Putty, e para copiar os arquivos utilizo o Gigolo. Para desenvolver uso o Eclipse.

Pelo que vi, seguindo o seu artigo, podemos ter o Ginga rodando direto no OS instalado, sem necessidade da VM, e uso do SSH e SFTP, isso seria bastante útil, e agilizaria o processo de desenvolvimento. Estou no trabalho e não deu para ler minuciosamente, mas assim que eu puder vou realizar estes passos para testar.

Parabéns pelo artigo, e se já desenvolve para TV Digital podemos trocar umas idéias.

Abraços.

Bruno Riggs
brunoriggs@r7.com

[2] Comentário enviado por fredim em 22/10/2010 - 11:23h

- martin_riggs

Eu tive a necessidade de parar de fazer todo este processo que você citou, e é exatamente isso que este artigo explica, como instalar o Ginga-NCL no próprio OS.
Lembrando que o Ginga pode ser instalado em qualquer distribuição Linux.


Att

[3] Comentário enviado por martin_riggs em 22/10/2010 - 11:40h

Fredim

Por experiência, você sabe se ocupa muito espaço no HD, e se demanda muita memória? Pergunto isso por que possuo dois equipamentos em casa, sendo um antigo.


Abraços.

Bruno Riggs
brunoriggs@r7.com

[4] Comentário enviado por fredim em 23/10/2010 - 13:54h

- martin_riggs

Se tiver com problema de disco recomendo utilizar o ubuntu-server (não chegará a 1Gb), e em relação à demanda de memória, isso vai depender do aplicativo.
Aplicativos com stream, videos HD etc ... vai exigir um pouco mais.


Att

[5] Comentário enviado por martin_riggs em 23/10/2010 - 17:02h

Tenho que entregar meu TCC agora em novembro, então em time que esta ganhando não se mexe, vou deixar vou deixar para seguir seu tutorial depois kkk.

Abraços!!!

[6] Comentário enviado por jotadao_sd em 28/12/2010 - 16:59h

Estou tendo problemas com o FFMPEG, ao configurá-lo:


Unknown option "--enable-libfaad".
See ./configure --help for available options.

Ao digitar o comando --help, não há suporte de biblioteca externa libfaad, mas sim libfaac.

Devo instalar libfaac ao invés de libfaad?

[7] Comentário enviado por fredim em 29/12/2010 - 01:53h

Jotadao_sd

Você está no diretório certo? passou os parâmetros corretamente?
*ffmpeg ( ./configure --enable-shared --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaad --enable-postproc )

Qualquer dúvida dê uma conferida no wiki do ginga (olhe os pré-requisitos do gingacc-system) :
---> http://svn.softwarepublico.gov.br/trac/ginga/wiki/Building_Wiki_GingaNCL


[8] Comentário enviado por clebermoterani em 09/02/2011 - 14:09h

Olá Fredim,

Adicionei o parametro vga = 0×0323 já que a resolução que utilizo é 1024x768. Reiniciei a máquina normalmente.
Como eu sei que o framebuffer está ativado?

Minha distribuição: Ubuntu 10.04

Obrigado e abraço

Att.
Cléber

[9] Comentário enviado por fredim em 11/02/2011 - 09:56h

Olá Cleber

Usa o " fbset "
Com ele é possível verificar/setar configurações do framebuffer

att

[10] Comentário enviado por clebermoterani em 11/02/2011 - 14:34h

Olá Fredim

valeu pela dica do fbset.

Conseguimos compilar os dois primeiros pacotes do ginga, mas no gingacc-cpp/gingacc-system tivemos o seguinte erro:

[...]
Making all in src/io
make[2]: Entering directory `/home/lumi/Softwares/Ginga/gingacc-cpp/gingacc-system/src/io'
/bin/bash ../../libtool --tag=CXX --mode=link g++ -fPIC -g -O2 -Wl,-soname,libgingaccsystemio.so -shared -L/usr/local/lib -L/usr/local/lib/ginga -L../thread -L/usr/local/lib/ginga -L/usr/local/lib -L/usr/lib -o libgingaccsystemio.so DeviceAudio.o DeviceCommunication.o IODevice.o GingaLocatorFactory.o InputManager.o LocalDeviceManager.o -ltelemidiautil -lpthread -lgingaccsystemthread -ldl -L/usr/local/lib/ -L/usr/local/lib/ginga/
libtool: link: g++ -fPIC -g -O2 -Wl,-soname -Wl,libgingaccsystemio.so -o libgingaccsystemio.so DeviceAudio.o DeviceCommunication.o IODevice.o GingaLocatorFactory.o InputManager.o LocalDeviceManager.o -L/usr/local/lib -L/usr/local/lib/ginga -L/home/lumi/Softwares/Ginga/gingacc-cpp/gingacc-system/src/thread -L/usr/lib -ltelemidiautil -lpthread -lgingaccsystemthread -ldl -L/usr/local/lib/ -L/usr/local/lib/ginga/
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
make[2]: *** [libgingaccsystemio.so] Error 1
make[2]: Leaving directory `/home/lumi/Softwares/Ginga/gingacc-cpp/gingacc-system/src/io'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/lumi/Softwares/Ginga/gingacc-cpp/gingacc-system'
make: *** [all] Error 2

Você tem alguma ideia do que pode ser?

Abraço...

[11] Comentário enviado por fredim em 11/02/2011 - 15:14h

libtool: link: g++ -fPIC -g -O2 -Wl,-soname -Wl,libgingaccsystemio.so -o libgingaccsystemio.so DeviceAudio.o DeviceCommunication.o IODevice.o GingaLocatorFactory.o InputManager.o LocalDeviceManager.o -L/usr/local/lib -L/usr/local/lib/ginga -L/home/lumi/Softwares/Ginga/gingacc-cpp/gingacc-system/src/thread -L/usr/lib -ltelemidiautil -lpthread -lgingaccsystemthread -ldl -L/usr/local/lib/ -L/usr/local/lib/ginga/
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':

---


Verifica a versão da libtool, tem que ser a 1.5

att

[12] Comentário enviado por clebermoterani em 18/02/2011 - 14:56h

Verifiquei a libtool, era a versão 2.2.6.
Então removi e instalei a versão 1.5.
No entanto, agora quando vou compilar o pacote telemidia-util-cpp,
depois de executar o make, ele reclama da versão da libtool, olha só:

Entrando no diretório `/media/dados/CTC/Ginga/telemidia-util-cpp/src'
/bin/bash ../libtool --tag=CXX --mode=link g++ -fPIC -g -O2 -Wl,-soname,libtelemidiautil.so -shared -o libtelemidiautil.so Color.o functions.o
../libtool: line 463: CDPATH: command not found
../libtool: line 1141: func_opt_split: command not found
libtool: Version mismatch error. This is libtool 2.2.6b Debian-2.2.6b-2ubuntu1, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6b Debian-2.2.6b-2ubuntu1
libtool: and run autoconf again.

tenho que alterar a versão da libtool em algum lugar?

Valeu!

[13] Comentário enviado por fredim em 19/02/2011 - 18:30h

Tem que tomar cuidado porque o ubuntu geralmente atualiza vários pacotes para instalar uma coisa só.

libtool --version

Verifica se ainda é a 1.5, ou se mudou com alguma atualização


Att


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts