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

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

Compilador GNU Prolog

Instalando um servidor Openfire no Debian para liberação de MSN via Spark em uma rede Windows

Editando trilhas de GPS no formato de arquivo GPX no Linux

SoulSeek para Linux

Aprendendo Python - Uma linguagem simples e moderna

  
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