Archivo

Archivo para la categoría ‘Raspberry Pi’

Moonlight en una Raspberry Pi 2 modelo B

miércoles, 25 de mayo de 2016 Sin comentarios

Debido a problemas legales, Limelight tuvo que cambiar el nombre por el de Moonlight, una aplicación que permite hacer streaming de juegos de un ordenador a otro dispositivo (un Android o una Raspberry Pi entre otros) aprovechando la tecnología de Nvidia. Hace algún tiempo explicaba cómo instalar y configurar la aplicación en una Raspberry Pi de primera generación y el asunto no ha cambiado mucho.

Editamos el fichero de repositorios añandiendo al fichero “/etc/apt/sources.list” la siguiente nueva línea :

deb http://archive.itimmer.nl/raspbian/moonlight jessie main

Actualizamos el sistema e instalamos la aplicación:

apt-get update

apt-get upgrade

apt-get install moonlight-embedded

Emparejaremos nuestra Raspberry con nuestro ordenador (suponiendo que tenga la IP 192.168.1.5):

moonlight pair 192.168.1.5

El comando anterior nos dará un código que tendremos que poner en el ordenador a través de un diálogo de GeForce Experience.

Una vez emparejados, sólo tendremos que detener Kodi (si es que lo tenemos en marcha) y lanzar Moonlight que, automáticamente, activará el Big Picture de Steam:

sudo systemctl stop mediacenter

moonlight stream -1080 -60fps 192.168.1.5

Para detener el streaming y volver a arrancar Kodi podemos utilizar los siguientes comandos:

moonlight quit

sudo systemctl start mediacenter

Si además tenemos un mando de PS2 conectado por USB (el de la Xbox 360 funciona sin tener que tocar nada) a través de un adaptador, deberemos 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/event5 y el fichero quería que fuese ps2-1.map). Nos irá pidiendo que pulsemos los botones adecuados del mando y lo único a tener en cuenta es que pide un botón más de los que tenemos disponibles debido a que usa el esquema de Xbox 360.

moonlight map -input /dev/input/event5 ps2-1.map

Así que, finalmente, ejecutaremos lo siguiente:

moonlight stream -1080 -60fps -mapping /home/osmc/ps2-1.map 192.168.1.5

Adjunto el contenido de mi fichero .map por si a alguien le resulta de utilidad:

abs_x = 0
abs_y = 0
abs_z = -1
reverse_x = false
reverse_y = true
abs_rx = 5
abs_ry = 2
abs_rz = -1
reverse_rx = false
reverse_ry = true
abs_deadzone = -31824
abs_dpad_x = 16
abs_dpad_y = 17
reverse_dpad_x = false
reverse_dpad_y = false
btn_north = 288
btn_east = 289
btn_south = 290
btn_west = 291
btn_select = 296
btn_start = 297
btn_mode = 296
btn_thumbl = 298
btn_thumbr = 299
btn_tl = 294
btn_tr = 295
btn_tl2 = 292
btn_tr2 = 293
btn_dpad_up = -1
btn_dpad_down = -1
btn_dpad_left = -1
btn_dpad_right = -1

Sobre los resultados obtenidos, cabe destacar que entre el nuevo software y la mejora de la potencia de la Raspberry Pi (de la 1 a la 2 hay un abismo), el resultado a través de cable de red es sobresaliente. Probado con Left4Dead 2 y Grid 2 sin ningún tipo de retardo apreciable en cuanto a la imagen/sonido y el control.

Ambilight en la Raspberry Pi 2

jueves, 7 de enero de 2016 Sin comentarios

Recientemente he migrado a la Raspberry Pi 2 y he tenido que realizar algunos cambios en cuanto al cableado del ambilight casero que tenía montado utilizando Hyperion.

En la siguiente imagen se puede observar la disposiciones de pines de la antigua Raspberry Pi, donde lo que nos interesaba era el pin GPIO 10 (MOSI), GPIO11 (CLK) y alguno de los GND (ground).

raspberrypirev2pinout

En cambio, se puede apreciar que la posición de dichos pines ha sigo ligeramente alterada en el modelo RaspPi2, donde necesitaremos hacer uso de los pines 9 (GND), 19 (MOSI) y 23 (CLK):

RP2_PinoutAclarar también que necesitaremos activar el SPI en nuestro OSMC como ya describí en una entrada anterior.

NAS ZyXel 325-V2

lunes, 14 de diciembre de 2015 Sin comentarios

El NAS ZyXel 325-V2 se diferencia de la primera versión en un cambio estético de la carcasa de plástico y en una mejora del ventilador posterior que parece hacer menor ruido. A parte de eso dispondremos de un sistema de almacenamiento en red con dos bahías para discos duros SATA de 3’5″ y 2’5″ con soporte para RAID 0, 1 y JBOD, tarjeta de red Gigabit, dos USB 2.0 traseros y uno 3.0 frontal frontal con un consumo eléctrico que varía de entre 15W con dos discos duros en marcha a 7W cuando pasa a modo en reposo.

El panel de administración puede parece bastante simple y no tan completo como los NAS de Synologic, pero la diferencia de precio también es bastante notable. Gracias a la comunidad estas diferencias intentan cubrirses con paquetes de software de terceros.

Como vamos a hacer del NAS un servicio de red fijo, lo que nos va a interesar es darle una IP fija a través de la configuración del servidor de DNS. Para eso se necesita averiguar su dirección MAC de forma fácil con el siguiente comando (sabiendo previamente la IP que se le ha sido asignado previamente o el nombre del equipo):

ping 192.168.1.55 -c 1

arp -a

A través de Samba accederemos a “smb://IP-NAS/admin/zy-pkgs/” y crearemos un fichero “web_prefix” que contendrá la siguiente URL:

http://downloads.zyxel.nas-central.org/Users/Mijzelf/zypkg-repo/

Desde el panel web de administración del NAS iremos a la sección “Firmware/Packages” y, después de actualizar el Firmware si existe alguna versión posterior, le daremos al botón de “Acceder listado desde Internet”. Aparecerá un único paquete llamado “MetaRepository” que tendremos que seleccionar e instalar. Tras esto ya podremos instalar FFP (desde el cual podremos instalar repositorios con uwsiteloader), RandomTools, NFS y pyLoad por ejemplo.

Para instalar nuestro software de descargas favorito (MlDonkey), entraremos por SSH al NAS y ejecutaremos lo siguiente:

su

uwsiteloader.sh (seguimos los pasos del asistente)

slacker -U

slacker -i mldonkey

exit

Debido a que queremos tener todo lo relacionado con MlDonkey guardado en disco duro por temas de espacio, lo que haremos es un enlace simbólico de la siguiente forma y lanzaremos el proceso para que genere la estructura de carpetas:

mkdir /mnt/HD_a2/mldonkey

cd /mnt/HD_a2

chmod -R 777 mldonkey/

ln -s /mnt/HD_a2/mldonkey/ .mldonkey

mlnet

Cerraremos el proceso anterior con un simple CTRL+C y empezaremos a configurarlo:

vim .mldonkey/downloads.ini (y editamos las ip’s permitidas añadiendo 192.168.1.0/24)

mkdir /mnt/HD_a2/mldonkey/logs

Generaremos un fichero de configuración en “/mnt/HD_a2/mldonkey/mldonkey-server” con el siguiente contenido:

MLDONKEY_DIR=/mnt/HD_a2/mldonkey
MLDONKEY_USER=admin
MLDONKEY_GROUP=everyone
MLDONKEY_UMASK=0022
LAUNCH_AT_STARTUP=true

Crearemos el script que se encargará de gestionar el servicio “/mnt/HD_a2/mldonkey/mldonkey.sh” con el siguiente contenido:

 

#!/ffp/bin/sh
#
# Original file :
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
# Modified for Debian GNU/Linux
# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version: @(#)skeleton 1.9.1 08-Apr-2002 miquels@cistron.nl
#
#
# This file has been rewritten by Sylvain Le Gall <gildor@debian.org>
# and Samuel Mimram <smimram@debian.org> for the mldonkey package.
#
### BEGIN INIT INFO
# Provides: mldonkey-server
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
# Should-Start: $local_fs
# Should-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Server for the mldonkey peer-to-peer downloader.
# Description: Server for the mldonkey peer-to-peer downloader.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=mlnet
EXEC=/usr/local/zy-pkgs/ffproot/ffp/bin/$NAME
DESC=”MLDonkey”
CONFIG=/mnt/HD_a2/mldonkey/mldonkey-server
PIDDIR=/var/run/mldonkey
PIDFILE=$PIDDIR/$NAME.pid
LOGFILE=/mnt/HD_a2/mldonkey/logs/mldonkey-server.log
SERVERLOG=/mnt/HD_a2/mldonkey/logs/mlnet.log

test -e $CONFIG || exit 0

set -e

Warn ()

{
echo “$*” >&2
}

Error ()
{
code=$1
shift

echo “.”
Warn “$DESC: $NAME [ERROR] $@”
exit $code
}

StartErrorCheck ()
{
if [ -f “$SERVERLOG” ] && tail -n 2 “$SERVERLOG” | grep -qi ‘aborting’ ; then
Warn “$DESC: $NAME [ERROR] server start error”
tail –verbose $SERVERLOG
exit 1
fi
}

. $CONFIG

# Look for the default locale
if [ -f “/etc/default/locale” ]; then
. /etc/default/locale
export LANG
fi

if [ -n “$MLDONKEY_UMASK” ]; then
umask $MLDONKEY_UMASK
fi
# /var/run might be on tempfs, see #354701.
if [ ! -d /var/run/mldonkey ]; then
mkdir -m 755 /var/run/mldonkey
fi
if [ ! -d /var/log/mldonkey ]; then
mkdir -m 755 /var/log/mldonkey
fi
if [ -n “$MLDONKEY_USER” ] && [ -n “$MLDONKEY_GROUP” ]; then
chown -R $MLDONKEY_USER:$MLDONKEY_GROUP /var/run/mldonkey
chown -R $MLDONKEY_USER:$MLDONKEY_GROUP /mnt/HD_a2/mldonkey/logs
fi

WRAPPER_OPTIONS=”–iosched idle”

# Set configuration value, from CONFIG
if [ -n “$MLDONKEY_USER” ] && [ -n “$MLDONKEY_GROUP” ]; then
WRAPPER_OPTIONS=”$WRAPPER_OPTIONS –chuid $MLDONKEY_USER:$MLDONKEY_GROUP”
fi

if [ -n “$MLDONKEY_DIR” ]; then
WRAPPER_OPTIONS=”$WRAPPER_OPTIONS –chdir $MLDONKEY_DIR”
fi

if [ -n “$MLDONKEY_GROUP” ]; then
WRAPPER_OPTIONS=”$WRAPPER_OPTIONS –group $MLDONKEY_GROUP”
fi

if [ -n “$MLDONKEY_UMASK” ]; then
WRAPPER_OPTIONS=”$WRAPPER_OPTIONS –umask $MLDONKEY_UMASK”
fi

if [ -n “$MLDONKEY_NICENESS” ]; then
WRAPPER_OPTIONS=”$WRAPPER_OPTIONS –nicelevel $MLDONKEY_NICENESS”
fi

case “$1” in
start|force-start)
echo -n “Starting $DESC: $NAME”

if [ “x$LAUNCH_AT_STARTUP” != “xtrue” ] && [ “x$1” = “xstart” ]; then
Error 0 “configuration file prevent $NAME to be started (use force-start).”
fi

if [ -z “$MLDONKEY_DIR” ] || [ ! -d “$MLDONKEY_DIR” ]; then
if [ -z “$MLDONKEY_DIR” ]; then
MLDONKEY_DIR=”(unset)”
fi
Error 1 “$MLDONKEY_DIR is not a valid directory.”
fi

if [ ! -f “$MLDONKEY_DIR/downloads.ini” ]; then
Error 1 “$MLDONKEY_DIR/downloads.ini is not a valid file.”
fi

#USER=`/usr/bin/stat –format=”%U” “$MLDONKEY_DIR/downloads.ini”`

USER=”admin”

WRAPPER_OPTIONS=”$WRAPPER_OPTIONS –user $USER”

start-stop-daemon –start $WRAPPER_OPTIONS \
–pidfile $PIDFILE –background –exec $EXEC \
— -log_file $SERVERLOG -pid $PIDDIR 2>&1

StartErrorCheck

echo “.”
;;

stop)
echo -n “Stopping $DESC: $NAME”
start-stop-daemon –stop –oknodo –pidfile $PIDFILE –retry 30
echo “.”
;;

force-reload|restart)
$0 stop
$0 start
;;

*)
Error 1 “Usage: $0 {start|stop|restart|force-reload|force-start}”
;;
esac

exit 0

Le daremos permiso de ejecución:

chmod u+x /mnt/HD_a2/mldonkey/mldonkey.sh

Y finalmente crearemos el script que se encargará de levantar el servicio al inicio en “/ffp/start/mldonkey-start.sh” con el siguiente contenido:

#!/ffp/bin/sh
# PROVIDE: mldonkey
# REQUIRE: LOGIN
/mnt/HD_a2/mldonkey/mldonkey.sh start

Le daremos permiso de ejecución:

chmod u+x /ffp/start/mldonkey-start.sh

Si deseamos que el NAS esté accesible por NFS, el camino rápido sería obtenido el identificador del usuario y del grupo correspondiente:

id -u admin

id -g admin

Editaremos el fichero “/etc/exports” con una línea similar a esta siendo 192.168.1.11 la IP que montará la unidad NFS  501 el id de usuario y grupo:

/mnt/HD_a2 192.168.1.11(rw,all_squash,anonuid=501,anongid=500)

Si intentamos colocar algo así como “192.168.1.0/24” no funcionará.

Reiniciaremos el servicio de NFS con el siguiente comando y ya lo tendremos listo en la red:

/usr/local/zy-pkgs/etc/init.d/NFS restart

En el equipo que queramos hacer uso de la unidad NFS (una Raspberry) tendremos que editar el fichero “/etc/fstab” añadiendo la siguiente línea:

192.168.1.10:/mnt/HD_a2    /mnt/nas nfs nouser,atime,auto,rw,dev,exec,suid 0   0

Prepararemos la carpeta donde estará del siguiente modo:

mkdir /mnt/nas

chown pi:users -R /mnt/nas

chmod 777 -R /mnt/nas

mount -a

 

 

 

 

Enlaces de interés:
http://forum.nas-central.org/viewtopic.php?f=249&t=15731&sid=b252ddb5624aca7cd22055ca774de8f7
http://zyxel.nas-central.org/wiki/3rd_party_zypkgs#MetaRepository
http://zyxel.nas-central.org/wiki/FFP_as_zypkg

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: ,

MLDonkey 3.1.3 en Raspbmc

domingo, 15 de diciembre de 2013 5 comentarios

Si somos poseedores de una Raspberry Pi con Raspbmc de S.O., posiblemente echemos de menos poder utilizar la última versión de MLDonkey que provee de soporte para enlaces magnet.

Para ello será tan fácil como descargar el código fuente de MLDonkey y compilarlo con mucha paciencia en nuestra Raspberry.

Primero actualizaremos todos los paquetes de nuestro sistema e instalaremos la versión de MLDonkey que hay en los repositorios con los siguientes comando:

# sudo apt-get update

# sudo apt-get upgrade

# sudo apt-get install mldonkey

Luego descargaremos las utilidades necesarias para la compilación:

# sudo apt-get -y install gcc make bc

Descargaremos el código fuente de MLDonkey (hay que buscar en las descargas el enlace al “Source”), los descomprimiremos e iniciaremos la compilación:

# wget http://downloads.sourceforge.net/project/mldonkey/mldonkey/3.1.3/mldonkey-3.1.3.tar.bz2

# tar xvjf mldonkey-3.1.3.tar.bz2

# ./configure –enable-batch

# make mlnet.static

La compilación puede haber tardado unas horas, pero al final tendremos un fichero llamado “mlnet.static” que deberemos copiar con el siguiente comando, pero no sin antes hacer una copia de seguridad de la versión anterior por precaución:

# sudo mv /usr/bin/mlnet /usr/bin/mlnet.backup

# sudo cp mlnet.static /usr/bin/mlnet

Para vuestra comodidad os dejo el tarball que contiene el ejecutable ya compilado para ARM:

mldonkey-3.1.3.static.arm-Linux_glibc-2.13.tar