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.
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.
Odpowiedzi:
Być może pomogłoby to wyjaśnienie między grafiką w wirtualnym gościu a rzeczywistym O / S hosta.
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:
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
Na moim gościu oneiric O / SI może zobaczyć następujące urządzenia USB - różnią się one od hosta:
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
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.
To samo dotyczy grafiki.
Grafika mojego hosta to:
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)
Na moim gościu oneiric O / S może zobaczyć następującą kartę graficzną - widać, że to nie to samo co 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
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.
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:
Wirtualizacja procesorów Intel I / O MMU (AMD-Vi i VT-d) Artykuł główny: IOMMU
Jednostka zarządzania pamięcią wejścia / wyjścia (IOMMU) umożliwia maszynom wirtualnym gościa bezpośrednie korzystanie z urządzeń peryferyjnych, takich jak Ethernet, przyspieszone karty graficzne i kontrolery dysków twardych, poprzez DMA i mapowanie przerwań. Czasami nazywa się to przepustowością PCI. Zarówno AMD, jak i Intel wydały specyfikacje:
AMD's I/O Virtualization Technology, "AMD-Vi", originally called "IOMMU". Intel's "Virtualization Technology for Directed I/O" (VT-d).
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ć.
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.