Budget VR mit Cloud Gaming

Vielen denken, dass VR-Spiele wie Half Life Alyx nur mit sehr teuerer Hardware gespielt werden können. Es gibt aber auch andere Möglichkeiten solche Blockbuster-Spiele mit geringem Budget zu spielen und das auch noch ohne Einschränkungen :-).

In diesem Beitrag geht es um die Möglichkeit VR-Games mit einer Oculus Quest über Shadow zu spielen.

Ihr wollt nicht lesen? Kein Problem, einfach zum Ende scrollen und das Video anschauen ;-).

Kurzfassung

  • Internetgeschwindigkeit für shadow.tech testen
  • Oculus Quest Konfigurieren
  • Virtual Desktop auf der Oculus Quest installieren
  • Virutal Desktop auf shadow installieren
  • Oculus driver auf shadow installieren
  • VR-Games zocken 🙂

Shadow

Shadow ist ein Französisches Start up welches eine Cloud basierte Gaming Plattform geschaffen hat. Im Prinzip handelt es sich um eine virtuelle Windows Umgebung in der alle Windows kompatiblen Programme installiert werden können. Daher gibt es nur wenige Einschränkungen. Dazu kommt, dass physische Grafikkarten, anstelle von virtualisierten, verwendet werden. Daher lassen sich aktuelle Games ohne Einschränkungen spielen.

Das funktioniert dann sogar auf MacOS, Android, oder Linux.

Einen Hacken hat die Sache aber doch. Sie benötigt eine gute Internetverbindung. Daher muss im ersten Schritt ein Speedtest auf der Webseite von sahdow.tech ausgeführt werden.

Hier der Link zum ausführen. War der Speedtest erfolgreich, kann ein Account angelegt werden.

Oculus Quest

Für diesen Beitrag verwende ich die Oculus Quest 2 mit den 64 GB Speicher. Es wird auch kein 100€ Link-Kabel benötigt. Die Konfiguration der Oculus ist selbsterklärend und wird Schritt für Schritt erklärt.

Virtual Desktop

Virtual Desktop ist die Verknüpfung zwischen der Oculus Quest und dem Shadow Desktop. Die Anwendung besteht aus zwei Teilen. Einmal dem Client, der als App auf der Oculus installiert wird und zum anderen dem Server, der auf der Windows-VM installiert wird. Klingt jetzt kompliziert, ist es aber nicht. Einfach die Schritte in der Anleitung befolgen, dann kann nichts schief gehen ;-).

Virtual Desktop – Oculus

Virtual Desktop kann als App im Oculus-Store erworben werden. Hierzu kann entweder die Suche oder dieser Link zu der App verwendet werden.

Virtual Desktop – Windows

Die Serveranwendung kann direkt über den Browser in Windows heruntergeladen werden, wobei mit Windows die Virtuelle Maschine von Shadow gemeint ist. Hier der Link zum Download.

Die Installation ist ohne großes Fachwissen durchführbar. Sogar die notwendigen C++-Bibliotheken werden mit nur einem Klick installiert. Am Ende der installation wird nach dem Oculus Benutzername gefragt, welcher unter User eingegeben werden muss.

Jetzt kann es schon fast losgehen :-).

Oculus Driver

Die notwendige Software für die Verwendung der Quest 2 ist direkt bei Oculus erhältlich. Der Link zu Seite ist hier. Achtung, es muss lediglich die Installation ausgeführt werden. Beim Schritt „Verbindungsmethode auswählen“ kann das Setupfenster geschlossen werden.

Jetzt kann’s losgehen

Jetzt noch schnell den Oculus-Benutzername beim Virtual Desktop Streamer eingeben und das Headset aufsetzen.

Die Virtual Desktop App auf der Oculus starten und den Computer auswählen und endlich geht’s los :-).

Ein paar Kleinigkeiten noch

  • In der Virtual Desktop-App kann unter Games kann das letzte Spiel unkompliziert schnellgestartet werden
  • Für ein ruckelfreies Spielerlebnis wird gutes WLAN-Equipment benötigt und vor allem sollte der Abstand zum Access Point bzw. Router gering sein
  • Natürlich können auch andere Plattformen als SteamVR genutzt werden, daher gehe ich hier nicht so stark auf Steam ein
  • Shadow kostet aktuell 29€ im Monat, was im Verhältnis zu einem GamingPC ein super Schnäppchen ist
  • Eventuell muss das Netzwerkprofil auf privat umgestellt werden – zu sehen im Video

Video

Hier nochmal alles als Video zusammengefasst.

Dateien zwischen virtuellen Maschinen mit Netzlaufwerken austauschen

Gerade bei virtuellen Maschinen fehlt oft die Schnittstelle zwischen Client und Host. Eine angenehme Lösung dafür sind Netzlaufwerke, diese lassen sich recht unkompliziert konfigurieren und die Größe der zu übertragenden Dateien ist bei dieser Lösung recht uneingeschränkt. Wichtig ist, dass die Gasterweiterungen installiert sind. Bei Linux funktionieren fast immer die open-vm-tools.

Host

Zuerst sollte ein Ordner am Host erstellt werden, der dann als zukünftiges Netzlaufwerk dient. Bei der Benennung sollten keine Sonderzeichen verwendet werden, da nicht jedes Betriebsystem jede Art von Sonderzeichen unterstützt.

Virutelle Machine

Bei der virtuellen Maschine müssen die Gasterweiterungen installiert werden. Diese werden bei den meisten Virtualisierungsprogrammen als cd eingelegt, unter Linux mit apt-managern können auch die open-vm-tools installiert werden.

Verbinden

Die Netzlaufwerke können fast immer unter den Einstellungen verbunden werden. Dazu geteilte Ordner anklicken und den Ordner auf dem Host auswählen. Bei Linux Maschinen befindet sich der Ordner meist unter /mnt/…

Video

Wie – fast – immer gibt es eine kurze Videoanleitung zu dem Thema, viel Spaß beim schauen 🙂

Vorheriger Beitrag – Raspberry Pi OS als virtuelle Maschine

Raspberry Pi OS als virtuelle Maschine

Jeder, der schon öfter ein Projekt mit Raspberry Pi realisiert hat, kennt das Problem. Man gibt sich viel Mühe, alles läuft endlich und es fehlt nur noch der Feinschliff am Betriebssystem. Eine WLAN-Verbindung hier, ein eigener Boot-Screen da und plötzlich ist es passiert, der Raspberry bootet nicht mehr. Natürlich ist es immer sinnvoll ein Backup von der SD-Karte zu machen und dieses wieder einzuspielen, aber es gibt noch eine Möglichkeit, die, wenn einmal konfiguriert, viel schneller geht – eine virtuelle Maschine. Die Vorteile liegen auf der Hand. Mit einer virtuellen Maschine (VM) kann ganz einfach ein sogenannter snap shot gemacht werden, welcher den Zustand des gesamten Systems speichert. Kommt es jetzt zu einem Problem, kann mit einem Klick wieder zum Zustand des Snapshots zurückgekehrt werden :-).

Natürlich kann auch Hardware wie ein WLAN-Stick oder eine Webcam über den Host (das ist der Computer der die Virtualisierungssoftware installiert hat) zur VM durchgeschliffen werden. Für das Raspberry Pi OS sieht alles so aus, als ob die Hardware wirklich physisch verbunden wäre.

Es ist übrigens egal welche Virtualisierungssoftware verwendet wird, lediglich die Einstellungen haben andere Bezeichnungen.

Herunterladen der iso-Datei

Für die VM verwende ich Raspberry Pi Desktop, welches im Kern das selbe Betriebsystem wie auf dem Raspberry Pi ist, nur für Intel-Prozessoren anstelle von ARM-Prozessoren. Der Link zum Download ist hier.

Konfiguration der VM

An sich ist das Raspberry Pi OS nicht anspruchsvoll. Wichtig ist, dass beim anlegen der VM beachtet wird, das es sich um ein 32 Bit Betriebsystem handelt. Für gute Performance sollten zumindest 2GB RAM Arbeitsspeicher ausgewählt werden. Alles weitere findet ihr im Video ;-).

Feinschliff

Nach der Installation braucht das Betriebsystem noch die passenden Driver und Tools, diese werden normalerweise über eine Gastsystem-Datei installiert. Da wir aber über einen komfortablen Package-Manager verfügen, können diese mit

sudo apt-get install open-vm-tools-desktop

komfortabel installiert werden ;-).

Zum nächsten Beitrag – Dateien zwischen virtuellen Maschinen mit Netzlaufwerken austauschen

Ubuntu Server für Webanwendungen – Teil 4 – php

Damit die Webanwendung ein wenig Logik verliehen bekommt, benötigt es noch eine Programmiersprache. Sehr einsteigerfreundlich und auch beliebt ist php. PHP ist zum Glück mit ein paar Befehlszeilen installiert ;-).

sudo apt install php libapache2-mod-php php-mysql

Nach der Installation kann php recht einfach getestet werden. Damit es ein wenig spannender wird, erstellen wir hier direkt den ersten kurzen Code. Zuerst muss in das richtige Verzeichnis gewechselt werden. Dafür im Terminal den cd (change directory) Befehl verwenden.

cd /var/www/html

Im html-Ordner angekommen, benötigen wir zuerst ein leeres Textdokument in dem wir unser Programm schreiben können. Dazu verwende ich Nano, was ist ein einfacher und viel verwendeter Texteditor ist.

sudo nano index.php

In dem geöffneten Editor jetzt folgenden Code einfügen:

<?php phpinfo(); ?>

Kurz erklärt was hier gemacht wird. HTML wird grundsätzlich in Tags < Befehl > geschrieben. In diesem Tag sagen wir aber, dass hier ein teil mit php interpretiert werden soll. <?php Befehl ?>. der Teil mit phpinfo(); ist ein sogenannter Funktionsaufruf, diese Funktion ist ebenfalls in php geschrieben und gibt uns etwas zurück. In diesem Fall werden alle relevanten Informationen von der installierten php-Version zurückgegeben und das bereits schön formatiert in html. Mit „strg+x“ und dann „y“ kann die Datei gespeichert werden.

Wieder zurück im Browser wird die IP-Adresse des Servers eingegeben, gefolgt von /index.php

<ip-adresse>/index.php

In der jetzigen Seite stehen die Informationen über die aktuell installierte php-Version.

Gratulation. Die Entwicklungsumgebung ist hiermit fertig 🙂

Ubuntu Server für Webanwendungen – Teil 3 – mysql

Apache allein ist in der heutigen Webwelt ein wenig schlank, daher installieren wir hier noch php als Programmiersprache und mysql für die Datenbank.

mySQL

Im ersten Schritt wird der mySQL-Server installiert.

sudo apt-get install mysql-server

Secure Installation

Sicherheitstechnisch empfiehlt es sich dringend danach die secure-Installation auszuführen. Dadurch werden Testdatenbanken gelöscht, Zugriffsrechte für lokale Benutzer eingeschränkt und es kann auch die Kennwortrichtlinie definiert werden.

sudo mysql_secure_installation

Darauf folgen mehrere Fragen:

Passwortsicherheit:

Hier kann gerne mit „Enter“ weitergesprungen werden. Es empfiehlt sich aber auf jeden Fall ein sicheres Kennwort zu verwenden!

root Passwort:

Achtung, das Passwort hier hat nichts mit dem root-User von Linux zu tun, es ist das Kennwort für den Datenbank Benutzer.

Anonyme User:

Diese werden in den seltensten Fällen benötigt und können besten Gewissens gelöscht werden.

root User Rechte:

Der root User sollte nur vom local host aus zugriff haben. Dann kann auch niemand, der das Kennwort herausgefunden hat, über die Ferne schaden an der Datenbank anrichten.

Testdatenbank:

Die Testdatenbank ist gut für Übungszwecke, hat aber auf einer Testumgebung nichts verloren und noch weniger in der Produktivumgebung.

Rechte anwenden:

Im letzten Schritt wird abgefragt, ob die Tabelle mit den Privilegien, also mit den Rechten neu geladen werden soll. Dies schadet auf jeden Fall nicht und vermeidet seltsame Probleme mit Benutzerrechten.

Success. Geschafft. Jetzt schnell noch testen. Mit dem Befehl:

sudo mysql

sollte auf dem Terminal das mysql Interface auftauchen.

Mit „exit“ kann das Interface wieder verlassen werden. Die Datenbank und Benutzer werden in einem weiteren Beitrag angelegt.

Weiter gehts mit php 🙂

Ubuntu Server für Webanwendungen – Teil 4 – php

Ubuntu Server für Webanwendungen – Teil 2 Tools und Apache

Ubuntu Server für Webanwendungen – Teil 2 – Tools und Apache

Updates installieren

Gleich der erste Schritt nach der Installation sollten Updates sein. Dazu braucht es zwei Befehle, der Erste holt die aktuelle Liste der Links für die Updatequellen und der Zweite installiert die Updates.

sudo apt-get update
sudo apt-get upgrade

VM-Ware Tools

Falls VM-Ware als Virtualisierungssoftware verwendet wurde, braucht sie die VM-Ware-tools um ordnungsgemäß zu funktionieren.

sudo apt-get install open-vmtools

Nettools

Ebenfalls optional, aber nützlich, sind die Nettools. Diese werden zum Beispiel für den Befehl ifconfig benötigt, der die vergebenen IP-Adressen anzeigt.

sudo apt-get install net-tools

HTTP Server – Apache

Für diese Server-Instanz verwende ich den sehr beliebten Apache Server.

sudo apt-get install apache2

Firewall

Auch wenn der Server nicht in einer Produktivumgebung läuft, ist er trotzdem im Internet und daher ist die Verwendung von uncomplicated firewall (ufw) oder IP-Tables dringend geraten.

ufw bietet einige komfortable Befehle an, womit die Arbeit doch wesentlich schneller als bei IP-Tables geht, daher verzichte ich auf IP-Tables in diesem Tutorial.

Der erste Befehl listet die Applikationen auf, welche installiert sind und für die Firewall relevant sind.

sudo ufw app list

Bei mir werden vier Anwendung aufgelistet:

  • Apache (für http Verbindungen)
  • Apache Full (für http und https Verbindungen)
  • Apache Secure (für https Verbindungen)
  • OpenSSH

Da der Server im Moment kein signiertes Zertifikat hat, reicht Apache vollkommen aus.

sudo ufw allow in Apache

Sollte der SSH-Server mitinstalliert worden sein, dann wird ebenfalls OpenSSH benötigt.

sudo ufw allow in OpenSSH

Wichtig! Die Firewall muss das erste Mal manuell gestartet werden.

sudo ufw enable

Danach kann auch kontrolliert werden, welche Anwendungen erlaubt sind. Es kann daher keine andere Anwendung – die nicht die selben Ports verwendet – darauf zugreifen. Das ist eine sogenannte white List.

sudo ufw status

Erster Test

Jetzt kann der erste Test gemacht werden. Dazu zuerst die IP-Adresse des Servers auslesen.

ifconfig

Dann einen Browser öffnen und „http://www.<ipadresse>“ eingeben.

Hier das komplette Video zur Installation

Zurück zu Teil 1 – Serverinstallation

Weiter zu Teil 3 – mysql und php

Ubuntu Server für Webanwendungen – Teil 1 – Serverinstallation

Im heutigen Beitrag erstelle ich einen Ubuntu-Server für Webanwendungen. Diese Anleitung ist in erster Linie für eine Entwicklungsumgebung gedacht, falls ihr einen Ubuntu-Desktop installieren wollt, dann seid ihr hier richtig. Dazu werde ich einen sogenannten LAMP-Stack installieren, wobei LAMP für Linux, Apache, mySQL und php steht. Im ersten Schritt installiere ich daher einen Ubuntu-Server als virtuelle Maschine unter VM-Ware Fusion. Es spielt für dieses Tutorial übrigens keine Rolle, ob der Server virtualisiert wird oder nicht und auf welcher Virtualisierungssoftware er läuft. In weitere Folge werden die benötigten Tools, Apache, mySQL und php installiert. Viel Spaß beim Lesen 😉

Ubuntu Server Installation

Unter www.ubuntu.com kann die aktuelle ISO-Datei zur Installation heruntergeladen werden. Falls ihr den Server physisch installieren wollt, muss die ISO zuerst auf einen DVD gebrannt oder einen Boot-Stick geladen werden.

Bei der verwendeten Virtualisierungssoftware wird die ISO-Datei als DVD in das Laufwerk geladen und es kann schon losgehen mit der Installation ;-). Da ich kein Fan von Magic bin, verwende ich nie Voreinstellungen oder quick Installer. Folgende Punkte sind bei der Installation wichtig:

  • Mindestens 512 MB RAM, 1 GHz 1,75 GB Festplattenspeicher
  • Idealerweise 2 GB RAM, 2 CPUs, 50 GB Festplattenspeicher (kann natürlich je nach Anwendungsfall variieren)
  • Vernünftiger Benutzername
  • Starkes Passwort (vor allem bei Produktivumgebungen)
  • Richtiges Tastaturlayout (German)
  • Sprache ist immer besser in Englisch, da schon alleine die Fehlersuche leichter fällt, wenn diese mit einer englischsprachigen Meldung passiert
  • OpenSSH macht die Arbeit im späteren Verlauf um einiges leichter

Hier geht’s weiter zu Teil 2 Tools und Apache

USB Mikroskop am Raspberry Pi als standalone System

Ich habe bei mir im Büro einen Monitor an dem direkt ein Raspberry Pi angeschlossen ist. Diesen Monitor verwende ich oft zum Anleitungen lesen oder Schaltpläne angezeigt zu bekommen. Der Raspberry Pi hängt daran, damit ich nicht immer den Computer sinnlos starten muss. Bisher hatte ich mein USB-Mikroskop mit meinem Handy gekoppelt, das ist aber ein sehr kleines Bild, daher wollte ich es mit dem Raspberry Pi koppeln und den Monitor als Anzeige nutzen. Das wird vom Hersteller natürlich nicht unterstützt, offiziell ist es nichtmal mit Linux kompatibel. Nach ein wenig Recherche konnte ich aber alles zum Laufen bekommen und kann hier die Anleitung präsentieren ;-).

Falls ihr noch keinen Raspberry Pi eingerichtet habt, kann diese Anleitung nützlich sein, darin steht ebenfalls wie ssh direkt mit aktiviert werden kann. Alles was hier in der Anleitung gezeigt wird, funktioniert sowohl mit ssh oder auch direkt am Raspberry Pi Terminal. Übrigens wird ssh mittlerweile auch nativ unter Windows 10 unterstützt, dafür muss lediglich ssh <Benutzer>@<IP-Adresse> in der cmd eingegeben werden.

Verbinden des USB-Mikroskops

Das Mikroskop kann an einen beliebigen USB-Anschluss am Raspberry Pi angeschlossen werden. Mein Modell hat einen Taster mit dem man es anschalten muss, ansonsten wird es nicht erkannt.

Livebild erzeugen

Im ersten Schritt schauen wir welche Aufnahmegeräte mit dem Raspberry Pi verbunden sind. Dazu folgender Befehl:
v4l2-ctl --list-devices
Die anderen Geräte wie video 10 – 16 können ignoriert werden

Die ersten Geräte können ignoriert werden. Interessant ist das Gerät mit der Bezeichnung usb-3f… Dadurch wissen wir, dass die Kamera unter /dev/video0 erreichbar ist.

Damit wir auch wissen welche Auflösung(en) unterstützt werden, wird folgender Befehl benötigt. Wobei -f v4l2 für das Format Video for Linux steht und mit -i wird das USB-Mikroskop als Input geprüft:
ffmpeg -f v4l2 -list_formats all -i /dev/video0
Die Kamera streamt mit mjpeg und 1280×720 Pixeln

Nach einer lange Liste von Befehlen, die automatisch ausgeführt werden, kommt über der roten Schrift die Auflösung zum Vorschein. In meinem Fall ist es 1280×720.

Alle diese Optionen können übrigens mit den man-pages angeschaut werden, die mit jedem Linux-System mitgeliefert werden. Der Befehl dazu ist „man <Programmname>“. Also in diesem Fall „man ffmpeg“. Mit „q“ kann die Anleitung wieder geschlossen werden.

Jetzt muss nur noch das Livevideo gestartet werden

Dafür verwende ich ffplay, was ein einfacher Videoplayer ist. Mit -f wird das Format v4l2 erzwungen. -video_size gibt die Auflösung vor und -i /dev/video0 ist das Input-device. Damit alles noch im Vollbildmodus gestartet wird, verwende ich den Befehl -fs.

ffplay -f v4l2 -video_size 1280x720 -i /dev/video0 -fs

Bonus

Soll der Raspberry Pi nur für das Mikroskop laufen. Also wirklich als standalone System, dann kann die Kamera mit dem passenden Video-Player in den Autostart gezogen werden. Dazu sind folgende Schritte notwendig:

Autostart Config anpassen:

Die Konfigdatei ist unter /etc/xdg/lxsession/LXDE-pi/autostart abgelegt.

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

in der letzten Zeile der Konfigdatei folgenden Befehl einfügen:

@ffplay -f v4l2 -video_size 1280x720 -i /dev/video0 -fs
Der Nano-Editor kann übrigens mit strg+X verlassen werden

Jetzt wird das USB-Mikroskop bei jedem Start automatisch im Vollbildmodus mit der Auflösung 1280×720 gestartet. Das selbe Prozedere geht natürlich auch mit einer USB-Webcam. Dazu werde ich einen eigenen Beitrag schreiben. Viel Spaß beim ausprobieren und falls es Probleme gibt, einfach ein Kommentar oder mich direkt anschreiben 🙂

Fotos machen

Es können übrigens mit ein paar einfachen Schritten Bilder gemacht und gespeichert werden. Unter RaspberryPi.org gibt es dazu eine schöne Schritt für Schritt Anleitung.

Linux Bootstick erstellen und installieren

Heute führe ich euch mal durch eine Linux Installation. Bei Linux gibt es mittlerweile eine große Auswahl an unterschiedlichen Betriebsystemen mit den verschiedensten Philosophien. Da eine genaue Erklärung für jede Distribution den Beitrag sprengen würde und dies ein Tutorial für Anfänger sein soll, habe ich mich für Ubuntu entschieden.

Bootstick erstellen

Zum Erstellen des Bootsticks habe ich mich für das Tool Rufus entschieden, welches sehr unkompliziert zu bedienen und auch noch recht schnell ist. Hier der Link zum Download. Die aktuelle ISO für Ubuntu gibt es hier zum Download. Im Video zeige ich euch wie’s geht ;-).

BIOS/UEFI Einstellungen

Egal ob klassisches BIOS oder modernes UEFI, folgende Punkte sind wichtig:

  • Bootreihenfolge ändern, dass der USB-Stick vor der HDD gebootet wird (nur zum installieren von Linux notwendig)
  • „fast boot“ auf disable stellen
  • „secure boot“ auf disable stellen
  • Falls eine SSD verbaut ist/wurde bei „SATA“ auf „AHCI“ einstellen

Leider sind die Optionen – bis auf Bootreihenfolge – oft an verschiedenen Stellen, daher kann hier keine genaue Anleitung gemacht werden.

Hier ist wichtig, dass der USB-Stick an der richtigen Stelle ist

Linux Installation

Die Linux Installation ist im Video dokumentiert.