Montar una Steam Box con una Raspberry Pi 2 mediante moonlight para usar GameStream de Nvidia.

El título es raro de cojones, lo sé.NVIDIA

La idea es que desde una Raspberry Pi podamos jugar a juegos que realmente corren en nuestro PC con gráfica Nvidia.

Por ejemplo podremos conectar la Raspberry Pi a la tele del comedor y disfrutar del catálogo de Steam en el sofá con el rendimiento del PC.

El caso es que funciona, y muy bien además, latencia inapreciable a 1080px60fps, con muchas opciones, soporte de periféricos y mucho más, y hay una cantidad muy decente de juegos compatibles.

SteamOS (Software) + Steam Box (Hardware) = Steam Machine

Primero los conceptos:

  • ¿Qué es una Steam Box? 
    SteamBox es un concepto creado por Valve que consiste en un hardware para hacer funcionar SteamOS, el sistema operativo de Steam como si de una consola se tratase, esta conjunción tiene por nombre “Steam Machine” hoy en día existen muchas Steam Machines de diferentes fabricantes en el mercado, pero no bajan de los 500 dolares, ¡llevan un tarjetón ahí dentro!.
    En nuestro caso no será realmente una SteamBox porque no ejecutaremos SteamOS en la Raspberry Pi sino que haremos streaming de un Steam que corre en un PC, la diferencia radica en el precio y en que necesitamos el PC con una tarjeta gráfica Nvidia compatible con GameStream accesible.Pi2ModB1GB_-comp
  • ¿Qué es una Raspberry Pi?
    El famoso Raspberry Pi fue diseñado con fines educati… bla bla bla… es el mejor y más barato juguete que he podido trastear últimamente. Si aún no lo conoces, échale un ojo al artículo de la Wikipedia antes de continuar:  http://es.wikipedia.org/wiki/Raspberry_Pi
    Y ahora es su versión 2 Nueva Raspberry Pi 2 con más de todo.
  • ¿Qué es GameStream de Nvidia?
    La tecnología GameStream traslada los juegos de PC a tu dispositivo SHIELD (compatible con GameStream) con mínima latencia. GameStream aprovecha toda la potencia de las tarjetas gráficas GeForce GTX para transmitir en streaming, a través de tu red Wi-Fi, los juegos del PC al dispositivo SHIELD y permitirte disfrutar de ellos en cualquier lugar.
  • ¿Qué es moonlight? 
    Es la implementación Open Source del GameStream para los dispositivos SHIELD.
    La gente de Nvidia sacó moonlight (antes limeLight) para que los fabricantes pudiesen compatibilizar su hardware con GameStream, más info en: http://moonlight-stream.com/

Partimos de la base de que dispones de una Raspberry Pi (yo lo he probado con la 2, la 1 la tengo ocupada) y que Raspbian está instalado y funcionando en red local con SSH activado. De forma que mediante, por ejemplu Putty, podemos conectarnos mediante SSH a nuestra RPi.

Miniguia de instalación de Raspbian: 1- Descarga Raspbian verión NOOBS. 2.- Descomprime. 3.- Copia Pega en una SD. 4.- Enciende la RPi con esa SD y sigue las instrucciones.

Tabla de compatibilidad de GPU de Nvidia
Tabla de compatibilidad de GPU de Nvidia

En cuanto al PC, GameStream es de Nvidia y solo es compatible con las GTX serie 6 o superior, puedes comprobar si tu tarjeta es compatible con GameStream en la imagen de arriba.

Necesitas instalar, si no lo tienes ya, NVIDIA GeForce Experience (GFE), que no es el driver.

Iniciamos GFE y vamos a la pestaña SHIELD, allí iniciamos sesión con una cuenta de nvidia.

Así queda una vez iniciada la sesión de usuario.
Así queda una vez iniciada la sesión de usuario.

Podemos comprobar el estado del servicio en la pestaña “Mi Equipo”:

Estado del servicio GameStream
Estado del servicio GameStream

Si no teníamos activado GameStream es muy recomendable reiniciar el PC después de activarlo, en mi caso no funcionó hasta reiniciarlo, aún estando todo en verde.

Iniciamos Steam y lo tenemos todo listo en el PC.

En cuanto a la Raspberry Pi, una vez conectados por SSH añadiremos una nueva fuente de repositorios, lanzando el siguiente comando abrimos el fichero /etc/apt/sources.list.

sudo nano /etc/apt/sources.list

Tenemos que añadir la siguiente linea al fichero:

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

Para salir de nano pulsa Ctrl + X y luego confirma con Y.
Actualizamos nuestro apt-get:

sudo apt-get update

Y instalamos moonlight:

sudo apt-get install moonlight-embedded

Ahora emparejamos moonlight en la Raspberry con la tarjeta gráfica del PC:

moonlight pair X.X.X.X

Donde X.X.X.X es la dirección IP del PC, no de la RPi.
img_55a0353116a95En el momento de lanzar el comando, en el PC, GFE mostrará una nueva ventana solicitando un código PIN, el código de debes introducir aparece en el terminal SSH en donde hemos lanzado el comando.

Una vez introducido el PIN correcto, tendremos emparejados los dos dispositivos y listos para la fiesta.

Para iniciar el stream tenemos que lanzar un comando SSH en el terminal de la RPi:

moonlight streaming [opciones] X.X.X.X

Donde X.X.X.X es la dirección IP del PC, no de la RPi.

Aquí un listado de las opciones disponibles:

-720 Usar la resolición 1280x720px [por defecto]
-1080 Usar la resolución 1920x1080px
-width Resolución horizontal (por defecto 1200px)
-height Resolución vertical (por defecto 720px)
-30fps Usar 30fps
-60fps Usar 60fps [por defecto]
-bitrate Especifica el bitrate en Kbps
-packetsize Especifica el tamaño máximo de los paquetes en bytes.
-app Nombre de la aplicación para hacer stream
-nosops No permitir que GFE modifique los ajustes del juego
-input Usar como input. Puede usarse múltiples veces.
-mapping Usar como mapa de configuración de gamepad (previo uso de -input)
-audio Usar ALSA como salida de audio
-localaudio Reproducir el audio en local

Ahora para iniciar Steam únicamente, utilizaremos:

moonlight streaming -app Steam X.X.X.X

Donde X.X.X.X es la dirección IP del PC, no de la RPi.
Con esto ya deberías ver Steam allí donde hayas conectado la RPi.

The Pirate Bay regresa totalmente funcional.

Nuevo Logo The Pirate BayDespués de una larga caída (casi 2 meses), provocada por el gobierno de los EEUU, The Pirate Bay vuelve a estar totalmente operativa.

Los administradores dicen que la pérdida de información has sido mínima y que ya se pueden volver a subir y descargar torrents con la misma normalidad que antes de la censura.

Esperemos que puedan aguantar la presión que hay sobre el servicio de descargas por parte de las grandes discográficas y demás lobbys de hollywood.

Nueva Raspberry Pi 2

R8326274-01Nos pilla por sorpresa un anuncio que se esperaba para inicios del 2017, la salida al mercado del nuevo modelo de Raspberry Pi; Raspberry Pi 2, con 6 veces más potencia de procesador, 1Gb de RAM y soporte para Windows 10 entre otras características que ofrecen al mismo precio que la anterior versión.

Raspberry Pi 2 modelo B SBC

Raspberry Pi 2 modelo B representa un gran aumento de rendimiento con respecto a sus antecesores basados en un núcleo: hasta seis veces más rápido de hecho. Además de un nuevo procesador Cortex-A7 de cuatro núcleos, la Raspberry Pi 2 modelo B ahora ofrece 1 GB de memoria RAM. El núcleo del sistema operativo se ha actualizado para aprovechar al máximo la última tecnología ARM Cortex-A7 y está disponible con la nueva versión 1.4 del software NOOBS (consulte la nota siguiente). Se ha mantenido la compatibilidad con versiones anteriores de hardware y software con la Raspberry Pi 1 modelo A+/B+.

  • Procesador Broadcom BCM2836 de 800 MHz ARM Cortex-A7 de cuatro núcleos con GPU VideoCore IV de doble núcleo
  • GPU proporciona una tecnología Open GL ES 2.0, hardware acelerado OpenVG y admite imágenes de alta resolución 1080p30 H.264
  • GPU tiene una capacidad de 1 Gpixel/s, 1,5 Gtexel/s o 24 GFLOPs con filtrado e infraestructura DMA
  • SDRAM LPDDR2 de 1 GB
  • Salida de vídeo HD 1080p
  • Salida de vídeo compuesto (PAL/NTSC)
  • Salida de audio estéreo
  • Conector hembra Ethernet RJ45 10/100 BaseT
  • Conector hembra de vídeo/audio HDMI 1.3 y 1.4
  • Conector hembra de salida de vídeo compuesto/audio de 3,5 mm 4 polos
  • 4 conectores hembra USB 2.0
  • Conector MPI CSI-2 de 15 vías para cámara de vídeo HD Raspberry Pi (775-7731)
  • Conector de interfaz serie de display de 15 vías
  • Conector para tarjeta MicroSD
  • Arranca desde tarjeta MicroSD, ejecutando una nueva versión del sistema operativo Linux
  • Conector macho de 40 pines para buses serie y GPIO (compatible con el conector macho de 26 pines Raspberry Pi 1)
  • Fuente de alimentación: +5 V a 2 A a través de conector hembra microUSB
  • Dimensiones: 86 x 56 x 20 mm
  • El firmware sirve para placas que cumplen las reglas de diseño HAT (hardware conectado en la parte superior)

El precio es de 30,58€ y se puede comprar aquí: http://es.rs-online.com/web/p/processor-microcontroller-development-kits/832-6274/

Elevator Saga, juguemos a programar un ascensor.

Elevator Saga es un juego para programadores, se basa en alterar el código fuente que hace funcionar un sistema de ascensores para completar el objetivo de cada nivel, transportar cierta cantidad de personas en un tiempo limitado.

Elevator Saga: Challenge #13

El lenguaje utilizado es Javascript.

El primer nivel es posible superarlo simplemente añadiendo una linea de código, los restantes hasta el 12 son bastante fáciles, basta con un poco de pensamiento lógico, pero a partir del 13 ya hay que pensar en optimizar las rutas para hacer el sistema más eficiente y permita transportar 100 personas sin que nadie espere más de 15 segundos con los 5 ascensores de que disponemos.

Muy entretenido y útil para aquellos que quieran mejorar su Javascript o lógica de programación.

¿Hasta que nivel has llegado tú?
¿Necesitas ayuda para superar algún nivel?, coméntalo y lo compartimos.

Juego: http://play.elevatorsaga.com/

Mad Catz Lynx9, el super pad.

En el CES 2015, La empresa Mad Catz ha presentado su nuevo super mando para smartphones y tablets Android, por encima de todo destacan sus múltiples configuraciones y sobretodo su precio, de 300 dólares, que no lo convierte en una opción poco viable para la mayoría de jugadores, pero no deja de ser sorprendente. Recomiendo ver el vídeo hasta el final.
pgalleryLYNX With Phone


 

2014 en números para Google Play

Publican en el Blog oficial de Android (en inglés) 2014: The year in Entertainment un listado de lo más consumido en Google Play, tendencias, datos y estadísticas, nos encantan!
Google Play - End of Year Infographic - 2014 - FINAL

Hacer una copia de seguridad de Raspbian, clonando el sistema operativo de la SD

Voy a explicar como hacer una copia de seguridad del sistema operativo Raspbian instalado en una memoria SD.

Utilizaremos el Terminal de Mac, pero se puede extrapolar al Terminal de una distro Linux.
Insertamos la tarjeta SD en la ranura de nuestro Mac o Linux.
Debemos localizar nuestra tarjeta SD en nuestro sistema, para ello abrimos un Terminal y lanzamos el siguiente comando:

diskutil list

Lo que producirá una salida similar a:

Como vemos, mi SD está identificada en el sistema como /dev/disk2, es necesario para el siguiente comando, que generará el archivo .dmg con la copia del sistema donde especifiquemos, el siguiente comando crea una copia en el escritorio:

sudo dd if=/dev/disk2 of=~/Desktop/mi_copia_de_raspbian.dmg

Al prefijar el comando con sudo (Super User DO) se nos requerirá la contraseña de administrador del sistema.
Nota: Es un proceso lento, a mi me tarda aproximadamente 60 minutos, Keep Calm.
En el escritorio tenemos el fichero .dmg con la copia del sistema, ese fichero es suficiente para restaurar en caso de desastre.

10 años tropezando.

Este blog lleva en la red 10 años.

Más de 800 entradas, más de 2.500.000 de visitas, más de 8.000 comentarios (además de 40.000 bloqueados por spam).

Mucha variedad de temas que en adelante pretendo que sea más técnico, aunque no exclusivamente.

Sea como sea, gracias por haber llegado hasta aquí.

Experimento visual, Multiplixel

Jugando a la par que aprndiendo con una Raspberry Pi, he montado un servidor Web apache y NodeJs para las comunicaciones por socket con el framework ws, Luego he programado una Web con WebGL y Three.js para los gráficos 3D y con WebSockets para las comunicaciones con NodeJS.

El experimento permite escoger un color y poner o quitar cubos en la escena, una idea sencilla que se complica al haber implementado el sistema multijugador a tiempo real.

La dirección url del experimento es: http://dide.technology/pixel.html
Si te interesa el código fuente, la parte de servidor en Nodejs, y la parte del cliente en HTML5 + Javascript.

Nota: Debido a que utiliza estándares de HTML5, para hacer funcionar el experimento, es necesario un navegador en color.
Nota 2: Este experimento es temporal, ya que necesita de un servidor de socket además de un servidor http, por lo que no estará para siempre, cuando pare el servicio quitaré la entrada, esto funciona en mi Raspberry Pi y por allí pasan más sistemas operativos que por la tienda del paki.