Raspberry PiIntroducción

Estos días que andamos testeando distintos ThinClient han pasado por mis manos una Raspberry Pi, que no es un ThinClient, pero obviamente se puede utilizar como ello, quería escribir este artículo para acercar este dispositivo a todos aquellos que no lo conozcan o hayan tenido la suerte de poder probarlo. La RPi (modelo B) es un pequeño ordenador (CPU ARM de 700Mhz y 512Mb RAM) con 2 salidas USB, 1 RJ45, 1 HDMI, 1 RCA, conector GPIO, espacio para 1 SD CARD y que alimentaremos con un MicroUSB a 5V. Podremos hacernos con una Raspberry Pi por unos 30€. ¿Barato? No! Lo siguiente!

 

Definida muy brevemente lo que es una RPi, unicamente nos quedará pensar para qué la necesitamos, ya que su pequeño tamaño (de un paquete de tabaco), su escasa alimentación y su potencial, nos permitirá liberar la mente y pensar distintas utilidades. Como equipo ThinClient (y arrancar aplicaciones de Citrix XenApp, escritorios con VMware View/XenDesktop, RDP…), equipo multimedia, equipo de video vigilancia, equipo móvil (con una bateria de 10.000 mAh tendremos una autonomía de 12h aprox. O ponerle un USB nano Wifi para tener conectividad…), domoticaLa fundación que la ha creado, tiene como objetivo el acercar a todos los niños y escuelas la posibilidad de tener un ordenador. Uno de los proyectos que más están llamando la atención es la posibilidad de traducir de forma simultánea (con subtitulos en unas gafas) la conversación entre dos personas de distintos paises, mejor verlo que explicarlo: http://www.raspberrypi.org/archives/1689.

Bueno, el primer paso será descargar el S.O. que querramos en nuestra RPi, para ello tendremos la web de imágenes oficiales: http://www.raspberrypi.org/downloads. Podremos utilizar imágenes oficiales o personalizadas por los usuarios de la comunidad, en este primer ejemplo bajaremos una Raspbian “wheezy”, que es una distro optimizada basada en Debian.

Para meter la imagen en la tarjeta SD Card, lo haremos con la utilidad Win32DiskImager en Windows o en Linux o Mac mediante:

Meter la SD Card en nuestros PC’s y ver con ‘mountcual es la SD card
Desmontar la SD card con: diskutil umount /dev/disk2s1
Volcar la imagen a la SD Card: sudo dd if=2012-10-28-wheezy-raspbian.img of=/dev/disk2s1 bs=1
Expulsarla con: diskutil eject /dev/disk2s1

La introduciremos en nuestra Raspberry y la encendemos, nos preguntará unos parámetros básicos como si queremos arrancar X automáticamente, cambiar la contraseña del usuario ‘pi’, extender la partición a toda la SD, idioma, rangos horarios, si queremos SSHd habilitado por defecto

Una vez arrancada será aconsejable actualizarla con: ‘apt-get update’ & ‘apt-get upgrade’.

Si queremos practicar antes de tener una Raspberry Pi o para luego volcarla una imagen de disco personalizada, podremos utilizar el emulador QEMU (o Q en Mac OS).

Para una configuración avanzada de la RPi, podremos editar ‘/boot/config.txtcon los parámetros que nos interensen de http://elinux.org/RPi_config.txt.

 

Modificando el logo de inicio,

Si queremos personalizar el rápido inicio de nuestra RPi de una forma corporativa con el logo de nuestra organización podremos instalar el visor con ‘apt-get install fbi’, dejaremos la imagen en ‘/etc/splash.pngy crearemos el script ‘/etc/init.d/asplashscreencon:

[sourcecode]——————————————–[/sourcecode]

[sourcecode]#! /bin/sh
### BEGIN INIT INFO
# Provides: asplashscreen
# Required-Start:
# Required-Stop:
# Should-Start:
# Default-Start: S
# Default-Stop:
# Short-Description: Show custom splashscreen
# Description: Show custom splashscreen
### END INIT INFO

do_start () {

/usr/bin/fbi -T 1 -noverbose -a /etc/splash.png
exit 0
}

case "$1" in
start|"")
do_start
;;
restart|reload|force-reload)
echo "Error: argument ‘$1not supported" >&2
exit 3
;;
stop)
# No-op
;;
status)
exit 0
;;
*)
echo "Usage: asplashscreen [start|stop]" >&2
exit 3
;;
esac

:
——————————————–[/sourcecode]

Lo haremos ejecutable con ‘chmod a+x /etc/init.d/asplashscreene indicamos que sea un demonio que arranque automáticamente ‘insserv /etc/init.d/asplashscreen’. Reiniciamos y lo comprobamos! Por cierto, la RPi no viene por defecto con una carcasa, por lo que si buscamos bien, podremos adquirirlas directamente con una caja también corporativa con el logo impreso. Un producto para conectar a cualquier red y dar servicio a nuestros usuarios, accediendo de forma segura a su organización!

 

Como visor de videos o equipo multimedia,

Sobre la distribución Wheezy, directamente podremos utilizar el visor de videos Omxplayer ejecutando: ‘omxplayer -r -o hmdi PATH_FICHEROpara abrir un video y sacarlo por el HDMI.

Si queremos darle doble click a un video y que se nos reproduzca automáticamente, valdrá con crear el fichero ‘/usr/share/applications/omxplayer.desktopcon el contenido:

[sourcecode]——————————————–
[Desktop Entry]
Type=Application
Name=OMXPlayer
Categories=AudioVideo;Player;
Exec=lxterminalcommand "omxplayer -o hdmi %f"
Terminal=false
Icon=/usr/share/icons/nuoveXT2/96×96/categories/applications-multimedia.png
——————————————–[/sourcecode]

Si unicamente lo queremos como equipo multimedia lo ideal será meter una distribución totalmente preparada con XBMC como pueden ser XBian o RaspBMC, por citar dos de las mejores. La prueba que verificó que la Raspberry Pi es totalmente válida para esto, fué el reproducir perfectamente una película con formato matroska 1080p!!!

 

Montandole un servidor VNC,

Por si alguien necesita un acceso remoto (que no sea con ssh) bastará con instalarle TightVNC con ‘apt-get install tightvncserver’. Configuramos el servicio indicandole la contraseña para el acceso con: ‘vncserver’. Creamos una sesión con: ‘vncserver :1 -geometry 1280×800 -depth 24’.

Si queremos que arranque TightVNC al inicio con la Raspberry Pi, añadimos al final del todo (pero antes del exit!) en ‘/etc/rc.local’:
su -cvncserver :1 -geometry 1280×800 -depth 24pi

 

Uso de micrófono,
Una vez conectado uno (o el propio de una WebCam), cargaremos el módulo con: ‘modprobe snd_bcm2835
Y podremos hacer las grabaciones con:
a WAV: ‘arecord -D plughw:1,0 test.wav’ (se para después con CTR+C)
a MP3: Instalaremos previamente LAME (‘apt-get install lame’) y ejecutar después: ‘arecord -f cd -t raw | lame -x -r – out.mp3

Para reproducir el audio: ‘aplay test.wav
Para jugar con el micro y darle más/menos audio utilizaremos: ‘alsamixery luego grabar los cambios con: ‘alsactl store’.
Para hacer streaming (o sacar el audio) del Raspberry Pi a otro equipo en remoto, lo haremos con: ‘arecord -D plughw:1,0 -f dat | ssh -C USUARIO@EQUIPO_REMOTO aplay -f dar

 

Uso de Webcam,

Para mí una de las cosas a la que le voy a dar más utilidad, desde poner un detector de movimiento en la puerta de casa y que me mande un correo con las imágenes detectadas, o al ir grabando los recorridos con mi coche por todos los motivos que se nos ocurran

Lo primero, una aplicación sencilla para sacar fotos al de X segundos (-l), la instalamos con ‘apt-get install fswebcam’. Comando:
‘fswebcam -r 640×480 -S 15 –flip hjpeg 95 –shadowtitleTundra IT” –subtitleBlog bujarra.com” –infoMonitor: Active @ 1 fpm” –save home.jpg -q -l 60’.

Para grabar un video directamente con: ‘ffmpeg -f video4linux2 -r 25 -s 640×480 -i /dev/video0 /tmp/video.avi

Uso de ‘motion’, esta herramienta nos permitirá utilizar nuestra RPi como sistema de videovigilancia, desde grabar video o imágenes, a poder conectarnos a una URL y poder visualizar lo que está sucediendoLo primero será instalarlo con ‘apt-get install motion’. Editaremos ‘/etc/motion/motion.conftodos los parámetros que necesitemos, para mí los que más me han encajado:

Habilitar conexión remota: ‘webcam_localhost off
Cambiar el destino de las imágenes con: ‘target_dir /home/pi/Desktop/motion
Cambiar el puerto al que nos conectaremos desde el navegador: ‘webcam_port 8081
Asignar un usuario para autenticarnos en la web: ‘control_authentication usuario:contraseña
Establecer la calidad de imágen: ‘quality 60
Establecer el correcto tamaño de captura de nuestras imágenes con: ‘width’ & ‘height
Para escoger el codec con el que comprimirá el video: ‘ffmpeg_video_codec mpeg4
Subir de 1500 a lo que nos encaje para que detecte más pídeles movidos con: ‘threshold 4000
– %f será el nombre del fichero (con su path), por si lo queremos utilizar como variable.
Con ‘locate onnos dibujará un rectángulo del objeto que detectó el movimiento.
Con ‘text_righto ‘text_leftpondremos los textos que nos interesen en cada frame.
‘output_normal offpara cuando se detecte un movimiento que no nos guarde la imagen jpg.
‘ffmpeg_cap_new offpara que no nos guarde vídeos con los movimientos. O ‘onpara que use la librería ffmpeg, se deberá establecer un formato de video.

Además, podremos instalar sendEmail para mandar correos por línea de comando: ‘apt-get install sendemail’.
Comando para enviar de correo con la imagen adjunta: ‘sendemail -f PERSONA_ORIGEN@DOMINIO_ORIGEN -t PERSONA_DESTINO@DOMINIO_DESTINO -s SERVIDOR_SMTP -m TEXTO_CUERPO -u TEXTO_ASUNTO -xu USUARIO_AUTENTICACION_SMTP -xp CONTRASEÑA_AUTENTICACION_SMTP -o tls=auto -a %f

O unicamente subirla a un FTP con: ‘wput ftp://USUARIO:CONTRASEÑ*@DO*****.COM %f

Podremos configurar por ejemplo en los siguientes eventos el introducir dichos comandos para automatizar dichas alertas:
on_event_start
on_picture_save

Lo pondremos como demonio con el parámetro ‘daemon on’, si queremos ejecutarlo posteriormente sin forzar el modo demonio lo ejecutaremos como ‘motion -n’. Y en ‘/etc/default/motionpodremos indicar que arranque automáticamente motion con el sistema editando: ‘start_motion_daemon=yes’. La primera vez deberemos crear el directorio ‘/var/run/motionpara que no de errores al arrancar el demonio.

A mí esto último me ha estado dando problemas y me bloqueaba la cámara al de unos cuantos frames sacados, así que sin más sentido he tenido que crearme un proceso que lo arranque sin depender de lo que nos permite motion. Este sería mi ‘/etc/init.d/hhh-motion

[sourcecode]——————————————–
#!/bin/bash
### BEGIN INIT INFO
# Provides: blabla
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: blabla
# Description:
#
### END INIT INFO

#! /bin/sh
# /etc/init.d/hhh-motion
#

# Some things that run always
# touch /var/lock/blah

# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting script hhh-motion"
mkdir /var/run/motion
motion
;;
stop)
echo "Stopping script hhh-motion"
echo "start_motion_daemon=no" > /etc/default/motion
/etc/init.d/motion stop
;;
*)
echo "Usage: /etc/init.d/hhh-motion {start|stop}"
exit 1
;;
esac

exit 0
——————————————–[/sourcecode]

Lo creamos como servicio con ‘update-rc.d hhh-motion defaultsy reiniciamos para probar!

 

Uso de Citrix,

Si estamos utilizando la imagen base Debian Wheezy (en el modelo B) no podremos instalar el cliente de Citrix, ya que Citrix genera clientes para linux x86, x64 y ARM (el ARM no nos vale ya que está basado en ARMEL y no en armhf, que es la arquitectura de la imagen base que trae). Así que sin indagar más y esperando un próximo documento os remito al utilizar una imagen llamada: ‘RPiTCRaspberry Pi Thin Client Projectque es una distribución basada en Thin Client con las siguientes utilidades:

VMWare View Client 1.6.0
Citrix Receiver para Linux 12.2.3
Quest vWorkspaces 7.0b.
RDesktop 1.7.1.
SPICE Client (virt-viewer 0.5.3).
IceWeasel 10.x con extension de Citrix.
– …

Donde podremos personalizar fácilmente la apertura de cualquiera de ellas con los parámetros que necesitemos!! Bueno, con esto finalizamos este documento, donde podremos apreciar bastantes características y podremos dar rienda suelta a nuestra imaginación con nuestras queridas RPi!

Posts recomendados

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir ;) . Disfrutar de los documentos!!!

XenApp Manager

21 de December de 2012