首先是基礎知識:

首先是基礎知識:

您是否可以透過 IronHide 執行 Windows VM 以實現顯示卡加速,有什麼想法嗎?我想使用我的顯示卡玩遊戲/觀看藍光等。

答案1

也許虛擬客戶中的圖形和實際主機作業系統之間的解釋會有所幫助。

首先是基礎知識:

虛擬客戶中的所有內容都是抽象化 - 這意味著虛擬客戶作業系統中的每個裝置和驅動程式都不依賴實際的主機裝置和驅動程式。

給大家舉個簡單的例子。滑鼠被視為特定裝置 - 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)都只能看到該虛擬來賓裝置。

主機圖形與訪客圖形

對於圖形來說也是如此。

我的主機圖形是:

 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 作業系統上,它可以看到以下顯示卡 - 您可以看到它與主機不同:

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 的黑暗世界中,嘉賓補充您可以手動安裝(或在 11.10 中 -騎師看到並建議您安裝它)安裝額外的核心模組(或 Windows 來賓的裝置驅動程式)以允許來賓作業系統增強對主機作業系統圖形的存取。同樣,它不是直接映射 - 但允許看到 3D 加速圖形。

如果虛擬機器內的應用程式透過 OpenGL 程式介面(或適用於 Windows 客戶作業系統 - 其 DirectX 呼叫)使用 3D 功能,VirtualBox 將嘗試使用主機的 3D 功能,而不是在軟體中模擬它們(這會很慢)。 3D硬體。

我再次強調,客戶作業系統看不到您實際的顯示卡,它只是將 OpenGL(或 DirectX)呼叫從客戶直接傳遞到主機硬體進行處理。

在此輸入影像描述

在 VirtualBox 設定中,您應該更改視訊卡記憶體和 3D 顯示卡設定。然後,您的來賓作業系統將看到具有 128Mb RAM 的「3D 加速卡」。您的主機顯示卡是否比這更好並不重要 - 您的客戶作業系統只會看到這個「簡單」的抽象虛擬顯示卡。

由於您提到您正在使用 Windows 來賓作業系統 - 2D 複選框適用於您,因為類似直通執行程式設計介面呼叫。

Bumblebee/IronHide 是一種非此即彼的顯示卡切換機制 - 您可以使用整合式顯示卡或更高容量的 NVidia/ATI 顯示卡,但不能同時使用兩者。

由於較高級可切換顯示卡的 OpenGL(或 DirectX)功能比整合晶片組更強,因此您將看到來賓作業系統圖形密集型應用程式的圖形效能相對增強。然而,這種改進並不像在主機上本地運行相同的應用程式那樣顯著,因為它仍然在 128MB 虛擬客戶圖形設備的限制內工作。

來源

答案2

上面有一個答案https://askubuntu.com/a/85138/38052解釋了來賓作業系統看到的一切都是某種抽象。雖然這在過去是完全正確的,但我相信情況正在發生變化,而且可能不再完全正確。

一些較新的處理器也支援 I/O MMU 虛擬化。這些技術對於 Intel 版本稱為 Intel VT-d,對於 AMD 版本稱為 AMD-Vi。引用維基百科關於x86虛擬化的文章:

Intel 的 I/O MMU 虛擬化(AMD-Vi 和 VT-d) 主文章:IOMMU

輸入/輸出記憶體管理單元 (IOMMU) 使來賓虛擬機能夠透過 DMA 和中斷重新映射直接使用周邊設備,例如乙太網路、加速顯示卡和硬碟控制器。這有時稱為 PCI 直通。 AMD和Intel都發布了規格:

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

這聽起來很有趣,但我已經可以預見一些問題。其一,在 Optimus 筆記型電腦中,英特爾 IGP 始終渲染最終的螢幕輸出。我不清楚來賓作業系統和主機作業系統將如何驅動 IGP。一種想法是,如果可以在來賓運行時在沒有任何圖形的情況下運行主機,那麼這可以工作,但我不清楚人們實際上將如何做到這一點。

答案3

好吧,我很好奇,所以我嘗試了這個。

QEMU 和現在的 VirtualBox 都支援 PCI 裝置到客戶電腦的直通。這意味著如果您有第二塊顯示卡,您可以將其傳遞給 Linux 主機上的 Windows 來賓,並在虛擬化 Windows 環境中獲得完整的 3D 效能(遊戲)。帶有兩個顯示卡的桌上型電腦就是這種情況。裝置管理員將顯示“NVIDIA GTX...無論如何”,而不是說“Virtualbox 圖形適配器”。

擎天柱總是比較複雜。我正在華碩 UX501 上對此進行測試。我能夠將 NVidia 晶片傳遞給 Windows 用戶機,並且它在裝置管理員中顯示為「3D 視訊控制器」。但我無法安裝任何 Windows 驅動程式來支援它。似乎英特爾顯卡的存在是先決條件。

薩朗的懷疑是對的。看起來 nvidia 晶片並不是驅動顯示器的“顯示適配器”,而只是整合英特爾晶片的加速器。它們似乎不能作為兩個獨立的設備獨立運作。

答案4

https://gist.github.com/Misairu-G/616f7b2756c488148b7309addc940b28

在某些情況下可以透過DGPU(請參閱上面的連結)。我已經在我的 Dell 7710 上管理了這個,使用 Quadro m5000m DGPU 從 Ubuntu 主機傳遞到 Windows10 客戶機。

然而,據我所知,它不可能透過硬體在筆記型電腦主螢幕上顯示該卡的輸出。我認為Looking Glass可能是目前最好的選擇,其次是家庭串流媒體/RDP等中的Steam。

我想知道為什麼不能只控制多路復用筆記型電腦中的多路復用器以隨意在 IGPU 和 DGPU 之間切換。我嘗試透過 VGA Switcheroo 進行此操作,但即使在透過 DPU 到達來賓作業系統之前也根本無法控制多工器。

我想無復用器的筆記型電腦會更具挑戰性,至少需要客戶機和主機之間進行一些通訊來控制哪個 GPU 正在寫入幀緩衝區的哪一位。超出了我的想像。

相關內容