IronHide / BumbleBee с виртуальной машиной VirtualBox. Пройдет ли оно через ускорение видео на физическую карту?


8

Есть идеи, можно ли запустить Windows VM через IronHide для ускорения видеокарты? Я бы хотел поиграть в игры / посмотреть блюрей и т.д., используя мою видеокарту.


1
Я успешно запустил Windows VM с шмелем, но без видимого эффекта, вы ищете что-то более конкретное?
Давид.Libremone

1
Ну, я хотел бы знать, будет ли virtualbox проходить через видеоускорение с виртуальной машины Windows, чтобы играть в игры / смотреть bluray и т. Д.
mwjackson

1
Я планирую протестировать это сам когда-нибудь, я сообщу вам результаты, если кто-то еще не ответит первым - возможно, скорректируйте свой вопрос, чтобы быть более конкретным?
Давид.Libremone

Я немного запутался в том, что вы спросили: хотите, чтобы виртуальная машина использовала графический процессор nvidia для ускорения 3D? Как прямой доступ к графическому оборудованию через виртуальную машину?
Ури Эррера

1
@jacko, возможно, вы захотите создать кросс-пост на форумах forum.virtualbox.org
david.libremone

Ответы:


9

Возможно, здесь поможет объяснение между графикой в ​​виртуальном госте и фактическим хостом O / S.

Сначала основы:

Все в виртуальном госте является абстракцией - это означает, что каждое устройство и драйвер в виртуальном гостевом O / S не зависят от реального хост-устройства и драйвера.

Чтобы дать вам простой пример. Мышь рассматривается как конкретное устройство - ядро ​​Linux видит это устройство и позволяет гостевой операционной системе использовать это устройство. Это «виртуальное устройство» отображается на реальном физическом устройстве с помощью инструмента виртуализации - VirtualBox, VMWare, Xen и т. Д. Таким образом, гостевой операционной системе никогда не нужно понимать, что такое физическая мышь, она видит только то, что инструмент виртуализации сопоставил с ней. , Ценность этого подхода заключается в том, что вы можете перемещать виртуального гостя на разные хосты - он будет работать одинаково, поскольку нет прямой зависимости от самого хоста.

Чтобы продемонстрировать это на практике, вы можете работать lsusbкак на хосте, так и на госте - на моем хосте O / SI есть следующие USB-устройства:

Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0402:9665 ALi Corp. 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

На моем гостевом компьютере oneiric O / SI видны следующие USB-устройства - они отличаются от хоста:

Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Любая гостевая операционная система Windows или Linux увидит только это виртуальное гостевое устройство.

Графика хоста против гостевой графики

То же самое для графики.

Моя главная графика:

 sudo lshw -class display
  *-display               
       description: VGA compatible controller
       product: Core Processor Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 18
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:41 memory:90000000-903fffff memory:80000000-8fffffff ioport:3050(size=8)

На моей гостевой oneiric O / S он может видеть следующую видеокарту - вы можете видеть, что она не совпадает с хостом:

sudo lshw -class display
  *-display UNCLAIMED     
       description: VGA compatible controller
       product: VirtualBox Graphics Adapter
       vendor: InnoTek Systemberatung GmbH
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: vga_controller bus_master
       configuration: latency=64
       resources: memory:e0000000-e7ffffff

Аналогично - Windows Guest O / S увидит только аналогичное виртуальное гостевое устройство.

В мрачном мире VirtualBox гостевые дополнения, которые вы можете установить вручную (или в 11.10 - жокей видит и рекомендует установить его), устанавливают дополнительные модули ядра (или драйверы устройств для гостей Windows), чтобы предоставить гостевой операционной системе расширенный доступ к ваш хост O / S графика. Опять же, это не прямое отображение, но позволяет увидеть 3D ускоренную графику.

Если приложение на вашей виртуальной машине использует 3D-функции через программный интерфейс OpenGL (или для гостевой операционной системы Windows - ее вызовы DirectX), вместо эмуляции их в программном обеспечении (что будет медленным), VirtualBox попытается использовать хост вашего компьютера. 3D оборудование.

Еще раз подчеркиваю, гостевая O / S не видит вашу настоящую видеокарту, она просто передает вызов OpenGL (или DirectX) от гостя непосредственно на аппаратное обеспечение хоста для обработки.

введите описание изображения здесь

В настройках VirtualBox вы должны изменить настройки памяти видеокарты и 3D-видеокарты. Ваш гостевой O / S увидит «3D-карту ускорения» с 128 МБ ОЗУ. Не имеет значения, если ваша графическая карта хоста лучше, чем эта - ваша гостевая операционная система увидит только эту «простую» абстрактную виртуальную видеокарту.

Поскольку вы упомянули, что используете гостевую операционную систему Windows - флажок 2D применим к вам, так как выполняется аналогичная передача вызовов интерфейса программирования.

Bumblebee / IronHide - это или / или механизм переключения графики - вы используете либо встроенную графику, либо графику NVidia / ATI с большей емкостью, но не обе одновременно.

Поскольку возможности OpenGL (или DirectX) более переключаемой графики намного больше, чем у интегрированного набора микросхем, вы увидите относительно более высокую производительность графики в приложениях с интенсивной графикой Guest O / S. Однако это улучшение не так драматично, как исходное выполнение одного и того же приложения на хосте, поскольку оно все еще работает в рамках ограничений виртуального гостевого графического устройства 128 МБ.

источник


Дополнение: мы не можем делать шмель (рендеринг на карту nvidia) на виртуальных машинах прямо сейчас, так как VMware и VirtualBox требуют, чтобы их двоичные файлы были настроены для работы.
Allquixotic

5

Ответ выше https://askubuntu.com/a/85138/38052 объясняет, что все, что видит гостевая O / S, является своего рода абстракцией. Хотя раньше это было полностью верно, я верю, что все меняется, и это может быть не совсем верно.

Некоторые новые процессоры также поддерживают виртуализацию ввода-вывода MMU. Технологии называются Intel VT-d для версии Intel и AMD-Vi для версии AMD. Чтобы процитировать статью из Википедии о виртуализации x86:

Виртуализация MMU ввода-вывода Intel (AMD-Vi и VT-d) Основная статья: IOMMU

Блок управления памятью ввода / вывода (IOMMU) позволяет гостевым виртуальным машинам напрямую использовать периферийные устройства, такие как Ethernet, ускоренные графические карты и контроллеры жестких дисков, через DMA и преобразование прерываний. Это иногда называют PCI passthrough. И AMD, и Intel выпустили спецификации:

AMD's I/O Virtualization Technology, "AMD-Vi", originally called "IOMMU".
Intel's "Virtualization Technology for Directed I/O" (VT-d).

Это звучит довольно интересно, но я уже могу предвидеть некоторые проблемы. Например, в ноутбуках Optimus Intel IGP всегда отображает окончательный вывод на экран. Мне неясно, как Guest O / S и Host O / S будут управлять IGP. Одна мысль состоит в том, что если возможно запустить Хост без какой-либо графики во время работы гостей, это можно заставить работать, но мне неясно, как на самом деле поступить так.


1

ОК, мне было любопытно, поэтому я попробовал это.

QEMU, а теперь и VirtualBox, поддерживают передачу устройств PCI на гостевую машину. Это означает, что если у вас есть вторая видеокарта, вы можете передать ее гостю Windows на хосте Linux и получить полную производительность 3D (игр) в виртуализированной среде Windows. Это касается настольной установки с двумя видеокартами. Диспетчер устройств будет показывать «NVIDIA GTX ... что угодно» вместо того, чтобы говорить «графический адаптер Virualbox».

Оптимус всегда сложнее. Я тестирую это на ASUS UX501. Я смог передать чип NVidia гостю Windows, и он отображается в диспетчере устройств как «3D Video Controller». Но я не смог установить драйверы Windows для его поддержки. Кажется, наличие графики Intel является обязательным условием.

Саранг был прав, чтобы быть подозрительным. Похоже, чип nvidia - это не «адаптер дисплея», как на мониторе, а просто ускоритель для встроенного чипа Intel. Кажется, они не функционируют как два отдельных устройства независимо.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.