UxPlay unter Debian 13: iPhone-Bildschirm auf Linux spiegeln

Wer wie ich Linux auf dem Rechner und gleichzeitig ein iPhone verwendet, möchte vielleicht auch mal den Bildschirm des iPhones auf dem Computer anzeigen. Normalerweise denkt man bei AirPlay an einen Apple TV oder andere Geräte aus dem Apple-Umfeld.

Mit UxPlay gibt es dafür eine kostenlose Open-Source-Lösung. Das Programm verwandelt den Linux-Rechner in einen AirPlay-Empfänger. Damit lassen sich der iPhone-Bildschirm, Fotos, Videos oder Präsentationen auf dem Computer anzeigen. Auch die Übertragung von Musik einschließlich Ton ist möglich.

Ich habe UxPlay unter Debian 13 eingerichtet und dabei eine interessante Erfahrung gemacht. Die Installation war am Ende gar nicht das Problem, sondern das WLAN, in dem ich mich befand.

Was kann UxPlay?

UxPlay unterstützt die Bildschirmübertragung von iPhones, iPads und Macs. Bild und Ton werden über das lokale Netzwerk übertragen und auf dem Linux-Rechner wiedergegeben.

Neuere Versionen bieten außerdem die Möglichkeit, Übertragungen als MP4 aufzuzeichnen oder Bild- und Tonsignale an Programme wie OBS Studio weiterzugeben.

Bei kopiergeschützten Streaminginhalten gibt es Einschränkungen. Auch eine Fernsteuerung des iPhones über den Linux-Rechner ist damit nicht möglich.

UxPlay unter Debian 13 installieren

Die Installation ist grundsätzlich einfach:

sudo apt install uxplay

Allerdings war in meinen Debian-13-Paketquellen noch Version 1.71.1 enthalten. Wer neuere Funktionen wie die Bluetooth-Geräteerkennung nutzen möchte, benötigt mindestens Version 1.73.

Ich habe deshalb UxPlay 1.73.7 direkt von GitHub installiert.

Zunächst die alte Version entfernen und alle benötigten Abhängigkeiten installieren:

sudo apt update
sudo apt remove -y uxplay

sudo apt install -y \
  git cmake build-essential pkg-config \
  libssl-dev libplist-dev libavahi-compat-libdnssd-dev \
  libdbus-1-dev libgstreamer1.0-dev \
  libgstreamer-plugins-base1.0-dev libx11-dev \
  gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
  gstreamer1.0-plugins-bad gstreamer1.0-libav \
  gstreamer1.0-gl gstreamer1.0-x \
  avahi-daemon

Anschließend den Quellcode herunterladen und kompilieren:

cd ~
git clone https://github.com/FDH2/UxPlay.git
cd UxPlay
git checkout v1.73.7

cmake -S . -B build
cmake --build build -j"$(nproc)"
sudo cmake --install build

Die neue Version liegt anschließend normalerweise unter /usr/local/bin/uxplay. Da sie selbst kompiliert wurde, muss man sich auch selbst um zukünftige Updates kümmern.

iPhone mit Linux verbinden

Zunächst sicherstellen, dass Avahi läuft:

sudo systemctl enable --now avahi-daemon

Danach UxPlay starten:

uxplay -n "Debian Laptop"

Auf dem iPhone öffnet man das Kontrollzentrum und wählt Bildschirmsynchronisierung. Dort sollte der Linux-Rechner erscheinen.

Nach dem Auswählen wird der iPhone-Bildschirm auf dem Desktop angezeigt. Eine zusätzliche App auf dem iPhone ist dafür nicht notwendig.

gespiegelter Iphone Bildschirm auf dem Debian Laptop

Und was ist mit Bluetooth?

Seit UxPlay 1.73 wird auch Bluetooth Low Energy unterstützt. Darüber kann der Linux-Rechner als AirPlay-Empfänger angekündigt werden.

Allerdings sollte man eines wissen: Bluetooth dient ausschließlich der Geräteerkennung. Bild und Ton werden weiterhin über das Netzwerk übertragen.

Das bedeutet auch, dass Bluetooth keine direkte Netzwerkverbindung zwischen iPhone und Linux-Rechner ersetzen kann.

Für die zusätzliche Bluetooth-Erkennung benötigt man BlueZ, passende Python-Bibliotheken und das mitgelieferte Skript uxplay-beacon.py. Die Einrichtung ist in der Projektdokumentation beschrieben.

Für die normale Bildschirmspiegelung ist Bluetooth überhaupt nicht erforderlich.

Warum mein iPhone den Rechner zunächst nicht gefunden hat

Obwohl UxPlay korrekt lief und der AirPlay-Dienst im Netzwerk angekündigt wurde, erschien mein Laptop zunächst nicht auf dem iPhone.

Nach einigen Tests stellte sich heraus, dass die Geräte im verwendeten WLAN offenbar nicht direkt miteinander kommunizieren durften.

Das nennt sich Client-Isolation und ist besonders in öffentlichen WLAN-Netzwerken verbreitet. Damit wird verhindert, dass Nutzer auf die Geräte anderer WLAN-Teilnehmer zugreifen können.

Eine durchaus sinnvolle Sicherheitsfunktion, die allerdings Anwendungen wie AirPlay Probleme bereitet.

Beide Geräte hatten zwar eine IP-Adresse aus demselben Netzwerk, konnten sich aber gegenseitig nicht erreichen. Auch die Bluetooth-Geräteerkennung änderte daran nichts.

Die Lösung war schließlich ziemlich einfach: Ich habe ein eigenes privates WLAN verwendet, in dem sich iPhone und Linux-Rechner direkt erreichen konnten.

Und schon funktionierte die Bildschirmübertragung.

Wer sich in einem öffentlichen WLAN mit Client-Isolation befindet, kann alternativ einen eigenen WLAN-Router verwenden oder einen persönlichen Hotspot des iPhones ausprobieren. Letzteres hängt allerdings von der jeweiligen Hotspot-Konfiguration ab und funktioniert nicht in jeder Konstellation.

Mein Fazit

UxPlay ist eine praktische Open-Source-Lösung, um den iPhone-Bildschirm ohne Apple TV auf einem Linux-Rechner anzuzeigen.

Die Installation unter Debian 13 ist mit den passenden Abhängigkeiten überschaubar. Wer die neueren Funktionen nutzen möchte, sollte allerdings auf eine aktuelle Version achten.

Was ich bei meiner Einrichtung gelernt habe: Wenn AirPlay nicht funktioniert, muss es nicht an UxPlay liegen. Manchmal verhindert schlicht das WLAN die Verbindung.

Und ganz wichtig: Bluetooth kann bei UxPlay die Geräteerkennung übernehmen, für die eigentliche Bildschirmübertragung bleibt eine funktionierende Netzwerkverbindung notwendig.

Projekt: https://github.com/FDH2/UxPlay

Release 1.73.7: https://github.com/FDH2/UxPlay/releases/tag/v1.73.7