¿Alguna idea de si puede ejecutar una VM de Windows a través de IronHide para la aceleración de la tarjeta gráfica? Me gustaría jugar juegos / ver bluray, etc. utilizando mi tarjeta de video.
¿Alguna idea de si puede ejecutar una VM de Windows a través de IronHide para la aceleración de la tarjeta gráfica? Me gustaría jugar juegos / ver bluray, etc. utilizando mi tarjeta de video.
Respuestas:
Tal vez una explicación entre los gráficos en un invitado virtual y el O / S del host real ayudaría aquí.
Todo en un invitado virtual es una abstracción; lo que esto significa es que cada dispositivo y controlador en un O / S de invitado virtual no depende del dispositivo host y controlador reales.
Para darte un ejemplo simple. Un mouse se ve como un dispositivo específico: el kernel de Linux ve este dispositivo y permite que el sistema operativo invitado lo use. La herramienta de virtualización asigna este "dispositivo virtual" al dispositivo físico real: VirtualBox, VMWare, Xen, etc. Por lo tanto, el sistema operativo invitado nunca necesita comprender qué es el mouse físico, solo ve lo que la herramienta de virtualización le ha asignado. . El valor de este enfoque es que puede mover el invitado virtual a diferentes hosts: funcionará de la misma manera porque no hay una dependencia directa del host en sí.
Para mostrar esto en la práctica, puede ejecutar lsusb
tanto en el host como en el invitado: en mi host, O / SI tiene los siguientes dispositivos 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
En mi invitado, oneiric O / SI puede ver los siguientes dispositivos USB: estos son diferentes del host:
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Cualquier invitado O / S, ya sea Windows o Linux, solo verá este dispositivo invitado virtual.
Es lo mismo para los gráficos.
Mis gráficos de host son:
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)
En mi O / S oneiric invitado, puede ver la siguiente tarjeta gráfica: puede ver que no es lo mismo que el host:
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
Del mismo modo, un Windows Guest O / S solo verá un dispositivo virtual invitado similar.
En el mundo turbio de VirtualBox, las adiciones de invitados que puede instalar manualmente (o en 11.10 - jockey lo ve y recomienda que lo instale) instala módulos de kernel adicionales (o controladores de dispositivo para invitados de Windows) para permitir que el invitado tenga acceso mejorado a O / S Su host O / S gráficos. Una vez más, no es un mapeo directo, pero permite ver gráficos acelerados en 3D.
Si una aplicación dentro de su máquina virtual usa funciones 3D a través de la interfaz de programación OpenGL (o para un invitado de Windows O / S - sus llamadas DirectX), en lugar de emularlas en un software (lo que sería lento), VirtualBox intentará usar el host Hardware 3D
Una vez más, enfatizo, el invitado O / S no ve su tarjeta gráfica real, solo pasa la llamada OpenGL (o DirectX) del Invitado directamente al hardware del Host para procesar.
En la configuración de VirtualBox, debe cambiar la memoria de la tarjeta de video y la configuración de la tarjeta gráfica 3D. Su O / S invitado verá una "tarjeta acelerada 3D" con 128Mb de RAM. No importa si su tarjeta gráfica host es mejor que esto: su O / S invitado solo verá esta tarjeta gráfica virtual "simple" abstraída.
Como mencionó que está utilizando un O / S de invitado de Windows, la casilla de verificación 2D se aplica a usted ya que se realiza una transferencia similar de las llamadas de la interfaz de programación.
Bumblebee / IronHide es un mecanismo de conmutación de gráficos o bien: está utilizando gráficos integrados o los gráficos NVidia / ATI de mayor capacidad, pero no ambos al mismo tiempo.
Dado que la capacidad de OpenGL (o DirectX) de los gráficos intercambiables más altos es mayor que el conjunto de chips integrados, verá un rendimiento gráfico relativamente mejorado con las aplicaciones intensivas de gráficos Guest O / S. Sin embargo, esta mejora no es tan dramática como ejecutar la misma aplicación de forma nativa en el host, ya que todavía funciona dentro de las limitaciones del dispositivo gráfico de invitado virtual de 128 MB.
Una respuesta anterior https://askubuntu.com/a/85138/38052 explica cómo todo lo que ve el invitado O / S es una especie de abstracción. Si bien esto solía ser completamente cierto, creo que las cosas están cambiando y puede que ya no sea completamente cierto.
Algunos procesadores más nuevos también admiten la virtualización de E / S MMU. Las tecnologías se denominan Intel VT-d para la versión de Intel y AMD-Vi para la versión de AMD. Para citar el artículo de Wikipedia sobre virtualización x86:
Virtualización de I / O MMU de Intel (AMD-Vi y VT-d) Artículo principal: IOMMU
Una unidad de administración de memoria de entrada / salida (IOMMU) permite que las máquinas virtuales invitadas usen directamente dispositivos periféricos, como Ethernet, tarjetas gráficas aceleradas y controladores de disco duro, a través de DMA e interrupción de la reasignación. Esto a veces se llama paso a través de PCI. Tanto AMD como Intel han lanzado especificaciones:
AMD's I/O Virtualization Technology, "AMD-Vi", originally called "IOMMU". Intel's "Virtualization Technology for Directed I/O" (VT-d).
Esto suena bastante interesante, pero ya puedo prever algunos problemas. Por un lado, en las computadoras portátiles Optimus, Intel IGP siempre está representando el resultado final en pantalla. No me queda claro cómo el Guest O / S y el Host O / S van a manejar el IGP. Un pensamiento es que si es posible ejecutar el Host sin ningún gráfico mientras los invitados se están ejecutando, esto podría funcionar, pero no me queda claro cómo se podría hacer esto.
OK, tenía curiosidad, así que intenté esto.
QEMU, y ahora VirtualBox, son compatibles con la transferencia de dispositivos PCI a la máquina invitada. Eso significa que si tiene una segunda tarjeta gráfica, puede pasarla a un invitado de Windows en un host Linux y obtener un rendimiento 3D completo (juegos) en un entorno de Windows virtualizado. Ese es el caso de una plataforma de escritorio con dos tarjetas gráficas. El administrador de dispositivos mostrará "NVIDIA GTX ... lo que sea" en lugar de decir "Adaptador de gráficos Virualbox".
Optimus siempre es más complicado. Estoy probando esto en un ASUS UX501. Pude pasar el chip NVidia al invitado de Windows y se muestra en el administrador de dispositivos como "Controlador de video 3D". Pero no pude instalar ningún controlador de Windows para admitirlo. Parece que la presencia de los gráficos de Intel es un requisito previo.
Sarang tenía razón al sospechar. Parece que el chip nvidia no es un "adaptador de pantalla" como manejaría un monitor, sino solo un acelerador para el chip intel integrado. No parecen funcionar como dos dispositivos separados independientemente.