lunes, 29 de agosto de 2011

Instalando Ginga en una PC

Una vez que hemos tomado la decisión de volvernos desarrolladores de aplicaciones interactivas para TV Digital con Ginga, lo primero que buscamos son herramientas de desarrollo y ejecución, en los dos tutoriales publicados anteriormente, les presente dos herramientas para desarrollo de apps: la primera que es utilizando el IDE Eclipse ayudado de la instalación de los plugins de NCL y Lua desarrollados por la PUC-Rio, esta herramienta como se vió, es para personas mas experimentadas; y la segunda era utilizando la herramienta "CreaTV Digital" desarrollado por la U de Rio Cuarto, con ayuda de un entorno gráfico muy agradable y sencillo de utilizar. Pero en ninguna de estas herramientas se encuentra incluido ningún software que nos permita ejecutar nuestras aplicaciones desarrolladas, motivo por el cual me he visto en la necesidad de escribir este nuevo tutorial.

Para que un desarrollador pueda ejecutar sus aplicaciones interactivas tiene dos opciones, la primera es virtualizando la imagen del STB que se encuentra disponible en varias versiones; y la segunda que es instalando nativamente el código fuente de Ginga en nuestra PC. Esta última opción es la que se abarcará en este tutorial, ya que así optimizamos recuros de procesamiento y memoria de nuestra PC de desarrollo, además que una vez instalado de esta forma, podremos enlazarlo directamente con cualquiera de las dos herramientas de desarrollo anteriormente mencionadas para ejecutar nuestras aplicaciones, lo que se verá en el siguiente tutorial.


Los pasos a continuación a seguir, ha sido recopilados de varias fuentes y que en conjunto han permitido hacer este proceso lo más sencillo posible, de tal manera que aquellos que utilicen este tutorial no necesiten de conocimientos muy profundos en lo que concierne a la compilación por lineas de comandos en Ubuntu.

Antes de empezar con el proceso de compilación e instalación del código de Ginga en nuestra PC, es necesario instalar ciertas dependencias que serán indispensables para poder llevar a efecto lo planteado.

  • Herramientas adecuadas y actualizadas para compilación:

$ sudo apt-get install libtool autoconf automake g++  pkg-config cmake  cmake-dbg

  • Librerías Boost C++ en su version actual 1.42: 

$ sudo apt-get   install   libboost-date-time-dev libboost-date-time1.42  libboost-dev   libboost-doc   libboost-filesystem-dev   libboost-filesystem1.42   libboost-graph-dev   libboost-graph1.42   libboost-iostreams-dev   libboost-iostreams1.42 libboost-program-options-dev   libboost-program-options1.42   libboost-python-dev   libboost-python1.42   libboost-regex-dev   libboost-regex1.42   libboost-signals-dev   libboost-signals1.42   libboost-test-dev   libboost-test1.42   libboost-thread-dev   libboost-thread1.42  

  • Librerías de Google's framework para escribir pruebas C++:

$ sudo apt-get install  libgtest0  libgtest-dev

  • Librerías XML parser para C++ 

$ sudo apt-get install libxerces-c-dev

  • Librerías para LUA:

$ sudo apt-get  install libluabind9.0  libluabind-doc  libluabind-dev  libluabind-dbg  libluabind-examples  liblua5.1-curl-dev liblua5.1-curl0 liblua5.1-0-dev

  • Librerías libcurl:

$ sudo apt-get install libcurl-ocaml-dev  libcurl4-openssl-dev

  • Librerías de codecs de video:

$ sudo apt-get install  libxine-dev libavformat-dev libavcodec-dev libxine1-ffmpeg 

  • Bibliotecas para la base de datos Berkeley v4.7

$ sudo apt-get install libdb4.7-dev

  • Librerías para  DirectFB

$ sudo apt-get install libdirectfb-dev

  • Librerias para archivos formato PNG:

$ sudo apt-get install libpng12-dev

  • Librerías de desarrollo OpenSSL:

$ sudo apt-get install libssl-dev libnewpki2

  • Librerías de GPM:

$ sudo apt-get install ocaml-base-nox  libfindlib-ocaml-dev camlp4 camlp4-extra  libfindlib-ocaml


Una vez instaladas todas la dependencias anteriormente citadas, procedemos a la instalacion de FusionSound debido a que muy pocas distribuciones de Linux tienen este incluido. Se instalará la versión  que se encuentra en el repositorio GIT, para lo cual previamente se debe tener instalado el GIT, pero en caso de no tenerlo ejecutamos primero la siguiente linea:

$ apt-get install git-core

Para luego proceder a instalar el repositorio GIT:

$  git clone git://git.directfb.org/git/directfb/core/DirectFB.git
$ git clone git://git.directfb.org/git/directfb/core/FusionSound.git

Una vez que tenemos los fuentes, simplemente los compilamos:

$ cd FusionSound
$ ./autogen.sh

Después de ejecutar el comando anterior se verá una lista de verificaciones de software actualizado necesario. Se debe prestar mucha atención a esta lista, pues en el caso que se utilice una instalación de Ubuntu reciente es probable que muchas herramientas y librerías estén desactualizadas. Actualice todas aquellas que presentaron error. Posteriormente introduzca el siguiente comando para compilar.

$ make
$ sudo make install

Una vez ejecutado este código, habremos compilado el FusionSound.

Después de haber ejecutado todo el proceso anterior ya tenemos todas las dependencias necesarias para poder compilar Ginga en nuestra PC, el siguiente paso sera descargar las fuentes de Ginga del repositorio subversión usando el comando svn checkout, en caso de no tener instalada esta herramienta procedemos a anteponer el siguiente comando para instalarla:

$ apt-get install subversion 
$ svn checkout svn://scm.ourproject.org/svnroot/ginga/middleware/ginga.ar/tags/release/1.1.0

Este proceso puede durar un par de minutos, pues necesita descargar todos los archivos necesarios para la compilación de la parte más importante del emulador de Ginga NCL.

Después de haber descargado las fuentes satisfactoriamente, se debe instalar un parche que corrige algunos errores de la version 1.1.0 con las nuevas versiones del FusionSound. Es importante mencionar que la dirección en la que se ejecuta el comando de patch debe ser la carpeta /1.1.0. De otra forma no funcionará. 

Para esto digitamos en la terminal:

$ gedit

Y nos aparecerá un docuemnto de texto plano en blanco, dentro de el debemos copiar el contenido del enlace Parche y guardarlo con el nombre “ginga.fusionsound.patch” (sin comillas).

Es importante recordar que este archivo debe tener el nombre especificado y debe encontrarse en el directorio /Fusionsound/1.1.0/ para que se pueda ejecutar.

Una vez creado el archivo, se ejecuta el comando patch de la siguiente forma, es importante mencionar que el archivo se lo debe ejecutar desde la carpeta en la que se instaló el fusion sound, y consecuentemente el archivo de parche debe estar en la misma carpeta. En este caso, el directorio es dentro de 1.1.0: Se ejecuta el siguiente comando:

$ patch -p0 < ginga.fusionsound.patch 

Se presentarán dos lineas que verificaran el proceso del patch en la carpeta. Esas líneas deberían verse de esta manera:

patching file src/gingacc-system/src/io/interface/content/audio/FFmpegAudioProvider.cpp
patching file src/gingacc-system/src/io/interface/content/video/FFmpegVideoProvider.cpp

Como último paso antes de compilar Ginga meramente, debemos compilar e instalar un conjunto de librerías llamado telemidia-links ejecutaremos el siguiente comando para el telemidia links dentro de la carpeta /1.1.0/src/telemidia-links (no esta demás recordar la necesidad de leer bien lo que nos muestra al ejecutar los comandos, pues muchas veces podrían dar error por falta de herramientas y librerías):

$ sudo ./autogen.sh --enable-graphics --with-directfb --enable-javascript --without-x --without-sd1 --prefix=/usr --enable-debuglevel=0

Cuando este termine de verificar, dará una lista resumen de las herramientas habilitadas. En el caso que no termine la verificación se debe leer con cuidado la herramienta que falta e instalarla. Posteriormente, se pasa a la compilación. Usamos los siguientes comandos:

$ sudo make 
$ sudo make install 
$ cd ../../../

Después de este comando, se muestra un resumen de la instalación.

Ahora estamos listos para para compilar e instalar el Ginga propiamente dicho. En este caso, la instalación se realiza sobre el directorio /usr/local.
Una vez dentro, ejecutamos los siguientes comandos.

$ cd 1.1.0/src/ 
$ sudo ./ginga-build.sh -i -S -P /usr/local -C /usr/local 

Durante la instalación se mostrarán los paquetes instalados y los paquetes que faltan instalar. Se debe leer con cuidado para poder instalar las herramientas que faltan y completar la configuración y compilación del Ginga NCL.

Para terminar configurar los últimos detalles del software emulador de Ginga vamos a ejecutar algunos pasos finales. Creamos unos archivos de configuración. Primero debemos obtener permisos de administrador y ejecutar los siguientes comandos:

$ sudo su
$ echo "/usr/lib/ginga" > /etc/ld.so.conf.d/ginga.conf 

Luego cargamos nuestro archivo de configuración y nos salimos del modo administrador con los siguientes comandos:

$ ldconfig 
$ exit

Luego creamos un archivo de configuración para el DirectFB, esto es necesario para poder trabajar sobre el entorno gráfico X11, Gnome, etc.

$ echo "system=x11" > ~/.directfbrc

Posterior a este comando deberíamos tener listo Ginga para ser ejecutado. Para poder probar un archivo en NCL simplemente ejecutamos la siguiente instrucción:

ginga --ncl <algún documento .ncl>

No hay comentarios:

Publicar un comentario