Hardware | Netzwerk | Server | David Wolski | 6/2021 | 24. September 2021

Zweitmonitor per Streaming

Wer Videokonferenztools wie Microsoft Teams oder Skype kennt, weiß deren
Screensharing-Methoden zu schätzen. Hinter dem Open-Source-Tool Deskreen
steht ein ähnliches Konzept, das den Bildschirm über das Netzwerk teilt oder erweitert.

Wer Videokonferenztools wie Microsoft Teams oder Skype kennt, weiß deren Screensharing-Methoden zu schätzen. Hinter dem Open-Source-Tool Deskreen steht ein ähnliches Konzept, das den Bildschirm über das Netzwerk teilt oder erweitert.

Das Spiegeln oder Freigeben des eigenen Bildschirms über ein Videokonferenzprogramm ist eine häufig genutzte Möglichkeit, im Team ein Dokument oder einen Fenster­inhalt zu zeigen. Was in Konferenzen funktioniert, ist auch für Präsentationen hilfreich oder einfach zum Erweitern des Desktops auf einen anderen Rechner, auf ein Tablet oder einen Smart-TV. Es gibt dafür einige Bastellösungen unter Linux, die größere Kommandozeilenakrobatik erfordert. Richtig einfach macht dagegen die Erweiterung des Desktops auf ein anderes Gerät im Netzwerk das Open-Source-Programm Deskreen. Es stellt entweder ein einzelnes Programmfenster oder den gesamten Desktop als Videostream über einen eigenen Webserver im LAN bereit. Das bedeutet: Das Gerät, welches zur Anzeige dienen soll, braucht nicht mehr als einen HTML5-fähigen Webbrowser. Deskreen kann bei der Anzeige des Desktop entweder den Bildschirminhalt spiegeln oder den Desktop um einen zweiten virtuellen Monitor erweitern.

Voraussetzungen und Einrichtung

Das Spiegeln des aktuellen Desktops und das Erweitern per virtuellem Monitor ohne zusätzliche Hardware gelingt in Linux unter Xorg mit einigen Shell-Befehlen.

Für andere Betriebssysteme wie Windows und Mac-OS, für die es ebenfalls Versionen von Deskreen gibt, ist zum Erweitern des Bildschirms ein HDMI-Dummy-Plug (ab fünf Euro) am HDMI-Ausgang der Grafikkarte oder des Notebooks nötig. Ebenfalls wichtig ist ein flottes WLAN: Der Videostream ist bei hohen Auflösungen datenintensiv. Am besten klappte bei unseren Tests die Übertragung in einem 5-GHz-WLAN. Kein Probleme bereitet kabelgebundenes LAN und es ist schon hilfreich, wenn nur eines der beiden Geräte einer Deskreen-Verbindung per Ethernet verbunden ist. Bei Deskreen handelt es sich um eine plattformübergreifende Electron-Anwendung, also um ein Javascript- und HTML-basiertes Programm in einer eigenen Webbrowser-Runtime. Electron-Anwendungen sind aufgrund dieses Aufbaus stets speicherhungriger als native Linux-Anwendungen und ein flotter Rechner ist auf Serverseite von Vorteil.

Die Installation ist nicht kompliziert: Auf der offiziellen Webseite https://deskreen.com stehen unter anderem Pakete für Linux bereit, für Debian/Ubuntu und Linux Mint ein DEB-Paket, das nach dem Download mit dem Befehl

sudo dpkg -i deskreen_1.0.11_amd64.deb

installiert wird. Es gibt auch ein universelles Appimage und einen Installer für Windows und Mac-OS (alle 64 Bit).

Nach dem Start geht es nach der Sprachauswahl zu einem Programmfenster weiter, das die IP-Adresse mit URL zum Deskreen-Server anzeigt. Diese gibt man nun im Client in der Adresszeile eines Browsers ein. Weil dies bei IPv6-Adressen und Tablets zu umständlich ist, gibt zeigt Deskreen auch einen QR-Code zum Einscannen per Kamera an. Danach geht es zur Anfragebestätigung auf dem Server und dann zur Auswahl eines einzelnen Programmfensters oder des gesamten Desktops zur Übertragung.

Virtueller Monitor: Mit Bastelei in der Kommandozeile kann das Tool xrandr unter Linux einen weiteren Bildschirm simulieren und Deskreen streamt diesen an ein anderes Gerät.

Xorg: Zweiten Bildschirm simulieren

Um einen zweiten Bildschirm in den Einstellungen der Desktopumgebung zu konfigurieren, gibt es einen Trick: Das Programm xrandr kann unter Xorg weitere Monitore auf Bildschirmschnittstellen simulieren, auch wenn dort nichts angeschlossen ist.

Dazu ermittelt erst

xrandr

die Nomenklatur der vorhandenen Bildschirme. In diesem Fall ist der tatsächliche Monitor eines Notebooks das Gerät „eDP1“ und an HDMI1 hängt nichts. Nun fügt der Befehl

xrandr --addmode HDMI1 1920x1080

dort einen Anzeigemodus hinzu und

xrandr --output HDM1 --mode 1920x1080 --left-of eDP1

aktiviert diese Ausgabe. Nun steht dieser virtuelle Monitor in Deskreen bei einer neuen Verbindung zur Auswahl bereit. Bei einem Neustart gehen diese Einstellungen verloren.

Per Hardware: Eine einfachere Möglichkeit ist ein HDMI-Dummy-Plug an einem der HDMI-Ausgänge des Rechners, der dem Betriebssystem per Chip einen weiteren Monitor simuliert. In den Desktopeinstellungen kann diese virtuelle Anzeige dann konfiguriert werden und steht auch in Deskreen zur Auswahl. Dieser Weg funktioniert auch in Windows und Mac-OS. Ein HDMI-Dummy-Plug kostet etwa fünf Euro aufwärts inklusive Versand (https://amzn.to/3gPoCd3) und arbeitet in allen Betriebssystemen.

Bestätigung statt Passwort: Bevor der Client im Browser das weitergeleitete Monitorbild sieht, muss die Verbindung auf dem Server in Deskreen in dieser Meldung autorisiert werden.

Zusätzliche Info: Xpra: Streaming mit Bordmitteln

Der Charme von Deskreen ist die einfache Konfiguration, die mit wenigen Klicks einen Desktop-Streaming-Server aufzieht. Wer manuelle Vorbereitungen nicht scheut, kann auf Linux-Systemen eine Bildschirmfreigabe im Netzwerk auch mit dem Tool Xpra aufbauen (https://xpra.org). Es kann einzelne Programmfenster oder den ganzen Bildschirminhalt weiterleiten und zwar nicht nur an eine andere Clientinstanz von Xpra, sondern auch per HTTP und HTML5 wie Deskreen.

Xpra ist in erster Linie ein Kommandozeilenprogramm, denn die optionale grafische Oberfläche ist rätselhaft. Es handelt sich deshalb um eine Lösung für Fortgeschrittene, die anders als Deskreen als Fernsteuerungstool im Stil von VNC oder dem Remotedesktop in Windows genutzt wird.

Xpra findet sich in den Standard-Paketquellen von Distributionen. Doch die Entwickler empfehlen dies nicht, da es sich um alte und unvollständige Versionen handelt. Stattdessen gibt es für die verbreiteten Linux-Systeme eigene Repositorys, deren Einbindung unter https://git.io/JtK56 mit Beispielen erklärt ist.

Streaming per HTML5: Xpra kennt im Vergleich mit Deskreen etliche Einstellungen für verschiedene Szenarien. Der einfachste Weg, die Ausgabe einer Anwendung von einem Linux-Desktop in den Browser eines anderes Clients zu bringen, ist die Weiterleitung per HTM5-Video und HTTP wie bei Deskreen. Dazu startet folgender Befehl einen Xpra-Server mit Webschnittstelle (HTTP) auf Port 4444 (Beispiel):

xpra shadow --bind-tcp=0.0.0.0:4444

Auf dem Client öffnet nun die URL „http://[IP-Adresse]:4444“ die Verbindung zum Desktop, wobei als „[Adresse]“ wieder der konkrete Hostname oder die IP-Adresse steht. Oben links gibt es ein Menü, um die Anzeige in den Vollbildmodus zu schalten und den Server fernzusteuern.

Streaming per SSH: Der ursprüngliche Verwendungszweck von Xpra ist X11-Forwarding über SSH. Auch das geht natürlich immer noch, etwa mit folgenden Befehl auf dem Client:

xpra start ssh/[user]@[server]/ --start=gedit

Dies öffnet eine SSH-Verbindung zum Server, startet dort Gedit und zeigt das Fenster auf dem Desktop des Clients an. Damit dies funktioniert, sind auf dem Server ein installiertes Xpra sowie ein laufender SSH-Server nötig.

Xpra im Browser: Dieses Linux-Programm beherrscht nicht nur SSH-Tunnel, sondern kann Linux-Desktops per HTML5 in Webbrowser übertragen.