그래픽 카드 가속을 위해 IronHide를 통해 Windows VM을 실행할 수 있는지에 대한 아이디어가 있습니까? 비디오 카드를 사용하여 게임을하거나 블러 레이를보고 싶습니다.
그래픽 카드 가속을 위해 IronHide를 통해 Windows VM을 실행할 수 있는지에 대한 아이디어가 있습니까? 비디오 카드를 사용하여 게임을하거나 블러 레이를보고 싶습니다.
답변:
가상 게스트의 그래픽과 실제 호스트 O / S 간의 설명이 여기에 도움이 될 것입니다.
가상 게스트의 모든 것은 추상화입니다. 즉, 가상 게스트 O / S의 모든 장치 및 드라이버는 실제 호스트 장치 및 드라이버에 의존하지 않습니다.
간단한 예제를 제공합니다. 마우스는 특정 장치로 간주됩니다. Linux 커널은이 장치를보고 게스트 운영 체제가 해당 장치를 사용할 수 있도록합니다. 이 "가상 장치"는 가상화 도구 (VirtualBox, VMWare, Xen 등)에 의해 실제 실제 장치에 매핑됩니다. 따라서 게스트 운영 체제는 실제 마우스가 무엇인지 이해할 필요가 없으며 가상화 도구가 매핑 한 내용 만 볼 수 있습니다. . 이 방법의 가치는 가상 게스트를 다른 호스트로 옮길 수 있다는 것입니다. 호스트 자체에 직접적인 의존성이 없기 때문에 동일한 방식으로 작동합니다.
실제로 이것을 보여주기 lsusb
위해 호스트와 게스트 모두에서 실행할 수 있습니다 . 내 호스트 O / SI에는 다음 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
내 게스트 oneiric O / SI에서 다음 USB 장치를 볼 수 있습니다. 호스트와는 다릅니다.
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Windows 또는 Linux에 관계없이 모든 게스트 O / S는이 가상 게스트 장치 만 볼 수 있습니다.
그래픽에서도 마찬가지입니다.
내 호스트 그래픽은 다음과 같습니다
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)
내 손님 oneiric O / S에서 다음 그래픽 카드를 볼 수 있습니다. 호스트와 다른 그래픽 카드를 볼 수 있습니다.
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
마찬가지로 Windows 게스트 운영 체제에서도 유사한 가상 게스트 장치 만 볼 수 있습니다.
어두운 VirtualBox 환경에서 수동으로 설치하거나 (10.10- 기수 에서 설치 권장) 게스트 추가 기능 은 게스트 커널에 대한 추가 커널 모듈 (또는 Windows 게스트 용 장치 드라이버)을 설치하여 게스트 O / S에 대한 액세스를 향상시킵니다. 호스트 O / S 그래픽. 다시 직접 매핑은 아니지만 3D 가속 그래픽을 볼 수 있습니다.
가상 시스템 내부의 응용 프로그램이 OpenGL 프로그래밍 인터페이스 (또는 Windows 게스트 O / S-DirectX 호출)를 통해 3D 기능을 소프트웨어에서 에뮬레이션하는 대신 (느리게) 사용하는 경우 VirtualBox는 호스트의 사용을 시도합니다. 3D 하드웨어.
다시 한 번 강조하지만, 게스트 O / S는 실제 그래픽 카드를 볼 수 없으며 OpenGL (또는 DirectX) 호출을 게스트에서 호스트 하드웨어로 직접 전달하여 처리합니다.
VirtualBox 설정에서 비디오 카드 메모리 및 3D 그래픽 카드 설정을 변경해야합니다. 그러면 게스트 O / S에 128Mb RAM의 "3D Accelerated card"가 표시됩니다. 호스트 그래픽 카드가 이보다 더 좋은지는 중요하지 않습니다. 게스트 O / S는이 "단순한"추상 가상 그래픽 카드 만 볼 수 있습니다.
Windows 게스트 O / S를 사용한다고 언급 했으므로 프로그래밍 인터페이스 호출의 비슷한 통과 가 수행 되므로 2D 확인란이 적용됩니다 .
Bumblebee / IronHide는 하나 또는 그래픽 전환 메커니즘입니다. 통합 그래픽 또는 대용량 NVidia / ATI 그래픽을 사용하고 있지만 동시에 둘 다 사용하지는 않습니다.
더 높은 전환 가능 그래픽의 OpenGL (또는 DirectX) 기능은 통합 칩셋보다 훨씬 크기 때문에 Guest O / S 그래픽 집약적 응용 프로그램에서 상대적으로 향상된 그래픽 성능을 볼 수 있습니다. 그러나 128MB 가상 게스트 그래픽 장치의 제약 조건 내에서 여전히 작동하고 있기 때문에 호스트에서 동일한 응용 프로그램을 실행하는 것만 큼 이러한 개선은 그리 크지 않습니다.
https://askubuntu.com/a/85138/38052 위의 답변 은 게스트 O / S가 보는 모든 것이 어떻게 추상화되는지 설명합니다. 이것이 완전히 사실 이었지만, 나는 상황이 변하고 있으며 더 이상 완전히 사실이 아닐 수도 있다고 생각합니다.
일부 최신 프로세서는 I / O MMU 가상화도 지원합니다. 이 기술을 인텔 버전의 경우 Intel VT-d, AMD 버전의 경우 AMD-Vi라고합니다. x86 가상화에 관한 Wikipedia 기사를 인용하려면 :
인텔 I / O MMU 가상화 (AMD-Vi 및 VT-d) 주요 기사 : IOMMU
IOMMU (입 / 출력 메모리 관리 장치)를 사용하면 게스트 가상 컴퓨터가 DMA 및 인터럽트 다시 매핑을 통해 이더넷, 가속 그래픽 카드 및 하드 드라이브 컨트롤러와 같은 주변 장치를 직접 사용할 수 있습니다. 이것을 PCI 패스 스루라고도합니다. AMD와 인텔 모두 사양을 발표했습니다.
AMD's I/O Virtualization Technology, "AMD-Vi", originally called "IOMMU". Intel's "Virtualization Technology for Directed I/O" (VT-d).
이것은 꽤 흥미로운 것처럼 들리지만 이미 몇 가지 문제를 예상 할 수 있습니다. 우선, Optimus 랩탑에서 Intel IGP는 항상 최종 화면 출력을 렌더링합니다. 게스트 O / S와 호스트 O / S가 어떻게 IGP를 구동 할 것인지는 확실하지 않습니다. 한 가지 생각은 손님이 달리고있는 동안 그래픽없이 호스트를 실행할 수 있다면 이것이 작동 할 수 있지만 실제로 어떻게해야하는지 확실하지 않다는 것입니다.
좋아, 나는 궁금해서 이것을 시도했다.
QEMU (현재 VirtualBox)는 게스트 장치에 대한 PCI 장치의 통과를 지원합니다. 즉, 두 번째 그래픽 카드가있는 경우이를 Linux 호스트의 Windows 게스트로 전달하고 가상화 된 Windows 환경에서 완전한 3D 성능 (게임)을 얻을 수 있습니다. 두 개의 그래픽 카드가있는 데스크탑 리그의 경우입니다. 장치 관리자는 "Virualbox Graphics Adapter"대신 "NVIDIA GTX ... whatever"를 표시합니다.
옵티머스는 항상 더 복잡합니다. 이것을 ASUS UX501에서 테스트하고 있습니다. NVidia 칩을 Windows 게스트로 전달할 수 있었고 장치 관리자에 "3D 비디오 컨트롤러"로 표시됩니다. 그러나 지원하기 위해 Windows 드라이버를 설치할 수 없습니다. 인텔 그래픽의 존재는 전제 조건 인 것 같습니다.
사랑은 의심 스러웠습니다. 엔비디아 칩은 모니터를 구동하는 것처럼 "디스플레이 어댑터"가 아니라 통합 인텔 칩을위한 가속기 인 것 같습니다. 독립적으로 두 개의 별도 장치로 작동하지 않는 것 같습니다.