Alguma idéia de se você pode executar uma VM do Windows via IronHide para acelerar a placa gráfica? Eu gostaria de jogar / assistir bluray etc utilizando minha placa de vídeo.
virtualbox
nvidia-optimus
bumblebee
mwjackson
fonte
fonte
Respostas:
Talvez uma explicação entre gráficos em um convidado virtual e o sistema operacional real do host ajude aqui.
Primeiro o básico:
Tudo em um convidado virtual é uma abstração - o que isso significa é que todos os dispositivos e drivers de um SO virtual de convidados virtuais não dependem do dispositivo e driver reais do host.
Para lhe dar um exemplo simples. Um mouse é visto como um dispositivo específico - o kernel do linux vê esse dispositivo e permite que o sistema operacional convidado use esse dispositivo. Esse "dispositivo virtual" é mapeado para o dispositivo físico real pela ferramenta de virtualização - VirtualBox, VMWare, Xen etc. Portanto, o sistema operacional convidado nunca precisa entender o que é o mouse físico, apenas vê o que a ferramenta de virtualização mapeou para ele. . O valor dessa abordagem é que você pode mover o convidado virtual para diferentes hosts - ele funcionará da mesma maneira porque não há dependência direta do próprio host.
Para mostrar isso na prática, você pode executar
lsusb
no host e no convidado - no meu host O / SI possui os seguintes dispositivos USB:No meu convidado, o O / SI onírico pode ver os seguintes dispositivos USB - eles são diferentes do host:
Qualquer O / S convidado, seja Windows ou Linux, verá apenas este dispositivo convidado virtual.
Gráficos do host x gráficos do convidado
É o mesmo para gráficos.
Os gráficos do meu host são:
No meu convidado oneiric O / S, ele pode ver a seguinte placa gráfica - você pode ver que não é o mesmo que o host:
Da mesma forma - um sistema operacional convidado do Windows verá apenas um dispositivo convidado virtual semelhante.
No mundo obscuro do VirtualBox, as Adições de Convidado que você pode instalar manualmente (ou na versão 11.10 - o jockey vê e recomenda que você o instale) instala módulos adicionais do kernel (ou drivers de dispositivo para Convidados do Windows) para permitir ao O / S convidado acesso aprimorado a seus gráficos O / S do host. Novamente, não é um mapeamento direto - mas permite a visualização de gráficos acelerados em 3D.
Se um aplicativo dentro de sua máquina virtual usar recursos 3D por meio da interface de programação OpenGL (ou para um sistema operacional convidado do Windows - suas chamadas DirectX), em vez de emulá-los em software (o que seria lento), o VirtualBox tentará usar o host Hardware 3D.
Novamente, enfatizo que o sistema operacional convidado não vê sua placa de vídeo real, apenas passa a chamada OpenGL (ou DirectX) do convidado diretamente para o hardware do host para processar.
Nas configurações do VirtualBox, você deve alterar a memória da placa de vídeo e a configuração da placa gráfica 3D. O seu O / S convidado verá uma "placa 3D acelerada" com 128Mb de RAM. Não importa se a sua placa de vídeo host é melhor que isso - o seu O / S convidado verá apenas esta placa de vídeo virtual "simples" abstraída.
Como você mencionou que está usando um O / S do Windows Guest - a caixa de seleção 2D é aplicável a você, pois é realizado um repasse semelhante de chamadas da interface de programação.
O Bumblebee / IronHide é um mecanismo de alternância de gráficos - você está usando gráficos integrados ou gráficos NVidia / ATI de maior capacidade, mas não os dois ao mesmo tempo.
Como a capacidade OpenGL (ou DirectX) dos gráficos mais comutáveis é maior que o conjunto de chips integrados, você verá um desempenho gráfico relativamente aprimorado com os aplicativos intensivos em gráficos de Guest O / S. No entanto, esse aprimoramento não é tão dramático quanto a execução nativa do mesmo aplicativo no host, uma vez que ainda está funcionando dentro das restrições do dispositivo gráfico de convidado virtual de 128 MB.
fonte
fonte
Uma resposta acima https://askubuntu.com/a/85138/38052 explica como tudo o que o sistema operacional convidado vê é algum tipo de abstração. Enquanto isso costumava ser verdade, acredito que as coisas estão mudando e pode não ser mais verdade.
Alguns processadores mais recentes também oferecem suporte à virtualização de E / S MMU. As tecnologias são chamadas Intel VT-d para a versão Intel e AMD-Vi para a versão AMD. Para citar o artigo da wikipedia sobre virtualização x86:
Isso parece bastante interessante, mas já posso prever alguns problemas. Por um lado, nos laptops Optimus, o Intel IGP está sempre renderizando a saída final na tela. Não está claro para mim como o Guest O / S e o Host O / S vão dirigir o IGP. Um pensamento é que, se for possível executar o Host sem gráficos enquanto os convidados estiverem em execução, isso poderá funcionar, mas não está claro para mim como alguém realmente faria isso.
fonte
OK, eu estava curioso, então eu tentei isso.
O QEMU e agora o VirtualBox oferecem suporte à passagem de dispositivos PCI para a máquina convidada. Isso significa que, se você tiver uma segunda placa gráfica, poderá transmiti-la a um convidado do Windows em um host Linux e obter desempenho 3D completo (jogos) em um ambiente Windows virtualizado. É o caso de um equipamento de mesa com duas placas gráficas. O gerenciador de dispositivos mostraria "NVIDIA GTX ... tanto faz" em vez de dizer "Virualbox Graphics Adapter".
Optimus é sempre mais complicado. Estou testando isso em um ASUS UX501. Consegui passar o chip NVidia para o convidado do Windows e ele aparece no gerenciador de dispositivos como "3D Video Controller". Mas não consegui instalar nenhum driver do Windows para suportá-lo. Parece que a presença dos gráficos da Intel é um pré-requisito.
Sarang estava certo em suspeitar. Parece que o chip da nvidia não é um "adaptador de vídeo", como faria com um monitor, mas apenas um acelerador para o chip intel integrado. Eles não parecem funcionar como dois dispositivos separados independentemente.
fonte