Ich habe heute den letzten Windows-PC durch Linux Mint ersetzt. Und zwar der Visualisierungs-PC im Wohnzimmer für den Gira Homeserver. Natürlich sollte aber weiterhin der Gira QuadClient darauf laufen, was ich mit Wine gelöst habe.
Hier die Schritte dafür, falls jemand die selbe Anforderung hat.
# 32-Bit-Architektur aktivieren
sudo dpkg --add-architecture i386
# WineHQ-Signierschlüssel und Paketquelle (Ubuntu/Mint "noble")
sudo mkdir -p /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/noble/winehq-noble.sources
# Paketlisten aktualisieren und Wine + Werkzeuge installieren
sudo apt update
sudo apt install -y --install-recommends winehq-stable winetricks cabextract wmctrl xdotool
# Eigener 32-Bit-Prefix
export WINEPREFIX="$HOME/.wine-gira"
export WINEARCH=win32
wineboot --init
# Schriften + .NET Framework 4.8 (dauert einige Minuten, lädt ~120 MB)
winetricks -q corefonts dotnet48
# Bestehende, vorher unter Windows erzeugte Konfiguration einspielen
mkdir -p "$HOME/.wine-gira/drive_c/Gira/home"
cp -r /pfad/zu/deiner/kopie/qc "$HOME/.wine-gira/drive_c/Gira/home/qc"
# Erster Testlauf
export WINEPREFIX="$HOME/.wine-gira"
cd "$HOME/.wine-gira/drive_c/Gira/home/qc"
wine hs_client_net.exe
Ich hatte dann noch ein paar Probleme mit der Startleiste und auch einem überlagernden Startmenu was ich regelmäßig mache um einen Browser zu öffnen um weitere Smarthome-Geräte (wie meinen Rasenmäher) zu steuern. Daher hab ich ein Script geschrieben, welches die nötigen Einstellungen setzt und alles passend startet und auch wieder aufräumt.
#!/bin/bash
# Gira HomeServer QuadClient unter Wine (Wine-Virtual-Desktop).
# Startet einmalig; beim Beenden KEIN Neustart. Volle Auflösung + bedienbares
# Cinnamon-Startmenü (Windows-Taste), da das äußere Fenster nicht Vollbild ist.
export WINEPREFIX="$HOME/.wine-gira"
export WINEARCH=win32
export WINEDEBUG=-all
export DISPLAY="${DISPLAY:-:0}"
QC="$WINEPREFIX/drive_c/Gira/home/qc"
cd "$QC" || exit 1
# Reste einer vorherigen Instanz aufräumen (nur eine Instanz)
wineserver -k 2>/dev/null
sleep 1
# Bildschirmauflösung ermitteln (Fallback 1600x900)
read W H < <(xdotool getdisplaygeometry 2>/dev/null)
[ -z "$W" ] && { W=1600; H=900; }
wine explorer "/desktop=giradesk,${W}x${H}" hs_client_net.exe &
# Auf das Wine-Desktop-Fenster warten und Vollbild-Status entfernen
VW=""
for i in $(seq 1 45); do
VW=$(wmctrl -lx 2>/dev/null | grep -i "explorer.exe.explorer.exe" | awk '{print $1}' | head -1)
[ -n "$VW" ] && break
sleep 1
done
[ -n "$VW" ] && { sleep 2; wmctrl -i -r "$VW" -b remove,fullscreen; }
# Überwachen: sobald das Fenster verschwindet (App beendet) -> aufräumen, Ende
while wmctrl -lx 2>/dev/null | grep -qi "explorer.exe.explorer.exe"; do
sleep 3
done
wineserver -k 2>/dev/null
Das Script dann einfach noch per Icon auf dem Desktop oder per Autostart beim booten ausführen – fertig.