Archivo

Archivo para febrero, 2015

¿Te ha desaparecido /dev/spidev0.0?

jueves, 5 de febrero de 2015 2 comentarios

Si tienes una Raspberry Pi, has actualizado el sistema operativo y te han dejado de funcionar las cosas que tenías conectadas en el GPIO es por una sencilla razón: en el kernel 3.18 se ha activado el soporte a Device Tree.

En mi caso me había dejado de funcionar el ambilight casero que tenía y, por ejemplo, boblight me lanzaba lo siguiente por el terminal:

SPI mapped from 0x0x20204000 to 0x0x16c5000

Boblightd 2.0 (optimized version for raspberry) (c) 2013 Speedy1985 and Heven)
(InitLog) start of log /root/.boblight/boblightd.log
(PrintFlags) starting boblightd
(CConfig::LoadConfigFromFile) opening /etc/boblight.conf
(CConfig::CheckConfig) checking config lines
(CConfig::CheckConfig) config lines valid
(CConfig::BuildConfig) building config
(CConfig::BuildConfig) built config successfully
(main) starting devices
(CClientsHandler::Process) opening listening TcpSocket on 127.0.0.1:19333
(CDevice::Process) AmbiLight: starting with output «/dev/spidev0.0»
(CDevice::Process) AmbiLight: setting up
(CDeviceSPI::SetupDevice) ERROR: AmbiLight: Unable to open /dev/spidev0.0: No such file or directory
(CDevice::Process) ERROR: AmbiLight: setting up failed, retrying in 10 seconds

Y efectivamente no existía ningún /dev/spidev0.0. Indagando encontré que en algunas distros (Raspbian) el módulo spidev o spi-bcm2708 no cargaban porque estaban en el fichero «/etc/modprobe.d/raspi-blacklist.conf» y había que comentar dichas líneas. En mi caso yo no tenía ningún módulo bajo el blacklist y me cercioré que mi kernel había sido compilado con las opciones correctas:

zcat /proc/config.gz  | grep -i SPIDEV

CONFIG_BCM2708_SPIDEV=y
CONFIG_SPI_SPIDEV=y

Pero la solución a mi problema fue añadir la siguiente línea al fichero «/boot/config.txt»:

dtparam=spi=on

Reiniciar y listo.

Categories: Raspbian, Raspbmc Tags: ,

Raspberry Pi y Limelight

miércoles, 4 de febrero de 2015 Sin comentarios

Limelight es un proyecto que trata de aprovechar la tecnología de streaming de las tarjetas gráficas de Nvidia para permitir jugar desde cualquier dispositivo. Entre ese «cualquier dispositivo» también entran las Rasperry Pi y, en mi caso, con Raspbmc.

Lo primero de todo será instalar la última versión disponible de Java (la versión de Oracle) ya que Limelight es un bonito jar. Para ello modificaremos los fuentes de APT para agregar los de Debian:

sudo vi /etc/apt/sources.list

Agregaremos esta línea

deb http://archive.raspberrypi.org/debian/ wheezy main

Haremos la importación de la clave, actualizaremos e instalaremos la versión 8 de java.

wget «http://archive.raspberrypi.org/debian/raspberrypi.gpg.key»

sudo apt-key add raspberrypi.gpg.key

sudo apt-get update

sudo apt-get install oracle-java8-jdk libopus-dev

Tras esto sólo nos queda descargar la última versión de Limelight de su Github.

wget –no-check-certificate «https://github.com/irtimmer/limelight-pi/releases/download/v1.2.1/limelight.jar»

Teniendo en cuenta que necesitamos un equipo que ejecute GeForce Experience 2.2.2 o superior (a parte de necesitar una gráfica Nvidia compatible), realizaremos el emparejamiento entre ambos dispositivos con el siguiente comando.

sudo java -jar limelight.jar pair 192.168.x.x

Y ya podremos lanzar Limelight desde nuestra Raspberry. Habrá que tener en cuenta que necesitaremos cerrar Xmbc/Kobi y cargar el módulo de sonido.

service kobi stop

modprobe snd_bcm2835

sudo java -jar limelight-pi.jar  stream 192.168.x.x

Si además tenemos un mando con el que queramos jugar tendremos primero que realizar un mapeado del mismo. En primer lugar tendremos que identificar dónde está nuestro mando y si ha sido reconocido correctamente. Para tal fin podremos utilizar evtest:

sudo apt-get install evtest
sudo evtest

Una vez localizada la ruta, realizaremos el mapeado del mismo y lo almacenaremos en un fichero (en mi caso el mando estaba en /dev/input/event2 y el fichero quería que fuese ps2-1.map).

sudo java -jar limelight.jar map -input /dev/input/event2 ps2-1.map

Así que, finalmente, ejecutaremos lo siguiente:

sudo java -jar limelight.jar -mapping /home/pi/ps2-1.map stream 192.168.x.x

Una última consideración a tener en cuenta es que deberemos tener Steam cerrado antes de lanzar Limelight y que, a pesar de que el rendimiento de vídeo a través de cable de red es muy bueno, el sonido a mi me ha estado dando problemas.

Categories: Raspberry Pi, Raspbmc Tags: ,

Ejecutar Wine en un sandbox

miércoles, 4 de febrero de 2015 Sin comentarios

Cuando ejecutamos una aplicación a través de Wine, ésta tiene normalmente acceso a nuestro home, con lo que nos podemos llevar un buen susto si dicha aplicación le da por hacer maldades. Para evitar esta problemática, podemos optar por diversas soluciones, ejecutar Wine con otro usuario distinto al nuestro o hacer uso de un sandbox (algo así como un entorno aislado).

Sólo necesitamos ejecutar una orden con winetricks para hacer que todo aquello que se ejecute después con Wine lo haga en un sandbox.

winetricks sandbox

De todos modos, si queréis más seguridad os recomiendo la lectura de Securing Wine.

Categories: GNU/Linux Tags: ,