Мы только что запустились. Сайт и сервис ещё дорабатываются — заранее просим прощения за возможные неточности и огрехи. Заметили ошибку или что-то работает не так? Напишите нам — быстро исправим.

← Все проекты
RU
Не только TAKT

qemu-thunderbolt

Ветка QEMU, которая добавляет слой горячего подключения PCIe в стиле Thunderbolt. Устройства за ним остаются обычными PCI-устройствами QEMU; слой управляет тем, видит ли гость их подключёнными, и отправляет уведомления о горячем подключении.

  • QEMU
  • Thunderbolt
  • PCIe
  • macOS
Статус
Экспериментальный: пять коммитов поверх master QEMU от июля 2026 года, в ветке tb-bus. Проверено на гостях macOS: обнаружение и удаление дисплея, горячее подключение и отключение NVMe, монтирование, запись, извлечение и повторное подключение USB-накопителя с сохранностью данных.
Лицензия
GPL-2.0-or-later, как QEMU; thunderbolt-vga.c сохраняет лицензию MIT кода stdvga, от которого он произошёл.
Платформы
QEMU qemu-system-x86_64 с машиной q35; гости macOS.

Какую задачу решает

Некоторые гости не могут использовать прямое горячее подключение PCIe для устройства. Основная цель проверки — macOS: она видит устройство через видимый гостю слой Thunderbolt, даже когда прямое горячее подключение PCIe того же устройства недоступно. Тогда реальные и виртуальные устройства можно добавлять в работающий гость и удалять из него.

Основные возможности

  • thunderbolt-root-port: корневой порт PCIe со своей шиной thunderbolt-bus; его свойство connected отключает и снова подключает весь порт.
  • thunderbolt-pcie-pci-bridge: мост PCIe–PCI для туннелируемых PCI-устройств, с ACPI-свойствами, относящимися к Thunderbolt.
  • thunderbolt-vga: совместимый с stdvga дисплей с горячим подключением; обычное устройство VGA не изменено и по-прежнему не подключается на ходу.
  • Примеры для дисплея, USB-накопителя за контроллером xHCI и NVMe-диска — всё из монитора QEMU.
  • qtest для горячего подключения дисплея и документация в docs/specs.

Как это работает

Гость стартует на машине q35 со своим обычным загрузочным дисплеем и пустым thunderbolt-root-port. В мониторе QEMU device_add ставит устройство на шину порта, а device_del убирает его; qom-set … connected false и true отключают и снова подключают весь порт. Корневой порт даёт гостю описание ACPI и сигналы горячего подключения PCIe; модели самих устройств не меняются.

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

Требования

  • QEMU, собранный из ветки tb-bus репозитория.
  • Тип машины q35; в примерах используется qemu-system-x86_64.
  • Загрузочный дисплей остаётся обычным VGA; дисплей Thunderbolt добавляется после загрузки.

Эта страница кратко пересказывает README и документацию репозитория по состоянию на октябрь 2026 года. Первоисточник — сам репозиторий.