Steam Machine – Gaming am Raspberry Pi

Neben den Basteleien am Raspberry Pi bin ich, was euch vermutlich nicht verwundert, leidenschaftlicher Gamer. Daher war ich auch vom Artikel, wie aus einen Raspberry Pi 2 eine Steam Box gebaut werden kann, sehr angetan. Da auch ich Steam nutze und viele meiner Games über Steam gekauft habe wollte ich das natürlich selbst ausprobieren, zusätzlich liefere ich euch einige Hintergrundinformationen zur Steam Machine.

Getestet habe ich Dead Rising 3 auf dem Pi, da das Spiel mit meinem Gamepad zu steuern war, das Bild war selbst bei flüssig mit sehr wenig Rucklern, etwas enttäuscht war ich allerdings vom Ton, der Ton war zwischenrein sehr Ruckelig und abgehackt und die Qualität im Gegensatz zum Gaming Headset auf den TV-Lautsprechern natürlich schlechter als gewohnt. Hoffentlich wird hier noch nachgebessert.

gamestream

Voraussetzungen

Um überhaupt eine Steam Box betreiben zu können sind einige Voraussetzungen zu erfüllen, die RasPi Steam Box basiert auf dem vom Grafikkarten Hersteller Nvida entwickelten Streaming-Verfahren “GameStream” , dabei wird die Grafikausgabe eines Spiels an eurem Desktop Computer berechnet und via “Video-Stream” an Endgeräte ausgeliefert. Dafür ist natürlich an eurem Desktop einiges an Power notwendig. Entgegen des etwas Marketing orientierten Artikels der Raspberry Pi Foundation reichen dafür natürlich keine 16$ für einen einzelnen Pi aus, die Kosten sind abhängig davon was bereits vorhanden ist, durchaus höher.

Desktop Computer

  • Mindestens Nvidia GeForce GTX 650 oder Mobile GeForce GTX 800M, GTX 700M (mit aktueller Software / Treiber)
  • Mindestens Intel Core i3-2100 oder AMD Athlon 2 x4 630
  • Mindestens 4GB Arbeitsspeicher
  • Windows 7 oder 8 (x64 Version)
  • Schnelles WLAN (802.11n) oder Ethernet mit min. 100MBit
  • Gesamt: ab ~450€ (minimal) bis über 1000€
  • Einen Steam Account mit den gewünschten Games

Raspberry Pi

Sonstiges

  • Ein schneller LAN / WLAN Router (802.11a/g besser 802.11n) – z.B. FritzBox oder ein Netgear
  • Gesamt: Ab 35€

Angenommen man startet mit einem alten, nicht kompatiblen Rechner und benötigt dann noch den Pi + Zubehör sind schnell über 500€ fällig, wer allerdings nur sein Grafikkarte updaten muss, oder der Rechner sogar alle Voraussetzungen erfüllt kommt mit kleinem Budget weiter.

Ich verwende bei mir eine nicht mehr ganz aktuelle GTX760 (2GB) mit einer Core i5 (4 x 3,4GHz) , 8GB RAM und Windows 7 x64. Wer eine neuere GraKa unter Berücksichtigung des Preis- / Leistungsverhältnisses sucht sollte sich die GTX960 etwas genauer ansehen.

Einrichten von limelight am Raspberry Pi

Software Installieren

Als Betriebssystem kommt Raspbian zum Einsatz, installiert euren Raspberry Pi am Besten nach meiner Einsteiger-Anleitung. Nach erfolgreicher Installation updaten wir noch die Software und die Firmware.

sudo apt-get -y update
sudo apt-get -y upgrade
sudo rpi-update
sudo reboot


Falls nicht nicht geschehen solltet ihr via sudo raspi-config noch die Audio-Ausgabe via HDMI aktivieren, diese findet ihr in den “Advanced Options” unter “Audio“.

hdmi-audio-raspberry-pi

Wichtig! Da die Software, welche zum Audio-Streaming eingesetzt wird, einen Fehler hat (Massive Belastung der CPU) müssen wir noch eine angepasste library kompilieren (Version 1.1 anstelle 1.2).

mkdir ~/gamestream
cd ~/gamestream

wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz
tar xf opus-1.1.tar.gz
cd opus-1.1
./configure --enable-fixed-point
make -j 4; make install


Das kompilieren dauert eine Weile, danach kopieren wir die kompilierte Library ein Verzeichnis höher nach /home/pi/gamestream und entfernen die sourcen und das tar Archiv.

mv .libs/* ../

cd ~/gamestream
rm -rf opus-1.1*


Die Verbindung zur Geforce und das Streaming erledigt das Tool limelight für uns, die libopus.so übernimmt den Audio-Stream. Limelight ist also eine Open Source Version eines NVIDIA GameStream Clients, wir laden uns das letzte Release direkt von der GitHub Seite auf unseren Pi.

cd ~/gamestream
wget https://github.com/irtimmer/limelight-embedded/releases/download/v1.2.2/limelight.jar


Da limelight auf Java basiert benötigen wir natürlich noch die aktuelle Java Version für Raspbian, prüft zur Sicherheit ob dieses schon installiert ist.

sudo apt-get -y install oracle-java8-jdk

Gamestream Geräte verbinden

Jetzt ist es an der Zeit zu prüfen das auf eurem Windows Rechner die Geforce Experience Software läuft und die Option GameStream auch aktiviert ist. Öffnet hierzu das Tool “ GeForce Experience” über das Startmenu oder aus dem System-Tray rechts unten.

geforce-expirience

Wir müssen nun die beiden Geräte anhand eines Code mit einander verbinden (Pairing). Dazu lassen wir uns die passenden Rechner im Netzwerk anzeigen, der Fehler ist normal da wir ja noch nicht verbunden haben.

java -jar limelight.jar list


raspberrypi-gamestream

Die Ausgabe zeigt uns die IP-Adresse eures Rechners, mit dieser Verbinden wir nun useren Raspberry Pi, ersetzt eure IP-Adresse entsprechend.

java -jar limelight.jar pair 192.168.178.20


Auf eurem Rechner geht ein Popup auf, gebt dort die PIN ein welche ihr in eurer SSH Sitzung auf dem Raspberry Pi angezeigt bekommt.

raspberrypi-gamestream-pin

Die Software auf dem Pi meldet dann “Paired successfully“. Es ist natürlich von Vorteil wenn sowohl euer Pi als auch euer Rechner immer die selbe statische IP-Adresse hat.

Gamepad einrichten

Falls ihr mit einer Tastatur und Maus spielen wollt könnt ihr diesen Abschnitt überspringen. Mein USB-Gamepad muss ich noch einrichten, das Game Pad muss dazu am Pi angeschlossen sein. Wichtig! Wir müssen nun herausfinden unter welchen Pfad das Gamepad am Pi eingerichtet wurde, wir lassen uns daher alle Input Devices anzeigen.

ls -al /dev/input/event*


Falls ihr nur ein Pad angeschlossen habt solltet ihr nur einen Eintrag sehen, das ist im Normalfall /dev/input/event0, so auch bei mir. Falls nicht müsst ihr herausfinden welches Device zu welchem Event gehört, das sehr ihr in der devices Datei nach (cat /proc/bus/input/devices), sucht dort nach eurem Gamepad und dem zugeordneten Event.

Die Tasten des Gamepads (events) müssen in einer Datei gespeichert werden sodass limelight diese auch zuordnen kann. Wir starten die Zuordnung mit folgendem Befehl, entsprechend eurer Konfiguration muss event0 durch eventX ersetzt werden.

cd ~/gamestream
java -jar limelight.jar map -input /dev/input/event0 gamepad.map


Nach kurzer Zeit werdet ihr aufgefordert die Tasten an eurem Gamepad entsprechend der Vorgabe zu drücken. Bei meinem Pad sieht das wie folgt aus:

INFO: Using DragonRise Inc.   Generic   USB  Joystick
Left Stick Right => Linker Analog Stick nach Rechts
Left Stick Down => Linker Analog Stick nach Unten
Left Stick Button  => Linker Analog Stick Drücken
Right Stick Right => Recher Analog Stick nach Rechts
Right Stick Down => Recher Analog Stick nach Unten
Right Stick Button => Recher Analog Stick Drücken
Read D-Pad Right  => Am Steuerkreuz (ganz Links), Taste rechts
Read D-Pad Down  => Am Steuerkreuz (ganz Links), Taste Unten
Button 1 (A) => Aktionstasten (ganz rechts), Nach Unten
Button 2 (X) => Aktionstasten (ganz rechts), Nach Rechts
Button 3 (Y) => Aktionstasten (ganz rechts), Nach Oben
Button 3 (B) => Aktionstasten (ganz rechts), Nach Links
Back Button => Die beiden Tasten in der Mitte, davon die Linke (Select beim PS-Controller)
Start Button => Die beiden Tasten in der Mitte, davon die Rechte(Start beim PS-Controller)
Special Button => ??? - irgend was gedrückt
Read Left Trigger => Links oben (L1)
Read Right Trigger => Rechts oben (R1)
Left Bumper => Links oben die untere Taste (L2)
Right Bumper => Rechts Oben die untere Taste (R2)


Startet nun Steam auf eurem Rechner, das ist notwendig um am Pi passende Steam Games spielen zu können. Dann können wir über folgenden Befehl die Steam Games auf den Raspberry Pi zaubern. Solltet ihr mit 1080p Probleme haben könnt ihr due Auflösung auf 720 mit 60fps reduzieren.

java -jar limelight.jar stream -1080 -30fps 192.168.178.20 -app Steam -mapping gamepad.map


Schon könnt ihr an eurem Raspberry Pi zocken.

raspberry-pi-steam

Viel Spaß!

Weitere Raspberry Pi Projekte

  • Tor Gateway – Raspberry Pi zum anonymen surfen verwenden – AnoPiTor Gateway – Raspberry Pi zum anonymen surfen verwenden – AnoPi
  • Raspberry Pi Kernel kompilieren (Cross-Compiler)Raspberry Pi Kernel kompilieren (Cross-Compiler)
  • Ambi-TV – Ambilight mit dem Raspberry Pi nachrüstenAmbi-TV – Ambilight mit dem Raspberry Pi nachrüsten
  • Windows 10 IoT auf dem Raspberry Pi 2 installierenWindows 10 IoT auf dem Raspberry Pi 2 installieren

wallpaper-1019588
Deutscher Simuldub zu “I Was Reincarnated as the 7th Prince” gestartet
wallpaper-1019588
Final Fantasy XII – Brettspiel zum PS2-Klassiker angekündigt
wallpaper-1019588
Super Nintendo World – „Donkey Kong Country“-Eröffnung verschoben
wallpaper-1019588
Pokémon Karmesin und Purpur – Neues Tera-Raid-Event am Wochenende