# Dongle und USB Eine abgeschottete Maschine hat kein Netzwerk. Ein Software-Schutzmodul hängt sonst an einem USB-Server im Netz — der ist damit unerreichbar. Und ohne Lizenzprüfung startet die Warenwirtschaft nicht, aus der man gerade Daten holen wollte. **SPICE löst das.** Die USB-Weiterleitung kommt vom **Rechner des Bedieners**, nicht über das Gastnetz. Die Maschine bleibt also vollständig abgeschottet und hat trotzdem ihren Dongle. ``` Dein Arbeitsplatz Proxmox-Host Gast Dongle am USB ──SPICE──► QEMU ──virtuell──► "USB-Gerät" remote-viewer (kein Netz nötig) ``` --- ## Einrichten Beim Anlegen in der [Optionsmaske](einrichten.md#die-optionsmaske) die beiden Felder setzen — oder direkt: ```bash pvesnap-recovery live 105 --usb 2 --no-resume ``` `--usb` schaltet `--spice` automatisch mit ein. Die Zusammenfassung sagt dann, was zu tun ist: ![Vorhaben mit SPICE und USB](../bilder/dongle-vorhaben.svg) --- ## Verbinden ```bash pvesnap-recovery spice 9104 -o vm.vv # Verbindungsdatei erzeugen scp root@10.20.0.12:vm.vv . # auf den Arbeitsplatz holen remote-viewer vm.vv # öffnen ``` Ohne `-o` wird die Datei auf die Standardausgabe geschrieben — praktisch für eine Pipeline: ```bash ssh root@pve2 pvesnap-recovery spice 9104 > vm.vv && remote-viewer vm.vv ``` Im **remote-viewer** dann unter **Datei → USB-Geräteauswahl** das Gerät anhaken. Es taucht sofort im Gast auf. !!! success "Guest-Tools braucht es dafür nicht" Der Dongle erscheint im Gast als gewöhnliches USB-Gerät; QEMU und der SPICE-Client machen die Arbeit. Die Guest-Tools (`tools/get-guest-tools.sh` holt virtio-win auf einen ISO-Storage) sind nur für Zwischenablage, automatische Auflösung und Mauszeiger nützlich. Für den Dongle sind sie überflüssig. Die Verbindungsdatei ist **kurzlebig**: Das darin enthaltene Kennwort gilt nur für wenige Sekunden. Sie muss also zeitnah nach dem Erzeugen benutzt werden — nicht am Vortag vorbereiten. --- ## Zwei Dinge, die man vorher wissen sollte ### USB braucht SPICE Ohne `vga: qxl` legt QEMU die Weiterleitungen zwar an, aber es gibt keinen Kanal, der sie transportiert — die Maschine startet dann mit `no spice port` gar nicht erst. Deshalb schaltet `--usb` die Anzeige automatisch mit ein. Umgekehrt gilt das nicht: Wer SPICE **ausschaltet**, verliert die USB-Anschlüsse mit — ohne Kanal wären sie ohnehin wirkungslos. pvesnap sagt das dazu, statt sie stillschweigend stehen zu lassen. ### SPICE und geladener Arbeitsspeicher schließen sich aus Das ist der unangenehme Teil, und er hängt davon ab, was im **Original** steht: | Original | warmer RAM-Zustand | SPICE + Dongle | |---|---|---| | `vga: std` (Vorgabe) | ✅ | nur mit `--no-resume` | | `vga: qxl` | ✅ | ✅ **gleichzeitig** | Der Grund: `qxl` bringt 64 MB Grafikspeicher mit, die Vorgabe 16. Der gespeicherte Zustand passt dann nicht mehr, und das Laden bricht ab: ``` Size mismatch: vga.vram ``` Die Maschine bleibt danach angehalten stehen, während Proxmox `TASK OK` meldet. `pvesnap-recovery` lehnt die Kombination deshalb von vornherein ab und nennt die Auswege. !!! tip "Der Griff, der sich lohnt — für Produktivmaschinen" Setz auf Maschinen, die ein Schutzmodul brauchen, **einmal** `vga: qxl`: ```bash qm set 105 --vga qxl ``` Dann tragen alle künftigen Snapshots es mit, und im Ernstfall gibt es warmen RAM-Zustand **und** Dongle gleichzeitig. **Nachträglich lässt sich das bei einem vorhandenen Snapshot nicht mehr reparieren** — der gespeicherte Zustand enthält die alte Grafikkarte. Es ist also eine Entscheidung, die man vorher trifft oder gar nicht. Auf der Produktivmaschine kostet `qxl` nichts außer ein paar Megabyte Grafikspeicher. --- ## Nachträglich umstellen Taste ++p++ in der [Detailansicht](arbeiten.md) ändert SPICE und USB auch an einer bestehenden Maschine: ![SPICE ein- oder ausschalten](../bilder/recovery-spice.svg) Dann die Zahl der Anschlüsse: ![Wie viele USB-Anschlüsse?](../bilder/recovery-usb.svg) | Änderung | | |---|---| | **SPICE ein oder aus** | **Neustart nötig** — die Grafikkarte lässt sich im Betrieb nicht wechseln | | **USB dazu oder weg** | sofort, solange der SPICE-Kanal schon steht | Ist ein Neustart nötig, warnt pvesnap vorher deutlich: ![Warnung vor dem nötigen Neustart](../bilder/recovery-neustart.svg) … und lässt danach die Wahl, **wie** neu gestartet wird — siehe [Damit arbeiten](arbeiten.md#neu-starten). !!! danger "Bei geladenem Arbeitsspeicher" Der ist nach dem Neustart **endgültig weg**. Wer SPICE nachrüstet, um an den Dongle zu kommen, verliert also genau den warmen Zustand, wegen dem er vielleicht überhaupt mit `--resume` gestartet ist. Deshalb: die Entscheidung möglichst **vor** dem ersten Start treffen. Höchstens **14 Anschlüsse** sind möglich — mehr sieht QEMU nicht vor. Für einen Dongle reicht einer; zwei sind bequem, wenn man zusätzlich einen USB-Stick durchreichen will. --- ## Wenn der Dongle nicht auftaucht | Symptom | woran es liegt | |---|---| | Kein Eintrag unter „USB-Geräteauswahl" | Der `remote-viewer` läuft auf dem falschen Rechner — er muss dort laufen, wo der Dongle steckt. | | Maschine startet nicht, `no spice port` | `vga: qxl` fehlt. In der Detailansicht ++p++ → SPICE ein. | | Gerät angehakt, im Gast nichts | Manche Dongles brauchen im Gast einen Treiber. Der gehört auf ein [Austauschlaufwerk](transfer.md). | | `.vv`-Datei wird abgewiesen | Sie ist zu alt — neu erzeugen, das Kennwort gilt nur kurz. | | Unter Linux fehlt `remote-viewer` | Paket `virt-viewer` installieren. | !!! note "Der Dongle bleibt am Arbeitsplatz" Er wird nicht in den Host gesteckt und nicht ins Netz gehängt. Genau das ist der Punkt: Der Weg führt über die SPICE-Verbindung, die ohnehin schon zwischen Arbeitsplatz und Maschine besteht — und nicht über ein Netz, das die abgeschottete Maschine gar nicht hat.