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.
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
- Ein Raspberry Pi 2 mit ausreichend starkem Netzteil
- Ein Gehäuse für den Pi
- Gamepad oder Tastatur und Maus zum Zocken (Abhängig vom Spiel)
- Eine Class 10 SD-Karte mit 8GB oder mehr
- Ein HDMI-Kabel
- Eine WLAN Stick oder Ethernet Kabel
- Gesamt: ~ 80€ – 100€
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.
1 2 3 4 |
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„.
Update 08/2016
Die Installation für Limelight/ moonlight hat sich mittlerweile vereinfacht, es gibt ein fertiges Paket zum Download via Repository
1 |
sudo sh -c 'echo "deb http://archive.itimmer.nl/raspbian/moonlight jessie main" >> /etc/apt/sources.list' |
Dann können wir das Paket auch schon installieren, bestätigt die Rückfragen mit Y / J
1 2 |
sudo apt-get update sudo apt-get install moonlight-embedded |
Alte Anleitung
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).
1 2 3 4 5 6 7 8 |
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.
1 2 3 4 |
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.
1 2 |
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.
1 |
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.
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.
1 |
moonlight list |
Die Ausgabe zeigt uns die IP-Adresse eures Rechners, mit dieser Verbinden wir nun useren Raspberry Pi, ersetzt eure IP-Adresse entsprechend.
1 |
moonlight 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.
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.
1 |
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.
1 |
moonlight 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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.
1 |
moonlight stream -1080 -30fps 192.168.178.20 -app Steam -mapping gamepad.map |
Schon könnt ihr an eurem Raspberry Pi zocken.
Viel Spaß!