Wir sind gerade gestartet. Website und Service werden noch verfeinert – wir bitten schon jetzt um Entschuldigung für mögliche Ungenauigkeiten und Unebenheiten. Ist Ihnen ein Fehler aufgefallen oder funktioniert etwas nicht wie erwartet? Schreiben Sie uns – wir beheben es schnell.

← Alle Projekte
DE
Mehr als TAKT

qemu-thunderbolt

Ein QEMU-Branch, der eine PCIe-Hotplug-Schicht im Thunderbolt-Stil hinzufügt. Geräte dahinter bleiben gewöhnliche PCI-Geräte von QEMU; die Schicht steuert, ob der Gast sie als verbunden sieht, und sendet die Hotplug-Benachrichtigungen.

  • QEMU
  • Thunderbolt
  • PCIe
  • macOS
Status
Experimentell: fünf Commits auf QEMU master vom Juli 2026, im Branch tb-bus. Validiert mit macOS-Gästen: Erkennen und Entfernen der Anzeige, Hotplug und Unplug von NVMe, Einhängen, Schreiben, Auswerfen und erneutes Anstecken von USB-Speicher mit intakten Daten.
Lizenz
GPL-2.0-or-later, wie QEMU; thunderbolt-vga.c behält die MIT-Lizenz des stdvga-Codes, von dem es abgeleitet ist.
Plattformen
QEMU qemu-system-x86_64 mit der q35-Maschine; macOS-Gäste.

Welches Problem es löst

Manche Gäste können für ein Gerät kein direktes PCIe-Hotplug nutzen. Hauptziel der Validierung ist macOS: Es sieht das Gerät über eine für den Gast sichtbare Thunderbolt-Schicht, auch wenn direktes PCIe-Hotplug desselben Endpunkts nicht nutzbar ist. So lassen sich echte und virtuelle Geräte zu einem laufenden Gast hinzufügen und wieder entfernen.

Wichtigste Funktionen

  • thunderbolt-root-port: ein PCIe-Root-Port mit eigenem thunderbolt-bus; seine Eigenschaft connected trennt den ganzen Port und verbindet ihn wieder.
  • thunderbolt-pcie-pci-bridge: eine PCIe-zu-PCI-Brücke für getunnelte PCI-Endpunkte, mit Thunderbolt-bezogenen ACPI-Eigenschaften.
  • thunderbolt-vga: eine hotplugfähige, stdvga-kompatible Anzeige; das reguläre Gerät VGA bleibt unverändert und nicht hotplugfähig.
  • Beispiele für eine Anzeige, USB-Speicher hinter einem xHCI-Controller und ein NVMe-Laufwerk, alles über den QEMU-Monitor.
  • Ein qtest für das Hotplug der Anzeige und Dokumentation in docs/specs.

So funktioniert es

Der Gast startet auf einer q35-Maschine mit seiner normalen Boot-Anzeige und einem leeren thunderbolt-root-port. Im QEMU-Monitor setzt device_add einen Endpunkt auf den Bus des Ports, device_del entfernt ihn; qom-set … connected false und true trennen den ganzen Port und stecken ihn wieder an. Der Root-Port liefert die ACPI-Beschreibung und die PCIe-Hotplug-Signale, die der Gast sieht; die Gerätemodelle der Endpunkte werden nicht geändert.

(qemu) device_add thunderbolt-vga,id=tbvga0,bus=tbrp0,addr=0x00
(qemu) device_del tbvga0
(qemu) qom-set /machine/peripheral/tbrp0 connected false

Voraussetzungen

  • QEMU, gebaut aus dem Branch tb-bus des Repositorys.
  • Der Maschinentyp q35; die Beispiele verwenden qemu-system-x86_64.
  • Die Boot-Anzeige bleibt ein reguläres VGA; eine Thunderbolt-Anzeige wird nach dem Booten hinzugefügt.

Diese Seite fasst README und Dokumentation des Repositorys mit Stand Oktober 2026 zusammen. Maßgeblich ist das Repository selbst.