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 ‘mount’ cual 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.desktop’ con 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 -c “vncserver :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: ‘alsamixer’ y 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 h –jpeg 95 –shadow –title “Tundra IT” –subtitle “Blog 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á sucediendo… Lo primero será instalarlo con ‘apt-get install motion’. Editaremos ‘/etc/motion/motion.conf’ todos 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 on’ nos dibujará un rectángulo del objeto que detectó el movimiento.
– Con ‘text_right’ o ‘text_left’ pondremos los textos que nos interesen en cada frame.
– ‘output_normal off’ para cuando se detecte un movimiento que no nos guarde la imagen jpg.
– ‘ffmpeg_cap_new off’ para que no nos guarde vídeos con los movimientos. O ‘on’ para 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/motion’ podremos indicar que arranque automáticamente motion con el sistema editando: ‘start_motion_daemon=yes’. La primera vez deberemos crear el directorio ‘/var/run/motion’ para 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 defaults’ y 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: ‘RPiTC – Raspberry Pi Thin Client Project‘ que 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!










































