HISTORIAS DE UN DÍA DE TRABAJO

Experiencias tecnológicas del día a día

Raspberry Pi + Symfony2

with 2 comments

¿Qué es Raspberry PI?

Raspberry PI (http://www.raspberrypi.org/) es un proyecto de hardware libre desarrollado por la Fundación Raspberry Pi. Este dispositivo es una CPU de bajo coste (entre 25$ y 35$ según modelo) del tamaño de una tarjeta de crédito. El dispositivo está dotado de dos puertos USB donde conectar los periféricos que desees, un puerto de ethernet y salidas de video y audio analógicas y digitales. Su disco duro consiste en una tarjeta SD sobre la que fácilmente puedes cargar una distribución linux. Según dice la potencia es equivalente a un Pentium2 300Mhz pero con capacidades gráficas muy superiores (es capaz de reproducir video en alta definición a través de su interfaz HDMI). Este dispositivo ha generado una pequeña revolución en la red que está plagada de información y proyectos creados a partir de él: Transformarlo en media center, en una consola de juegos clásicos mediante un emulador (o no tan clásicos, he visto correr con fluided el Quake3), aplicado a robótica o domótica… Tras las primeras pruebas he de decir que este dispositivo es mágnifico para el uso que se creó: aprender.

Primeros pasos

Infinitos tutoriales pueden guiarte en tus primeros pasos. Para comenzar a trabajar debes empezar por preparar una tarjeta SD con el sistema operativo. En mi caso eligí la imagen con Debian y la descargué de la web oficial de Raspberry. Una vez descargada debes instalarla en la tarjeta SD. Hay un montón de documentación de la web de como conseguirlo. Yo utilicé ImageWriter para copiarla a la tarjeta desde mi Linux Mint. Una vez creada la insertas en el dispositivo, conectas teclado y televisión (utilizo HDMI) y voilá.

Cuando se enciende verás que puedes acceder al sistema en modo texto. Si escribes el comando startx se ejecuta el sistema gráfico.

Si has elegido Debian como yo es necesario que redimensiones las particiones pues la instalación inicial sólo utilizará 2 Gb de la tarjeta. Lo puedes hacer siguiendo los pasos de este video: http://www.youtube.com/watch?v=R4VovMDnsIE

Y yo, nada más llegar a este punto, activé SSH para poder desconectarlo del monitor y empezar a trabajar con este dispositivo en modo remoto. Aquí podéis ver como lo hice: http://steve.dynedge.co.uk/2012/05/29/enabling-ssh-on-debian-raspberry-pi/

A por Symfony2

Llegados aquí me surge la idea de probar si se pueden correr aplicaciones PHP en el sistema. La idea que tengo en la cabeza es crear un servicio web para comunicarme con el “juguete”. Para implementar las ideas que tengo en la cabeza creo que Silex será suficiente, pero hay que divertirse un poco. Así que me pongo manos a la obra y trato de instalar la aplicación Cupon de Javier Eguiluz. Así que lo primero es instalar el software necesario, básicamente php5, MySQL, Apache2 y sus dependencias… Así que instalo lo siguiente:

sudo apt-get install apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common ca-certificates ca-certificates-java dbconfig-common git heirloom-mailx icedtea-6-jre-cacao java-common libaccess-bridge-java libaccess-bridge-java-jni libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libasyncns0 libcurl3-gnutls libdbd-mysql-perl libdbi-perl liberror-perl libflac8 libgd2-xpm libgif4 libhtml-template-perl libidn11 liblcms1 liblockfile1 libmcrypt4 libmysqlclient16 libnet-daemon-perl libonig2 libplrpc-perl libpulse0 libqdbm14 libsndfile1 libsqlite0 libt1-5 libvorbisenc2 lockfile-progs mysql-client-5.1 mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1 ntpdate openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib openssl php-apc php5 php5-cli php5-common php5-gd php5-mcrypt php5-mysql php5-sqlite php5-suhosin phpmyadmin rsync ssl-cert ttf-dejavu-extra tzdata-java vim vim-common vim-runtime

Si decides hacerlo es un buen momento para irte a tomar unas cervezas, pero no trates de beber hasta que termine o acabarás borracho. El proceso tarda. Una vez terminado, a tirar de git y del manual disponible junto a la aplicación para instalarla… Todo esto se puede encontrar en https://github.com/javiereguiluz/Cupon perfectísimamente documentado. Cuando terminé de seguir estos pasos pude obtener esta captura de pantalla 🙂

Captura de pantalla de Cupon (aplicación Symfony2) sobre Raspberry Pi

(Vaya, en la captura de pantalla que he subido no se ve la foto. Un lapsus, lo siento)

En la captura se aprecia la carga del sistema y el tiempo de respuesta. Mi opinión: No sirve para desarrollar sobre él, el entorno de desarrollo es lentísimo. Más vale que si tu intención es hacer una web que corra sobre Raspberry Pi,  la desarrolles en tu PC y después la instales en el dispositivo. El tiempo de ejecución del entorno de producción responde en un tiempo mucho más aceptable, en torno a un segundo. Puede parecer mucho, yo creo que según lo que pretendas hacer. Para llevar a cabo las ideas que tengo en la cabeza y tras ver estos resultados voy a implementarlos en Silex y usando sqlite3. Creo que el tiempo de respuesta será suficientemente rápido sobre todo si lo que pretendo es dar ordenes al sistema. Pero antes de nada habrá que hacer una pruebacilla, como la que he presentado aquí con Symfony para saberlo. Eso ya será para la próxima entrega 😉

Anuncios

Written by David Fuertes

06/08/2012 a 11:39

Publicado en Sin categoría

2 comentarios

Subscribe to comments with RSS.

  1. Hola! probaste con Silex y usando sqlite3 ?. El rendimiento es usable para un sistema de carga de datos en la raspberry pi?

    Guillermo

    09/10/2013 at 17:13

    • Hola,

      No, en su día no hice esa prueba.Tengo mis dudas de cual era el estado del proyecto silex cuando publiqué mi entrada. Sería interesante hacer la prueba pero no puedo prometer que tenga tiempo de hacerla a corto plazo 😦 Respecto a la pregunta: El rendimiento es usable para un sistema de carga de datos en la raspberry pi? Depende exactamente en que estés pensado…

      David Fuertes

      12/10/2013 at 19:57


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: