Jakieś pomysły na to, czy można uruchomić maszynę wirtualną z systemem Windows za pośrednictwem aplikacji IronHide w celu przyspieszenia karty graficznej? Chciałbym grać w gry / oglądać rozmycie itp. Przy użyciu mojej karty graficznej.
virtualbox
nvidia-optimus
bumblebee
mwjackson
źródło
źródło
Odpowiedzi:
Być może pomogłoby to wyjaśnienie między grafiką w wirtualnym gościu a rzeczywistym O / S hosta.
Najpierw podstawy:
Wszystko w wirtualnym gościu jest abstrakcją - oznacza to, że każde urządzenie i sterownik w wirtualnym O / S gościa nie zależy od faktycznego urządzenia hosta i sterownika.
Aby dać prosty przykład. Mysz jest postrzegana jako specyficzne urządzenie - jądro Linuksa widzi to urządzenie i umożliwia systemowi-gościowi korzystanie z niego. To „urządzenie wirtualne” jest mapowane na rzeczywiste urządzenie fizyczne przez narzędzie do wirtualizacji - VirtualBox, VMWare, Xen itp. W związku z tym system operacyjny gościa nigdy nie musi rozumieć, czym jest fizyczna mysz, widzi tylko to, co zostało do niej przypisane narzędzie do wirtualizacji. . Wartość tego podejścia polega na tym, że możesz przenieść wirtualnego gościa do różnych hostów - będzie on działał w ten sam sposób, ponieważ nie ma bezpośredniej zależności od samego hosta.
Aby to pokazać w praktyce, możesz uruchomić
lsusb
zarówno na hoście, jak i na gościu - na moim O / SI hosta mają następujące urządzenia USB:Na moim gościu oneiric O / SI może zobaczyć następujące urządzenia USB - różnią się one od hosta:
Każdy system operacyjny gościa, niezależnie od tego, czy system Windows, czy Linux, będzie widział tylko to wirtualne urządzenie gościa.
Grafika hosta a grafika gościa
To samo dotyczy grafiki.
Grafika mojego hosta to:
Na moim gościu oneiric O / S może zobaczyć następującą kartę graficzną - widać, że to nie to samo co host:
Podobnie - system operacyjny gościa systemu Windows zobaczy tylko podobne wirtualne urządzenie gościa.
W mrocznym świecie VirtualBox Dodatki dla gości, które można zainstalować ręcznie (lub w 11.10 - dżokej widzi i zaleca, aby je zainstalować) instaluje dodatkowe moduły jądra (lub sterowniki urządzeń dla gości Windows), aby umożliwić rozszerzonemu systemowi gości dostęp do grafika hosta O / S. Znowu nie jest to bezpośrednie mapowanie - ale umożliwia wyświetlanie grafiki z akceleracją 3D.
Jeśli aplikacja na maszynie wirtualnej korzysta z funkcji 3D za pośrednictwem interfejsu programowania OpenGL (lub dla systemu operacyjnego gościa Windows - jego wywołania DirectX), zamiast emulować je w oprogramowaniu (co byłoby wolne), VirtualBox spróbuje użyć hosta Sprzęt 3D.
Ponownie podkreślam, że gość nie widzi twojej karty graficznej, po prostu przekazuje wywołanie OpenGL (lub DirectX) od gościa bezpośrednio do sprzętu hosta w celu przetworzenia.
W ustawieniach VirtualBox powinieneś zmienić pamięć karty graficznej i ustawienia karty graficznej 3D. Twój gość O / S zobaczy wtedy „kartę 3D Accelerated” z 128 MB pamięci RAM. Nie ma znaczenia, czy twoja karta graficzna hosta jest lepsza od tej - Twój gość O / S zobaczy tylko tę „prostą” abstrakcyjną wirtualną kartę graficzną.
Ponieważ wspomniano, że korzystasz z systemu operacyjnego gościa Windows - pole wyboru 2D ma zastosowanie, ponieważ wykonywane jest podobne przekazywanie wywołań interfejsu programistycznego.
Bumblebee / IronHide to albo / lub mechanizm przełączania grafiki - używasz zintegrowanej grafiki lub grafiki NVidia / ATI o większej pojemności, ale nie obu jednocześnie.
Ponieważ zdolność przełączania grafiki z większą możliwością przełączania w OpenGL (lub DirectX) jest większa niż w przypadku zintegrowanego zestawu układów, zobaczysz względnie lepszą wydajność grafiki w aplikacjach intensywnie korzystających z grafiki Guest O / S. Jednak to ulepszenie nie jest tak dramatyczne, jak uruchamianie tej samej aplikacji natywnie na hoście, ponieważ nadal działa w granicach 128 MB wirtualnego urządzenia graficznego gościa.
źródło
źródło
Odpowiedź powyżej https://askubuntu.com/a/85138/38052 wyjaśnia, w jaki sposób wszystko, co widzi O / S gościa, jest pewnego rodzaju abstrakcją. Chociaż kiedyś było to całkowicie prawdziwe, wierzę, że wszystko się zmienia i może już nie być całkowicie prawdziwe.
Niektóre nowsze procesory obsługują także wirtualizację I / O MMU. Technologie te nazywane są Intel VT-d dla wersji Intela i AMD-Vi dla wersji AMD. Cytując artykuł w Wikipedii na temat wirtualizacji x86:
Brzmi dość interesująco, ale mogę już przewidzieć pewne problemy. Po pierwsze, w laptopach Optimus, Intel IGP zawsze wyświetla ostateczne wyjście na ekranie. Nie jest dla mnie jasne, w jaki sposób O / S gościa i O / S hosta będą napędzać IGP. Jedna myśl jest taka, że jeśli możliwe jest uruchomienie Hosta bez grafiki, gdy goście są uruchomieni, może to sprawić, że zadziała, ale nie jest dla mnie jasne, w jaki sposób można to zrobić.
źródło
OK, byłem ciekawy, więc spróbowałem tego.
QEMU, a teraz VirtualBox, obsługują przekazywanie urządzeń PCI na maszynę-gościa. Oznacza to, że jeśli masz drugą kartę graficzną, możesz przekazać ją gościowi Windows na hoście Linux i uzyskać pełną wydajność 3D (gry) w zwirtualizowanym środowisku Windows. Tak jest w przypadku komputera stacjonarnego z dwiema kartami graficznymi. Menedżer urządzeń wyświetli „NVIDIA GTX ... cokolwiek” zamiast powiedzieć „Virualbox Graphics Adapter”.
Optimus jest zawsze bardziej skomplikowany. Testuję to na ASUS UX501. Udało mi się przekazać chip NVidia do gościa systemu Windows, który pokazuje w menedżerze urządzeń jako „3D Video Controller”. Ale nie mogłem zainstalować żadnych sterowników systemu Windows, które by go obsługiwały. Wydaje się, że obecność grafiki Intel jest warunkiem wstępnym.
Sarang miał rację, by być podejrzliwym. Wygląda na to, że układ NVIDIA nie jest „kartą graficzną”, jak napędzałby monitor, a jedynie akceleratorem zintegrowanego układu Intel. Nie wydają się funkcjonować jako dwa osobne urządzenia niezależnie.
źródło