Quais são as diferenças entre VBoxVGA, VMSVGA e VBoxSVGA no VirtualBox?

O VirtualBox 6.0 fornece uma nova configuração chamada Controlador Gráfico. Há quatro opções para escolher:

  • Nenhum
  • VBoxVGA
  • VMSVGA
  • VBoxSVGA

No manual do usuário eu encontrei esta informação:

Controlador Gráfico: Especifica o tipo de adaptador gráfico usado pelo VM convidado. Note que você deve instalar o Guest Additions no guest VM para especificar a controladora de gráficos VBoxSVGA ou VMSVGA. As seguintes opções estão disponíveis:
- VBoxSVGA: A controladora de gráficos padrão para novas VMs que usam Linux ou Windows 7 ou posterior. Esta controladora gráfica melhora o desempenho e o suporte 3D quando comparada ao legado da opção VBoxVGA.
- VBoxVGA: Use esta controladora gráfica para os sistemas operacionais hóspedes antigos. Esta é a controladora gráfica padrão para versões do Windows antes do Windows 7.
- VMSVGA: Use esta controladora gráfica para emular um dispositivo gráfico VMware SVGA.
- Nenhuma: Não emula um tipo de adaptador gráfico.

Mas ainda assim não descreve qual deles e por que eu deveria preferir.
Quando devo escolher Nenhum?
O VMSVGA é melhor que o VBoxSVGA?
O que há de errado com a VBoxVGA?

Eu testei o boot do archlinux-2019.02.01-x86_64.iso com o virtualbox 6.0.4 nos modos efi e 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          │
└──────────┴─────────────────────────────────┴─────────────┘

Também notei que com VMSVGA e VBoxSVGA passando vídeo=XRESxYRES parâmetro é ignorado:

+----------+----------------+--------------+
| Adapter  |    EFI mode    | Legacy mode  |
+----------+----------------+--------------+
| VBoxVGA  | works          | works        |
| VMSVGA   | doesn't work   | doesn't work |
| VBoxSVGA | could not test | doesn't work |
+----------+----------------+--------------+

Mas ainda é possível definir algumas dessas resoluções ignoradas após o arranque com o fbset.

Solução

Baseado no que I'encontrei no código fonte:

VBoxVGA

Isto emula um adaptador gráfico específico para o VirtualBox, o mesmo das versões anteriores (

Comentários (10)

Mas eles *dizem-lhe explicitamente quando você deve preferi-los:

  • VBoxSVGA: O controlador gráfico padrão para novas VMs que usam Linux ou Windows 7 ou posterior. Esta controladora gráfica melhora o desempenho e o suporte 3D quando comparada com a opção VBoxVGA antiga.
  • Linux ou Windows >7
  • melhora o desempenho e o suporte 3D
  • VBoxVGA: Utilize esta controladora gráfica para sistemas operativos convidados antigos. Esta é a controladora gráfica padrão para versões Windows antes do Windows 7. 
  • (por inferência) desempenho ligeiramente inferior, mas mais compatibilidade com OS mais antigos
  • Sistema operacional antigo ou Windows < 7
  • VMSVGA: Use esta controladora gráfica para emular um dispositivo gráfico VMware SVGA. 
  • Emula um dispositivo VMWare
  • provavelmente o melhor quando o seu VMWare foi originalmente configurado e tem as suas ferramentas instaladas
  • pode não ser tão rápido como os cartões VBox porque ele's tentam ser compatíveis com outra coisa.
  • Nenhum: Não emula um tipo de adaptador gráfico.
  • você não'não quer um adaptador gráfico ou seja, você quer executar a máquina sem cabeça ou sobre SSH e don'não precisa da sobrecarga da máquina emulando gráficos.
  • poderia melhorar o desempenho, pois remove uma camada ou emulação
Comentários (0)

Consegui definir automaticamente a resolução do convidado com o 'wayland' compositor apenas utilizando o 'VBoxSVGA'. O virtualbox-guest-additions não poderia't auto-resize guest display com wayland ao utilizar VMSVGA.

Comentários (0)