VirtualBox VM이있는 IronHide / BumbleBee. 비디오 가속을 통해 실제 카드로 전달됩니까?


8

그래픽 카드 가속을 위해 IronHide를 통해 Windows VM을 실행할 수 있는지에 대한 아이디어가 있습니까? 비디오 카드를 사용하여 게임을하거나 블러 레이를보고 싶습니다.


1
Bumblebee를 사용하여 Windows VM을 성공적으로 실행했지만 눈에 띄지 않게 더 구체적인 것을 찾고 있습니까?
david.libremone

1
글쎄, virtualbox가 Windows VM의 비디오 가속을 통과하여 게임을하거나
블러 레이를 보는지 알고 싶습니다

1
언젠가는 직접 테스트 할 계획입니다. 다른 사람이 먼저 대답하지 않으면 결과를 알려 드리겠습니다. 질문을 더 구체적으로 조정 하시겠습니까?
david.libremone

나는 당신이 요구 한 것과 약간 혼란 스럽습니다 .VM이 3D 가속을 위해 nvidia GPU를 사용하기를 원하십니까? VM을 통한 그래픽 하드웨어에 대한 직접 액세스와 같은
Uri Herrera

1
@jacko 당신에이를 올리지 할 수 있습니다 forums.virtualbox.org
david.libremone

답변:


9

가상 게스트의 그래픽과 실제 호스트 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 가상 게스트 그래픽 장치의 제약 조건 내에서 여전히 작동하고 있기 때문에 호스트에서 동일한 응용 프로그램을 실행하는 것만 큼 이러한 개선은 그리 크지 않습니다.

출처


또한 VMware와 VirtualBox 모두 바이너리가 작동하도록 설정해야하므로 가상 머신에서 범블비 (엔비디아 카드로 렌더링)를 수행 할 수 없습니다.
allquixotic

5

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를 구동 할 것인지는 확실하지 않습니다. 한 가지 생각은 손님이 달리고있는 동안 그래픽없이 호스트를 실행할 수 있다면 이것이 작동 할 수 있지만 실제로 어떻게해야하는지 확실하지 않다는 것입니다.


1

좋아, 나는 궁금해서 이것을 시도했다.

QEMU (현재 VirtualBox)는 게스트 장치에 대한 PCI 장치의 통과를 지원합니다. 즉, 두 번째 그래픽 카드가있는 경우이를 Linux 호스트의 Windows 게스트로 전달하고 가상화 된 Windows 환경에서 완전한 3D 성능 (게임)을 얻을 수 있습니다. 두 개의 그래픽 카드가있는 데스크탑 리그의 경우입니다. 장치 관리자는 "Virualbox Graphics Adapter"대신 "NVIDIA GTX ... whatever"를 표시합니다.

옵티머스는 항상 더 복잡합니다. 이것을 ASUS UX501에서 테스트하고 있습니다. NVidia 칩을 Windows 게스트로 전달할 수 있었고 장치 관리자에 "3D 비디오 컨트롤러"로 표시됩니다. 그러나 지원하기 위해 Windows 드라이버를 설치할 수 없습니다. 인텔 그래픽의 존재는 전제 조건 인 것 같습니다.

사랑은 의심 스러웠습니다. 엔비디아 칩은 모니터를 구동하는 것처럼 "디스플레이 어댑터"가 아니라 통합 인텔 칩을위한 가속기 인 것 같습니다. 독립적으로 두 개의 별도 장치로 작동하지 않는 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.