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