Raspberry Pi – Introducció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? Ez! Lo siguiente!

 

Laburbil-labur definitua zer den RPi, bakarrik geratuko zaigu pentsatzea zergatik behar dugun, bere tamaina txikiagatik (tabako-pakete baten tamaina), bere elikadura eskasa eta potentziala, gure burmuina askatzeko eta erabilera desberdinak pentsatzeko aukera emango digu. ThinClient gisa talde gisa (eta Citrix XenApp aplikazioak abiarazteko, VMware View/XenDesktop mahaigainak, RDP…), multimedia gailua, bideo zaintza gailua, mugikorreko gailua (bateri batekin 10.000 mAh gutxi gorabehera 12 orduko autonomia izango dugu. Edo USB nano Wifi bat jartzea konexioa izateko…), domotika… Hori sortu duen fundazioak, helburu du haur guztientzako eta eskoletarako ordenagailu bat izateko aukera hurbiltzea. 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.

Onena, 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, emulatzailea erabil dezakegu QEMU (edo Q Mac OS-en).

RPi-ren konfigurazio aurreratua egiteko, '/boot/config.txt' editatu ahal izango dugu’ gure intereseko parametroekin http://elinux.org/RPi_config.txt.

 

Hasierako logotipoa aldatuz,

Gure RPi-ren abiarazte azkarra modu korporatiboan pertsonalizatu nahi badugu, gure erakundearen logotipoarekin, ikuslea instalatu ahal izango dugu 'apt-get install fbi' erabiliz, irudia '/etc/splash.png' uzten dugu’ eta ' /etc/init.d/asplashscreen' script-a sortuko dugu’ con:

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

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

do_start () {

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

case "$1" in
start|"")
do_start
;;
berrabiarazi|reload|force-reload)
echo "Errorea: argumenua '$1’ ez da onartua" >&2
exit 3
;;
stop)
# No-op
;;
egoera)
exit 0
;;
*)
echo "Usage: asplashscreen [start|stop]" >&2
exit 3
;;
esac

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

Exekutagarria egingo dugu 'chmod a+x /etc/init.d/asplashscreen' erabiliz’ eta indicamos que sea un demonio que arranque automáticamente 'insserv /etc/init.d/asplashscreen'. Reiniciamos y lo comprobamos! Bestela, la RPi no viene por defecto con una carcasa, por lo que si buscamos on, zuzenean erosi ahal izango ditugu kaxa ere corporativa con el logo impreso. Un produktu bat konektatzeko edozein gorri eta gure erabiltzaileei zerbitzua emateko, accediendo de forma segura a su organización!

 

Como visor de videos o equipo multimedia,

Sobre la distribución Wheezy, zuzenean podremos utilizar el visor de videos Omxplayer ejecutando: 'omxplayer -r -o hmdi PATH_FICHERO’ para 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=lxterminal –command "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 24” pi

 

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’. Komandoa:
‘fswebcam -r 640×480 -S 15 –flip hjpeg 95 –shadow –title “Tundra IT” –subtitleBlog bujarra.com” –info “Monitor: 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:pasahitza’
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, bideo-formatu bat ezarri beharko litzateke.

Gainera, komando-lerro bidez mezuak bidaltzeko sendEmail instalatu ahal izango dugu: ‘apt-get install sendemail’.
Irudia atxikita bidaltzeko posta-komandoa: ‘sendemail -f PERTSONA_ITURRIA@DOMINIO_ITURRIA -t PERTSONA_HELBIDEA@DOMINIO_HELBIDEA -s SMTP_ZERBITZARIA -m TESTU_GORPUTZA -u TESTU_GAIA -xu SMTP_AUTENTIKAZIO_ERABILTZAILEA -xp SMTP_AUTENTIKAZIO_PASAHITZA -o tls=auto -a %f

Edo bakarrik igo FTP batera honekin: ‘wput ftp://USUARIO:PASAHITZA*@*****IO.COM %f’

Adibidez, alerta hauek automatizatzeko komando horiek honako gertakari hauetan sar ditzakegu:
on_event_start
on_picture_save

Demonio gisa jarriko dugu ‘daemon on’ parametroarekin, geroago demonio modu obligaziorik gabe exekutatu nahi badugu, ‘motion -n’ bezala exekutatuko dugu. 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
# Deskribapena:
#
### 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.
– …

Ubi erraz pertsonalizatu ahal izango ditugu irekiera edozein parametroekin eta behar ditugun parametroekin!! Onena, honekin amaitu genuen dokumentu hau, non ezaugarri sendoak estimatzen ditugun eta gure irudimena gure maite RPi!

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!

XenApp Manager

21 Abenduko 2012