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.292 ]

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


FrameBuffer



Framebuffer no Linux (fbdev) é uma camada de abstração independente de hardware para exibição de gráficos em um console sem depender de bibliotecas específicas como a SVGAlib ou do servidor gráfico X.

Ativar FrameBuffer

Em /boot/grub/grub.cfg encontra-se no menuentry() a linha Linux:

linux   /boot/vmlinuz-2.6.32-22-generic root=UUID=df000bd5-0d4f-43c0-86ac-4de4c5b53d1e ro quiet splash

Adicione vga=xxx:

linux   /boot/vmlinuz-2.6.32-22-generic root=UUID=df000bd5-0d4f-43c0-86ac-4de4c5b53d1e ro vga=xxx quiet splash

Onde xxx é a resolução.

Resoluções:
  • Mode 0×0300: 640×400 (+640), 8 bits
  • Mode 0×0301: 640×480 (+640), 8 bits
  • Mode 0×0303: 800×600 (+832), 8 bits
  • Mode 0×0305: 1024×768 (+1024), 8 bits
  • Mode 0×0311: 640×480 (+1280), 16 bits
  • Mode 0×0314: 800×600 (+1600), 16 bits
  • Mode 0×0317: 1024×768 (+2048), 16 bits
  • Mode 0×0395: 320×240 (+640), 16 bits
  • Mode 0×0396: 320×240 (+1280), 24 bits
  • Mode 0x03b3: 512×384 (+512), 8 bits
  • Mode 0x03b5: 512×384 (+1024), 16 bits
  • Mode 0x03b6: 512×384 (+2048), 24 bits
  • Mode 0x03c3: 640×350 (+640), 8 bits
  • Mode 0x03c5: 640×350 (+1280), 16 bits
  • Mode 0x03c6: 640×350 (+2560), 24 bits
  • Mode 0×0333: 720×400 (+768), 8 bits
  • Mode 0×0335: 720×400 (+1472), 16 bits
  • Mode 0×0336: 720×400 (+2944), 24 bits
  • Mode 0×0321: 640×480 (+2560), 24 bits
  • Mode 0×0322: 800×600 (+3200), 24 bits
  • Mode 0×0323: 1024×768 (+4096), 24 bits

Resolvendo dependências

As dependências podem ser instaladas utilizando o Aptitude. Segue abaixo a linha de comando necessária para a obtenção dos pacotes:

sudo aptitude install build-essential automake autoconf subversion libsysfs-dev libvncserver-dev liblzo2-dev x11-utils libx11-dev libpnglite-dev libpng12-dev libjpeg62-dev libtiff4-dev libzip-dev libcurl4-openssl-dev libcrypto++-dev libgpm-dev libexpat1-dev curl libxerces-c2-dev libxext-dev libimlib2-dev libgmp-ocaml-dev libxmltooling-dev git git-core -y

Precisaremos da libtool 1.5. Será necessária a remoção da versão mais nova caso instalada.

Remover libtool:

sudo dpkg --purge libtool

Instalar Libtool 1.5:

wget http://mirrors.kernel.org/ubuntu/pool/main/libt/libtool/libtool_1.5.22-2_i386.deb
sudo dpkg -i libtool_1.5.22-2_i386.deb

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

CruxPorts4Slack - O ports para Slackware

O programa INIT

Instalando Compiz-Fusion no KUbuntu 8.04

Instalação Zabbix Server e Agente no CentOS 6

Asterisk: Entendendo o arquivo extensions.conf

  
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