Da ich die Kombination von Sunshine (Server) und Moonlight (Client) noch nicht kannte, habe ich es einmal ausprobiert, mit meinem Windows PC als Server und einem Raspberry PI4 2GB als Client. Ob es brauchbar ist, muss sich noch zeigen.
Die Installation war aber leider gerade auf Client-Seite etwas fummelig, daher hier meine Notizen:
Windows Host:
Die Installation erfolgte ohne Probleme: Einfach den aktuellen sunshine-windows-installer.exe von der Homepage laden und den Anweisungen des Installationsprogramms folgen.
Linux Client:
Das aktuelle Raspberry OS (bookworm) in der Lite-Version mit dem Raspberry Pi Imager auf eine SD-Karte installieren. Dabei kann direkt SSH, WLAN sowie ein eigener User konfiguriert werden.
Nach dem Booten konnte dann der Moonlight Client enstprechend der Anleitung installiert werden mit den Befehlen:
user@linux
~ $
curl -1sLf 'https://dl.cloudsmith.io/public/moonlight-game-streaming/moonlight-qt/setup.deb.sh' | distro=raspbian sudo -E bash
sudo apt install moonlight-qt
Moonlight kann man dann grundsätzlich mit dem folgenden Befehl starten:
user@linux
~ $
moonlight-qt
Nach der Installation ggf. die Kernel-Parameter in Datei /boot/firmware/cmdline.txt um folgende zwei Parameter erweitern:
video=HDMI-A-1:1920x1080M@60 usbhid.mousepoll=0
Der erste Parameter stellt die Auflösung fest ein. Dies ist sinnvoll, falls diese nicht korrekt erkannt wird, was bei meinem Monitor der Fall war. Übrigens, dass Aktivieren der Anzeige-Option "4K Output" in raspi-config führte bei mir dazu, dass Moonlight keine Bildausgabe schaffte (Ich habe allerdings auch keinen 4K Monitor). Der zweite Parameter hilft dabei, falls die Maus zu langsam ist.
Zuächst funktionierte bei mir der Ton in Moonlight nicht. Hier half es, Pulseaudio zu installieren und anschliessend mit Raspi-Config den Audio-Ausgang auf den korrekten HDMI-Port zu legen:
user@linux
~ $
sudo apt install pulseaudio
user@linux
~ $
sudo raspi-config
Damit jetzt noch Pulseaudio und Moonlight in der richtigen Reihenfolge automatisch beim einschalten des Raspis gestartet werden, musste ich im Verzeichnis /lib/systemd/system zwei .service-Dateien anlegen:
/lib/systemd/system/pulseaudio.service:
[Unit]
Description=pulseaudio
After=rc-local.service
Before=moonlight.service
[Service]
Type=simple
User=pi
ExecStart=/usr/bin/pulseaudio --daemonize=no --log-target=journal
[Install]
WantedBy=multi-user.target
/lib/systemd/system/moonlight.service:
[Unit]
Description=moonlight
After=rc-local.service
After=pulseaudio.service
[Service]
Type=simple
User=pi
ExecStart=/usr/bin/moonlight-qt
[Install]
WantedBy=multi-user.target
Damit diese Services auch automatisch beim Systemstart gestartet werden, noch die Befehle ausführen:
user@linux
~ $
sudo systemctl enable pulseaudio.service
user@linux
~ $
sudo systemctl enable moonlight.service