IronHide / BumbleBee dengan VM VirtualBox. Apakah akan melewati akselerasi video ke kartu fisik?

8

Adakah ide apakah Anda dapat menjalankan Windows VM melalui IronHide untuk akselerasi kartu grafis? Saya ingin bermain game / menonton bluray dll menggunakan kartu video saya.

mwjackson
sumber
1
Saya telah berhasil menjalankan windows vm dengan lebah, tetapi tanpa efek yang terlihat, apakah Anda mencari sesuatu yang lebih spesifik?
david.libremone
1
Yah, saya ingin tahu apakah virtualbox akan melewati akselerasi video dari windows VM untuk bermain game / menonton bluray dll.
mwjackson
1
Saya berencana mengujinya sendiri kapan-kapan, saya akan memberi tahu Anda hasilnya jika orang lain tidak menjawab lebih dulu - mungkin menyesuaikan pertanyaan Anda agar lebih spesifik?
david.libremone
Saya agak bingung dengan apa yang Anda minta, Anda ingin VM menggunakan GPU nvidia untuk akselerasi 3D-nya? , suka akses langsung ke perangkat keras grafis melalui VM ?.
Uri Herrera
1
@Jacko Anda mungkin ingin melakukan crosspost ini di forums.virtualbox.org
david.libremone

Jawaban:

9

Mungkin penjelasan antara grafik dalam tamu virtual dan host O / S yang sebenarnya akan membantu di sini.

Pertama-tama dasar-dasarnya:

Segala sesuatu dalam tamu virtual adalah abstraksi - artinya ini adalah bahwa setiap perangkat dan driver dalam tamu virtual O / S tidak tergantung pada perangkat host & driver yang sebenarnya.

Untuk memberi Anda contoh sederhana. Mouse dilihat sebagai perangkat tertentu - kernel linux melihat perangkat ini dan memungkinkan sistem operasi tamu untuk menggunakan perangkat itu. "Perangkat virtual" ini dipetakan ke perangkat fisik nyata oleh alat virtualisasi - VirtualBox, VMWare, Xen dll. Dengan demikian sistem operasi tamu tidak perlu memahami apa itu mouse fisik, ia hanya melihat apa yang telah dipetakan oleh alat virtualisasi itu. . Nilai dari pendekatan ini adalah Anda dapat memindahkan tamu virtual ke Host yang berbeda - ini akan beroperasi dengan cara yang sama karena tidak ada ketergantungan langsung pada Host itu sendiri.

Untuk menunjukkan ini dalam praktiknya Anda dapat berjalan lsusbdi host dan guest - di host saya O / SI memiliki perangkat USB berikut:

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

Di O / SI oneiric tamu saya dapat melihat perangkat USB berikut - ini berbeda dari host:

Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Setiap tamu O / S apakah windows atau linux hanya akan melihat perangkat tamu virtual ini.

Gambar host vs gambar tamu

Sama untuk grafis.

Grafik host saya adalah:

 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)

Pada guest oneiric O / S saya dapat melihat kartu grafis berikut - Anda dapat melihatnya tidak sama dengan 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

Demikian juga - Tamu Windows O / S hanya akan melihat perangkat tamu virtual serupa.

Di dunia keruh VirtualBox, Penambahan Tamu yang dapat Anda instal secara manual (atau di 11.10 - joki melihat dan merekomendasikan Anda menginstalnya) menginstal modul kernel tambahan (atau driver perangkat untuk Tamu Windows) untuk memungkinkan O / S peningkatan akses tamu ke grafis O / S host Anda. Sekali lagi ini bukan pemetaan langsung - tetapi memungkinkan grafik 3D dipercepat untuk dilihat.

Jika aplikasi di dalam mesin virtual Anda menggunakan fitur 3D melalui antarmuka pemrograman OpenGL (atau untuk tamu Windows O / S - panggilan DirectX-nya), alih-alih mengemulasi mereka dalam perangkat lunak (yang akan lambat), VirtualBox akan berusaha menggunakan host Anda Perangkat keras 3D.

Sekali lagi saya tekankan, tamu O / S tidak melihat kartu grafis Anda yang sebenarnya, hanya melewati panggilan OpenGL (atau DirectX) dari Tamu langsung ke perangkat keras Host untuk diproses.

masukkan deskripsi gambar di sini

Dalam pengaturan VirtualBox Anda harus mengubah memori kartu video dan pengaturan kartu grafis 3D. O / S tamu Anda akan melihat "Kartu Akselerasi 3D" dengan RAM 128Mb. Tidak masalah jika kartu grafis host Anda lebih baik dari ini - tamu O / S Anda hanya akan melihat kartu grafis virtual abstrak yang "sederhana" ini.

Karena Anda menyebutkan bahwa Anda menggunakan Windows Guest O / S - kotak centang 2D berlaku untuk Anda karena pass-through yang sama dari panggilan antarmuka pemrograman dilakukan.

Bumblebee / IronHide adalah mekanisme switching grafis atau grafis - Anda menggunakan grafis terintegrasi atau grafis NVidia / ATI berkapasitas lebih tinggi tetapi tidak keduanya sekaligus pada saat bersamaan.

Karena kemampuan OpenGL (atau DirectX) dari grafik yang lebih tinggi yang dapat dipindahtangankan itu lebih besar daripada chip terintegrasi, Anda akan melihat kinerja grafis yang relatif ditingkatkan dengan aplikasi intensif grafis Guest O / S. Namun peningkatan ini tidak sedramatis menjalankan aplikasi yang sama secara asli pada host karena masih bekerja dalam batasan perangkat grafis tamu virtual 128MB.

sumber

kebebasan fosil
sumber
Tambahan: kita tidak bisa melakukan bumblebee (render pada kartu nvidia) di mesin virtual saat ini, karena VMware dan VirtualBox sama-sama membutuhkan binari mereka agar dapat diatur agar berfungsi.
allquixotic
5

Sebuah jawaban di atas https://askubuntu.com/a/85138/38052 menjelaskan bagaimana segala sesuatu yang dilihat tamu O / S adalah semacam abstraksi. Walaupun ini dulu sepenuhnya benar, saya percaya segala sesuatunya berubah dan itu mungkin tidak sepenuhnya benar lagi.

Beberapa prosesor yang lebih baru juga mendukung virtualisasi I / O MMU. Teknologi ini disebut Intel VT-d untuk versi Intel dan AMD-Vi untuk versi AMD. Mengutip artikel wikipedia di virtualisasi x86:

Virtualisasi I / O MMU Intel (AMD-Vi dan VT-d) Artikel utama: IOMMU

Unit manajemen memori input / output (IOMMU) memungkinkan mesin virtual tamu untuk secara langsung menggunakan perangkat periferal, seperti Ethernet, kartu grafis berakselerasi, dan pengontrol hard drive, melalui DMA dan interupsi remapping. Ini kadang-kadang disebut PCI passthrough. AMD dan Intel telah merilis spesifikasi:

AMD's I/O Virtualization Technology, "AMD-Vi", originally called "IOMMU".
Intel's "Virtualization Technology for Directed I/O" (VT-d).

Ini kedengarannya cukup menarik, tetapi saya sudah bisa melihat beberapa masalah. Pertama, di laptop Optimus, Intel IGP selalu menampilkan hasil akhir di layar. Tidak jelas bagi saya bagaimana Guest O / S dan Host O / S akan mendorong IGP. Satu pemikiran adalah bahwa jika memungkinkan untuk menjalankan Host tanpa grafik saat tamu berjalan, ini dapat dilakukan untuk bekerja, tetapi tidak jelas bagi saya bagaimana seseorang akan melakukan hal ini.

sarang
sumber
1

OK, saya penasaran, jadi saya mencoba ini.

QEMU, dan sekarang VirtualBox, mendukung pass-through perangkat PCI ke mesin tamu. Itu berarti jika Anda memiliki kartu grafis kedua, Anda dapat meneruskannya ke tamu windows di host linux dan mendapatkan kinerja 3D (permainan) penuh dalam lingkungan windows yang tervirtualisasi. Itu terjadi untuk rig desktop dengan dua kartu grafis. Manajer perangkat akan menampilkan "NVIDIA GTX ... apa pun" alih-alih mengatakan "Virualbox Graphics Adapter".

Optimus selalu lebih rumit. Saya menguji ini pada ASUS UX501. Saya bisa meneruskan chip NVidia ke jendela tamu dan itu menunjukkan di manajer perangkat sebagai "Pengendali Video 3D." Tetapi saya tidak dapat menginstal driver windows untuk mendukungnya. Sepertinya kehadiran grafis intel adalah sebuah prereq.

Sarang benar untuk curiga. Sepertinya chip nvidia bukan "adaptor layar" seperti yang mendorong monitor, tetapi hanya akselerator untuk chip intel terintegrasi. Mereka tampaknya tidak berfungsi sebagai dua perangkat yang terpisah secara independen.

Mathew Hart
sumber