Каковы различия между VBoxVGA, VMSVGA и VBoxSVGA в VirtualBox?
VirtualBox 6.0 предоставляет новый параметр, называемый графический контроллер. Есть четыре варианта на выбор:
- Никто
- VBoxVGA
- VMSVGA
- VBoxSVGA
В руководстве пользователя я нашел эту информацию:
Графический контроллер: указывает тип графического адаптера, используемого гостевой виртуальной машиной. Обратите внимание, что вы должны установить гостевые дополнения на гостевой виртуальной машине, чтобы указать графический контроллер VBoxSVGA или VMSVGA. Доступны следующие опции:
- VBoxSVGA: графический контроллер по умолчанию для новых виртуальных машин, использующих Linux или Windows 7 или более позднюю версию. Этот графический контроллер улучшает производительность и поддержку 3D по сравнению с устаревшей опцией VBoxVGA.
- VBoxVGA: используйте этот графический контроллер для устаревших гостевых ОС. Это графический контроллер по умолчанию для версий Windows до Windows 7.
- VMSVGA: используйте этот графический контроллер для эмуляции графического устройства VMware SVGA.
- Нет: не эмулирует тип графического адаптера.
Но все же это не описывает, какой из них и почему я должен предпочесть.
Когда я должен выбрать None?
VMSVGA лучше, чем VBoxSVGA?
Что не так с VBoxVGA?
Я протестировал загрузку archlinux-2019.02.01-x86_64.iso с virtualbox 6.0.4 в режимах efi и legacy:
┌──────────┬─────────────────────────────────┬─────────────┐
│ Adapter │ EFI mode │ Legacy mode │
├──────────┼─────────────────────────────────┼─────────────┤
│ VBoxVGA │ ok │ ok │
│ VMSVGA │ ok in systemd-boot menu, │ ok │
│ │ then black screen for some time │ │
│ │ when booting, then becomes ok │ │
│ VBoxSVGA │ black screen │ ok │
└──────────┴─────────────────────────────────┴─────────────┘
Также я заметил, что при VMSVGA и VBoxSVGA передача видео = параметр XRESxYRES игнорируется:
+----------+----------------+--------------+
| Adapter | EFI mode | Legacy mode |
+----------+----------------+--------------+
| VBoxVGA | works | works |
| VMSVGA | doesn't work | doesn't work |
| VBoxSVGA | could not test | doesn't work |
+----------+----------------+--------------+
Но все еще можно установить некоторые из этих игнорируемых разрешений после загрузки с помощью fbset.
7 ответов
Основываясь на том, что я нашел в исходном коде:
VBoxVGA
Это эмулирует графический адаптер, специфичный для VirtualBox, так же, как и в предыдущих версиях (<6.0.0).
- Это значение по умолчанию для изображений, созданных для предыдущих версий VirtualBox (<6.0.0) и для гостей Windows до Windows 7.
- Он имеет некоторую форму трехмерного сквозного прохождения, но - если я правильно помню - использует небезопасный подход, который просто позволяет гостю сбрасывать любые и все команды на графический процессор хоста.
- Использование его на гостевой системе Linux требует установки гостевых дополнений, поскольку этот адаптер (пока) не поддерживается основным ядром Linux.
- Поддерживает только OpenGL 1.1 на 64-битной Windows 10 и всех гостях Linux.
Эта опция, вероятно, существует только для обеспечения непрерывности - после обновления до 6.0 на всех старых виртуальных машинах этот режим выбирается автоматически, поэтому никаких неожиданных изменений в поведении не происходит; Вы не потеряете ускорение, которое у вас было раньше.
VMSVGA
Это эмулирует графический адаптер VMware Workstation с помощью метода ускорения "VMware SVGA 3D".
- Вопреки тому, что написано в руководстве, это в настоящее время по умолчанию для гостей Linux.
- Предполагается, что он обеспечивает лучшую производительность и безопасность, чем старый метод.
- Это поддерживается основным ядром Linux, использующим драйвер SVGA.
- Поддерживает OpenGL 2.1 на всех гостях Windows и Linux.
- Он также может иметь преимущество поддержки старых операционных систем, в которых были доступны гостевые дополнения VMware, но не гостевые дополнения VirtualBox. (Я планирую протестировать это с Windows 9x, что в противном случае является огромной болью, даже если графика VESA работает с VirtualBox)
VBoxSVGA
Это обеспечивает гибридное устройство, которое работает как VMSVGA (включая его новые возможности 3D ускорения), но сообщает тот же старый PCI VID:PID, что и VBoxVGA.
- Это по умолчанию для гостей Windows.
- Преимущество этого режима заключается в том, что вы можете обновить существующие виртуальные машины (которые ранее использовали VBoxVGA и имели установленный видеодрайвер VirtualBox), и они не теряют свою графику в процессе - они по-прежнему видят одно и то же устройство, пока вы не обновите "guest" дополнения "в любое время, чтобы включить 3D-ускорение.
- Кроме того, поскольку это все еще VMware SVGA, эмулируемая VirtualBox, выбор этой опции и использование драйвера VirtualBox могут иметь преимущества перед VMware, например, позволяют использовать дополнительные функции, специфичные для VirtualBox.
"Никто"
Это, очевидно, не эмулируемая графика вообще. Используйте его только в том случае, если вы предоставляете реальный графический процессор через PCI, или если вашей системе абсолютно не нужен графический процессор.
источники
Но они точно говорят вам, когда вы должны их предпочесть:
- VBoxSVGA: графический контроллер по умолчанию для новых виртуальных машин, использующих Linux или Windows 7 или более позднюю версию. Этот графический контроллер улучшает производительность и поддержку 3D по сравнению с устаревшей опцией VBoxVGA.
- Linux или Windows >7
- улучшает производительность и поддержку 3D
- VBoxVGA: используйте этот графический контроллер для устаревших гостевых ОС. Это графический контроллер по умолчанию для версий Windows до Windows 7.
- (вывод) немного более низкая производительность, но большая совместимость со старыми ОС
- Старая ОС или Windows < 7
- VMSVGA: используйте этот графический контроллер для эмуляции графического устройства VMware SVGA.
- Эмулирует устройство VMWare
- вероятно, лучше всего, когда ваша виртуальная машина была изначально настроена на VMWare и на ней установлены инструменты
- может быть не так быстро, как карты VBox, потому что он пытается быть совместимым с чем-то другим.
- Нет: не эмулирует тип графического адаптера.
- вам не нужен графический адаптер
то есть вы хотите запускать машину без заголовка или по SSH и вам не нужны накладные расходы на эмуляцию графики. - может улучшить производительность, так как удаляет слой или эмуляцию
Одно отличие - производительность. Тестирование с
glxgears
, Я получил:
- VBoxVGA: 60 кадров в секунду +/- 2 (очень мало, но перемещение окна не плавное, поэтому кажется правдоподобным)
- VMSVGA: 1570 кадров в секунду +/- 50 (после перезагрузки я получаю 1300 кадров в секунду +/- 200?!)
- VBoxSVGA: 970 кадров в секунду +/- 30 (в этом режиме Cinnamon предупреждает меня, что графика среды рабочего стола работает на ЦП)
Гостевые дополнения уже были обновлены из репозиториев Debian до того, как в первый раз появилось предупреждение об устаревании VBoxVGA, поэтому я мог просто переключить его, не выполняя предварительное обновление. Проверьте свою версию с помощью
dpkg -l | grep virtualbox
.
Гостевые дополнения - это версия
6.0.4
, mesa-utils (содержащий glxgears)
8.4.0-1+b1
, базовая ОС - Debian 10 (Buster) с Cinnamon.
В виртуальной машине включен PAE/NX, 3D-ускорение, но нет 2D-ускорения, назначено 2 ЦП (у хоста 2 ядра по 2 потока в каждом), PV по умолчанию, включен VT-x/AMD-V и вложенная подкачка.
Я смог автоматически установить разрешение гостя с wayland
композитор только с использованием VBoxSVGA
, virtualbox-guest-additions
не может auto-resize guest display
с wayland
когда используешь VMSVGA
,
VBoxSVGA не распознаетCustomVideoMode1
[1] только VMSVGA распознает и применяет их.
Это может быть проблема с wayland и swayvm, кто знает; не смог придумать лучшего решения.
VBoxVGA запоминает и восстанавливает настройки размера гостевого окна Windows. VBoxSVGA НЕ запоминает настройки размера.
Я хочу, чтобы мои гости Windows открывались с размером экрана 1240x712. Если я использую VBoxSVGA, гости всегда открываются с разрешением 1024x768, а затем мне нужно изменить их размер.
Если я использую VBoxVGA, отображение сохраняется / восстанавливается, хосты открываются с разрешением 1240x712 без дополнительной настройки.
Фактически, если параметр "Настроить размер окна" используется для изменения отображения, завершение работы гостевой системы Windows и создание снимков сохранят новый параметр. VBoxSVGA игнорирует изменения текущего размера.
У меня была аналогичная проблема с Fedora 31. Возможно, вам придется перейти в "Настройки> Устройства> Дисплей> Разрешение" и выбрать разрешение вручную. После того, как вы правильно установили гостевые дополнения, разрешение вашего хоста будет в списке поддерживаемых разрешений для гостя.
В Ubuntu это было бы
Откройте Обзор действий и начните вводить Дисплеи.
Щелкните "Дисплеи", чтобы открыть панель.
Если у вас несколько дисплеев, и они не являются зеркальными, у вас могут быть разные настройки для каждого дисплея. Выберите дисплей в области предварительного просмотра.
Выберите разрешение или масштаб и выберите ориентацию.
Щелкните Применить. Новые настройки будут применены в течение 20 секунд перед возвратом. Таким образом, если вы ничего не видите с новыми настройками, ваши старые настройки будут автоматически восстановлены. Если вас устраивают новые настройки, нажмите "Сохранить изменения".