Qualche idea se è possibile eseguire una VM Windows tramite IronHide per l'accelerazione della scheda grafica? Mi piacerebbe giocare / guardare bluray ecc utilizzando la mia scheda video.
Qualche idea se è possibile eseguire una VM Windows tramite IronHide per l'accelerazione della scheda grafica? Mi piacerebbe giocare / guardare bluray ecc utilizzando la mia scheda video.
Risposte:
Forse una spiegazione tra la grafica di un ospite virtuale e l'hosting O / S reale potrebbe aiutare qui.
Tutto in un guest virtuale è un'astrazione - ciò significa che ogni dispositivo e driver in un O / S guest virtuale non dipende dal dispositivo host e dal driver effettivi.
Per darti un semplice esempio. Un mouse è visto come un dispositivo specifico: il kernel Linux vede questo dispositivo e consente al sistema operativo guest di utilizzare quel dispositivo. Questo "dispositivo virtuale" viene mappato sul dispositivo fisico reale dallo strumento di virtualizzazione - VirtualBox, VMWare, Xen ecc. Pertanto, il sistema operativo guest non deve mai capire cos'è il mouse fisico, vede solo ciò che lo strumento di virtualizzazione ha mappato su di esso . Il valore di questo approccio è che puoi spostare l'ospite virtuale su host diversi: funzionerà allo stesso modo perché non c'è dipendenza diretta dall'host stesso.
Per dimostrarlo in pratica è possibile eseguire lsusb
sia l'host che il guest - sul mio host O / SI sono disponibili i seguenti dispositivi 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
Sul mio ospite oneiric O / SI può vedere i seguenti dispositivi USB, che sono diversi dall'host:
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Qualsiasi O / S guest, sia Windows che Linux, vedrà solo questo dispositivo guest virtuale.
È lo stesso per la grafica.
La mia grafica host è:
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)
Sul mio guest oniric O / S può vedere la seguente scheda grafica - puoi vedere che non è la stessa dell'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
Allo stesso modo - un O / S guest Windows vedrà solo un dispositivo guest virtuale simile.
Nel mondo oscuro di VirtualBox, le Aggiunte Guest che è possibile installare manualmente (o in 11.10 - jockey vede e consiglia di installarlo) installa moduli kernel aggiuntivi (o driver di dispositivo per Guest Windows) per consentire all'O / S guest un accesso migliorato a la tua grafica O / S host. Ancora una volta non è una mappatura diretta, ma consente di vedere la grafica accelerata 3D.
Se un'applicazione all'interno della tua macchina virtuale utilizza funzionalità 3D tramite l'interfaccia di programmazione OpenGL (o per un O / S guest Windows - le sue chiamate DirectX), invece di emularle nel software (che sarebbe lento), VirtualBox tenterà di utilizzare il tuo host Hardware 3D.
Ancora una volta sottolineo che l'O / S guest non vede la tua scheda grafica effettiva, ma passa semplicemente la chiamata OpenGL (o DirectX) dall'ospite direttamente all'hardware host per l'elaborazione.
Nelle impostazioni di VirtualBox è necessario modificare la memoria della scheda video e l'impostazione della scheda grafica 3D. Il tuo O / S ospite vedrà quindi una "scheda accelerata 3D" con 128 Mb di RAM. Non importa se la tua scheda grafica host è migliore di questa: il tuo O / S ospite vedrà solo questa "semplice" scheda grafica virtuale astratta.
Poiché hai menzionato che stai utilizzando un sistema operativo guest Windows - la casella di controllo 2D è applicabile per te poiché viene eseguito un pass-through simile delle chiamate dell'interfaccia di programmazione.
Bumblebee / IronHide è un meccanismo di commutazione grafica / o - stai usando la grafica integrata o la grafica NVidia / ATI di capacità superiore ma non entrambe allo stesso tempo.
Poiché la capacità OpenGL (o DirectX) della grafica commutabile più elevata è maggiore rispetto al set di chip integrato, vedrai una prestazione grafica relativamente migliorata con le applicazioni ad alta intensità di grafica Guest O / S. Tuttavia, questo miglioramento non è così drammatico come l'esecuzione nativa della stessa applicazione sull'host poiché funziona ancora entro i limiti del dispositivo grafico guest virtuale da 128 MB.
Una risposta sopra https://askubuntu.com/a/85138/38052 spiega come tutto ciò che vede l'O / S ospite è una sorta di astrazione. Mentre questo era completamente vero, credo che le cose stiano cambiando e potrebbe non essere più completamente vero.
Alcuni processori più recenti supportano anche la virtualizzazione MMU I / O. Le tecnologie sono chiamate Intel VT-d per la versione Intel e AMD-Vi per la versione AMD. Per citare l'articolo di Wikipedia sulla virtualizzazione x86:
Virtualizzazione MMU I / O Intel (AMD-Vi e VT-d) Articolo principale: IOMMU
Un'unità di gestione della memoria di input / output (IOMMU) consente alle macchine virtuali guest di utilizzare direttamente i dispositivi periferici, quali Ethernet, schede grafiche accelerate e controller del disco rigido, tramite DMA e rimappatura degli interrupt. Questo è talvolta chiamato passthrough PCI. Sia AMD che Intel hanno rilasciato specifiche:
AMD's I/O Virtualization Technology, "AMD-Vi", originally called "IOMMU". Intel's "Virtualization Technology for Directed I/O" (VT-d).
Sembra abbastanza interessante, ma posso già prevedere alcuni problemi. Per uno, nei laptop Optimus, Intel IGP esegue sempre il rendering dell'output sullo schermo finale. Non è chiaro per me come Guest O / S e Host O / S guideranno entrambi l'IGP. Un pensiero è che se è possibile eseguire l'host senza alcuna grafica mentre gli ospiti sono in esecuzione, questo potrebbe essere fatto funzionare, ma non mi è chiaro come si potrebbe effettivamente fare questo.
OK, ero curioso, quindi ho provato questo.
QEMU, e ora VirtualBox, supportano il pass-through dei dispositivi PCI al computer guest. Ciò significa che se si dispone di una seconda scheda grafica, è possibile passarla a un guest Windows su un host Linux e ottenere prestazioni 3D complete (giochi) in un ambiente Windows virtualizzato. È il caso di un impianto desktop con due schede grafiche. Il gestore dispositivi mostrerebbe "NVIDIA GTX ... qualunque cosa" invece di dire "Virualbox Graphics Adapter".
Optimus è sempre più complicato. Sto testando questo su un ASUS UX501. Sono stato in grado di passare il chip NVidia al guest Windows e questo viene mostrato in Gestione dispositivi come "Controller video 3D". Ma non sono stato in grado di installare alcun driver di Windows per supportarlo. Sembra che la presenza della grafica Intel sia un prerequisito.
sarang aveva ragione a essere sospettoso. Sembra che il chip NVIDIA non sia un "adattatore di visualizzazione" come potrebbe guidare un monitor, ma solo un acceleratore per il chip Intel integrato. Non sembrano funzionare come due dispositivi separati in modo indipendente.