Looking Glass - VM Display Duplikation via Shared-Memory (Einrichtung)

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@thilobillerbeck·
0.000 HBD
Looking Glass - VM Display Duplikation via Shared-Memory (Einrichtung)
![](https://i.imgur.com/l08fP7Y.png)
Heute möchte ich dir Looking Glass vorstellen. Looking Glass ist eine Möglichkeit, den Bildschirminhalt deiner Windows VM an deinen Linux Host zu übertragen.

Das mag auf den ersten Moment nicht neu klingen, da es solche Technologien schon gibt, doch Looking Glass nutzt anstatt einer Netzwerkschnittstelle einen **gemeinsamen Speicher**. Das minimiert die Latenz der Bildübertragung theoretisch auf 0ms. Da es sich bei Speicher aber um ein elektronisches Bauteil mit gewissen Latenzen handelt, kommt man (laut Projektseite) auf etwa 16ms. Beim Austausch der Bilddaten über den Speicher wird außerdem **keine Kompression** angewendet, es kommt also (theoretisch) ein **verlustfreies Bild** am anderen Ende an.

Wenn du Looking Glass ausprobieren möchtest, folgt hier ein kleines Tutorial, wie du es dir einrichten kannst.

## Wie benutze ich Looking Glass?
### Schritt 0: Anforderungen checken
Alles was du für Looking Glass brauchst ist ein unter **KVM** virtualisiertes und mit **libvirt** verwaltetes **Windows 10** mit **GPU Passthrough**. Die Gast-GPU sollte außerdem **DXGI Desktop Duplication** oder die **NVIDIA Capture API** unterstützen.

### Schritt 1: Gerät einfügen

Als erstes fügst du via `virsh edit` folgendes Gerät in die `<devices>` Liste deiner VM ein:

![](https://i.imgur.com/ToLqixT.png)

Es kann sein, dass deine `libvirt` Version diese Syntax nicht annimmt. Alternative Methoden findest du in der [Dokumentation](https://looking-glass.hostfission.com/node/9).

**Speicherplatz X berechnen**

`<size unit='M'>X</size>` gibt die Größe des geteilten Speichers (Host/VM) an. Diese berechnest du wie folgt:

![](https://i.imgur.com/cFMWlHg.png)

Den Wert musst du nun noch auf die nächst höhere Zweierpotenz (2,4,8,16,32,64,...) aufrunden.

### Schritt 2: Speicher reservieren

Desweiteren solltest du einen gemeinsamen Speicherbereich in deinem Dateisystem festlegen (hier als Bash Script):

![](https://i.imgur.com/CpIxXby.png)

*(`user` durch deinen Nutzernamen ersetzen)*

Dieses lässt du am besten mit `systemd` oder ähnlichen Tools automatisch starten. 

### Schritt 3: Einrichtung im Gastsystem

Lade dir nun den `vshmem` Treiber für Windows herunter. Zum Verfassungsdatum gibt es [unter diesem Link](http://people.redhat.com/vrozenfe/ivshmem/ivshmem2.zip) die aktuellste Version.

Wechsele nun in deine Windows VM und sucht nach einem Gerät mit dem Namen "PCI standard RAM Controller" (kann im Deutschen variieren) und installiere dafür den soeben heruntergeladenen Treiber.

Danach lädtst du dir [hier](https://looking-glass.hostfission.com/downloads) den neusten Looking Glass Host herunter und startest die entpackte `.exe` Datei.

### Schritt 4: Installation des Clients

Zurück in deinem Linux Host lädtst du dir einen entsprechenden Client herunter. Unter Arch Linux gibt es solch einen zum Beispiel im [AUR](https://aur.archlinux.org/packages/looking-glass/). Eine Übersicht aller Clients findest du in der [Dokumentation](https://looking-glass.hostfission.com/quickstart).

### Schritt 5: Ausführen des Clients

Nach der Installation führst du den Befehl `looking-glass-client` in deiner Shell aus und voila, du siehst das Bild deiner Windows VM.

Solltest du für das Nutzen deiner VM keinen Spice Server verwenden, hängst du einfach noch ein `-s` an den Befehl an, um Looking Glass ohne Spice zu starten.

### Schritt 6: Spaß haben ;)

Nun liegt es an dir, diese neue Technologie auszuprobieren und damit ein bisschen Erfahrung zu sammeln. Ich hoffe du hast viel Freude damit.

Danke fürs Lesen,
Thilo

**Quellen:
[Looking Glass Projektseite](https://looking-glass.hostfission.com/)
[Arch Wiki](https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF#Using_Looking_Glass_to_stream_guest_screen_to_the_host)**
👍 , , , , , ,