Abbiamo appena lanciato il servizio. Il sito e il servizio sono ancora in fase di rifinitura: ci scusiamo in anticipo per eventuali imprecisioni o imperfezioni. Ha notato un errore o qualcosa non funziona come previsto? Ci scriva e lo correggeremo subito.

← Tutti i progetti
IT
Oltre TAKT

qemu-thunderbolt

Un branch di QEMU che aggiunge un livello di hotplug PCIe in stile Thunderbolt. I dispositivi dietro di esso restano normali dispositivi PCI di QEMU; il livello controlla se il guest li vede connessi e invia le notifiche di hotplug.

  • QEMU
  • Thunderbolt
  • PCIe
  • macOS
Stato
Sperimentale: cinque commit sopra il master di QEMU di luglio 2026, nel branch tb-bus. Validato con guest macOS: rilevamento e rimozione del display, hotplug e scollegamento di NVMe, montaggio, scrittura, espulsione e ricollegamento di uno storage USB con i dati intatti.
Licenza
GPL-2.0-or-later, come QEMU; thunderbolt-vga.c mantiene la licenza MIT del codice stdvga da cui deriva.
Piattaforme
QEMU qemu-system-x86_64 con la macchina q35; guest macOS.

Quale problema risolve

Alcuni guest non possono usare l’hotplug PCIe diretto per un dispositivo. macOS è il principale obiettivo di validazione: vede il dispositivo attraverso un livello Thunderbolt visibile al guest, anche quando l’hotplug PCIe diretto dello stesso endpoint non è utilizzabile. Così si possono aggiungere e rimuovere dispositivi reali e virtuali in un guest in esecuzione.

Funzionalità principali

  • thunderbolt-root-port: una root port PCIe con un proprio thunderbolt-bus; la sua proprietà connected scollega e ricollega l’intera porta.
  • thunderbolt-pcie-pci-bridge: un bridge PCIe-PCI per endpoint PCI tunnellizzati, con proprietà ACPI relative a Thunderbolt.
  • thunderbolt-vga: un display compatibile stdvga che supporta l’hotplug; il normale dispositivo VGA resta invariato e non supporta l’hotplug.
  • Esempi per un display, uno storage USB dietro un controller xHCI e un’unità NVMe, tutti dal monitor di QEMU.
  • Un qtest per l’hotplug del display e documentazione in docs/specs.

Come funziona

Il guest parte su una macchina q35 con il suo normale display di avvio e una thunderbolt-root-port vuota. Nel monitor di QEMU, device_add collega un endpoint al bus della porta e device_del lo rimuove; qom-set … connected false e true scollegano e ricollegano l’intera porta. La root port fornisce la descrizione ACPI e la segnalazione di hotplug PCIe che il guest vede; i modelli dei dispositivi endpoint non cambiano.

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

Requisiti

  • QEMU compilato dal branch tb-bus del repository.
  • Il tipo di macchina q35; gli esempi usano qemu-system-x86_64.
  • Il display di avvio resta un normale VGA; un display Thunderbolt si aggiunge dopo l’avvio.

Questa pagina riassume il README e la documentazione del repository a ottobre 2026. La fonte di riferimento è il repository stesso.