Это заставило меня задуматься, нужен ли мне API.
Как конечный пользователь VirtualBox, вам не нужен API.
Я хочу использовать видеокарту во время работы моей виртуальной машины MacOS.
Поддержка VirtualBox PCI Passthrough, которая требуется для того, что вы хотите сделать, очень ограничена и поставляется с конкретными аппаратными требованиями.
Сквозной модуль PCI поставляется в виде пакета расширения VirtualBox, который необходимо установить отдельно. См. Раздел 1.5, «Установка VirtualBox и пакетов расширений» для получения дополнительной информации.
По сути, эта функция позволяет напрямую использовать физические устройства PCI на хосте гостем, даже если на хосте нет драйверов для этого конкретного устройства. Поддерживаются как обычные карты PCI, так и некоторые карты PCI Express. AGP и некоторые карты PCI Express в настоящее время не поддерживаются, если они используют модульное программирование GART (Таблица переадресации графических адресов) для управления текстурой, поскольку оно выполняет довольно нетривиальные операции с переназначением страниц, мешающим IOMMU. Это ограничение может быть снято в будущих выпусках.
Чтобы быть полностью функциональным, поддержка сквозного подключения PCI в VirtualBox зависит от аппаратного блока IOMMU, который еще не слишком доступен. Если устройство использует мастеринг шины (т. Е. Оно самостоятельно выполняет DMA для памяти ОС), то требуется IOMMU, в противном случае такие транзакции DMA могут записывать неправильный адрес физической памяти, поскольку механизм DMA устройства запрограммирован с использованием конкретного устройства. протокол для выполнения транзакций памяти. IOMMU функционирует как модуль перевода, отображающий запросы доступа к физической памяти от устройства, используя знание физического гостевого адреса для правил преобразования физических адресов хоста.
Решение Intel для IOMMU продается под названием «Технология виртуализации Intel для направленного ввода-вывода» (VT-d), а решение AMD называется AMD-Vi.
Поэтому, пожалуйста, проверьте, есть ли в вашей спецификации материнской платы соответствующая технология. Даже если ваше оборудование не имеет IOMMU, некоторые PCI-карты могут работать (например, последовательные PCI-адаптеры), но гость отобразит предупреждение при загрузке, и выполнение виртуальной машины прекратится, если гостевой драйвер попытается включить мастеринг шины карты. ,
PCI сквозной
Я не хочу отдавать контроль над графическим процессором моей виртуальной машине, я просто хочу использовать его так же, как и графический процессор Intel.
Чтобы выполнить то, что вы хотите, вам придется отказаться от контроля, это просто факт.