Enabling Intel GVT-g (vGPU) on Proxmox VE
This guide details how to enable Intel GVT-g (Graphics Virtualization Technology), which allows you to split a single physical Intel iGPU into multiple virtual GPUs to be passed through to Virtual Machines (VMs).
This setup is tested on an Intel NUC 8 (Bean Canyon) but applies generally to supported Intel architectures.
0. Supported Hardware
Important: GVT-g is only supported on specific older generations of Intel processors. Newer processors (11th Gen+) use SR-IOV, which requires a completely different setup.
Supported Architectures for GVT-g:
- 5th Gen: Broadwell
- 6th Gen: Skylake
- 7th Gen: Kaby Lake
- 8th Gen: Coffee Lake (e.g., NUC8i5BEH)
- 9th Gen: Coffee Lake Refresh
- 10th Gen: Comet Lake (Support varies by motherboard/implementation)
Note: Intel 11th Gen (Tiger Lake/Rocket Lake) and 12th Gen+ (Alder Lake) do not support GVT-g. They utilize SR-IOV.
1. BIOS/UEFI Settings
Before configuring the OS, ensure the following are enabled in your BIOS:
- VT-d (Virtualization Technology for Directed I/O)
- VT-x (Virtualization Technology)
- Internal Graphics (IGD) must be set to Enabled (Primary).
- Aperture Size: Recommended 256MB or higher (if adjustable).
2. Edit GRUB Bootloader
We need to enable the IOMMU and the GVT-g driver at the kernel level.
-
Open the GRUB configuration file:
nano /etc/default/grub -
Find the line starting with
GRUB_CMDLINE_LINUX_DEFAULTand modify it to include the following parameters:intel_iommu=on: Enables IOMMU.iommu=pt: Improves performance by using pass-through mode for the host.i915.enable_gvt=1: Explicitly enables the GVT-g feature.
Your Configuration:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1"(Note: You can also add
pcie_acs_override=downstream,multifunction. This is usually for breaking apart IOMMU groups. You can add it if you have issues assigning PCI devices.) -
Save and exit (
Ctrl+O,Enter,Ctrl+X). -
Update GRUB to apply changes:
update-grub
3. Load Kernel Modules
You must ensure the VFIO and KVMGT modules are loaded at boot.
-
Open the modules configuration file:
nano /etc/modules -
Add the following lines to the file:
vfio vfio_iommu_type1 vfio_pci vfio_virqfd kvmgtkvmgtis the specific module required for Intel GVT-g.
-
Save and exit (
Ctrl+O,Enter,Ctrl+X). -
Update the initramfs to ensure these modules are available during boot:
update-initramfs -u -k all
4. Reboot
Restart your Proxmox server to apply the kernel parameters and load the modules.
reboot
5. Verification
After the system reboots, verfiy that GVT-g is active.
-
Check Dmesg: Run the following command to see if IOMMU and GVT are enabled:
dmesg | grep -e DMAR -e IOMMU dmesg | grep "gvt" -
Check MDEV Support: The most definitive test is checking if the system generated the Mediated Device (MDEV) types folder for your GPU (usually at PCI address
0000:00:02.0).ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/Expected Output: You should see folders like:
i915-GVTg_V5_4i915-GVTg_V5_8
If you see these folders, GVT-g is successfully enabled.
6. Utilizing GVT-g in a VM
- Go to the Proxmox Web GUI.
- Select your VM -> Hardware -> Add -> PCI Device.
- Select the Raw Device:
0000:00:02.0(Intel Corporation …). - Important: Do not check “All Functions”.
- Expand the MDev Type dropdown.
- Select the desired profile (e.g.,
i915-GVTg_V5_4).- V5_4 usually allocates more video RAM to the VM (High performance).
- V5_8 allocates less video RAM (Allows for more VMs to run simultaneously).
- Check PCI-Express.
- Start the VM.
在 Proxmox VE 上启用 Intel GVT-g(vGPU)
本指南详细介绍如何在 Proxmox VE 上启用 Intel GVT-g(图形虚拟化技术)。借助该技术,你可以将单个物理 Intel 核显(iGPU)拆分为多个虚拟 GPU(vGPU),并分别直通给多台虚拟机(VM)使用。
本配置已在 Intel NUC 8(Bean Canyon) 上测试通过,同时也普遍适用于其他支持 GVT-g 的 Intel 处理器架构。
0. 支持的硬件
重要提示: GVT-g 仅在特定几代较早的 Intel 处理器上受支持。较新的处理器(第 11 代酷睿及更新型号)改用了 SR-IOV,其配置方式完全不同。
支持 GVT-g 的处理器架构:
- 第 5 代: Broadwell
- 第 6 代: Skylake
- 第 7 代: Kaby Lake
- 第 8 代: Coffee Lake(例如 NUC8i5BEH)
- 第 9 代: Coffee Lake Refresh
- 第 10 代: Comet Lake(具体支持情况因主板与实现而异)
注:Intel 第 11 代(Tiger Lake / Rocket Lake)及第 12 代以上(Alder Lake 等)处理器不支持 GVT-g,而是采用 SR-IOV 技术。
1. BIOS/UEFI 设置
在配置操作系统之前,请先确保已在主板 BIOS 中启用以下选项:
- VT-d(定向 I/O 虚拟化技术)
- VT-x(Intel 虚拟化技术)
- Internal Graphics(内置核显 / IGD)必须设为 Enabled(并作为主显示设备 Primary)。
- Aperture Size(显存孔径大小):建议设为 256MB 或更高(如可调)。
2. 修改 GRUB 引导配置
我们需要在内核层面启用 IOMMU 和 GVT-g 驱动。
-
打开 GRUB 配置文件:
nano /etc/default/grub -
找到以
GRUB_CMDLINE_LINUX_DEFAULT开头的行,并修改以添加以下内核参数:intel_iommu=on:启用 Intel IOMMU。iommu=pt:对宿主机使用直通(Pass-Through)模式以提升性能。i915.enable_gvt=1:显式启用 i915 驱动的 GVT-g 功能。
修改后的配置示例:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1"(注:你也可以根据需要添加
pcie_acs_override=downstream,multifunction。该参数通常用于拆分 IOMMU 分组,如果在分配 PCI 设备时遇到分组冲突问题可以加上。) -
保存并退出(
Ctrl+O,Enter,Ctrl+X)。 -
更新 GRUB 以使配置生效:
update-grub
3. 加载内核模块
接下来需要确保系统在启动时自动加载 VFIO 和 KVMGT 模块。
-
打开内核模块配置文件:
nano /etc/modules -
在文件中添加以下内容:
vfio vfio_iommu_type1 vfio_pci vfio_virqfd kvmgt- 其中
kvmgt是 Intel GVT-g 所需的专用内核模块。
- 其中
-
保存并退出(
Ctrl+O,Enter,Ctrl+X)。 -
更新 initramfs,确保这些模块在引导阶段可用:
update-initramfs -u -k all
4. 重启系统
重启 Proxmox 服务器,以应用内核参数并加载模块。
reboot
5. 验证配置
系统重启后,验证 GVT-g 是否已成功激活。
-
检查 Dmesg 日志: 运行以下命令,查看 IOMMU 和 GVT 是否已启用:
dmesg | grep -e DMAR -e IOMMU dmesg | grep "gvt" -
检查 MDEV 支持情况: 最直接的验证方式是检查系统是否已为核显(通常位于 PCI 地址
0000:00:02.0)生成了中介设备(Mediated Device,MDEV)类型目录:ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/预期输出: 你应该能看到类似如下的文件夹:
i915-GVTg_V5_4i915-GVTg_V5_8
如果能看到这些文件夹,说明 GVT-g 已成功启用。
6. 在虚拟机中使用 GVT-g
- 打开 Proxmox Web 管理界面。
- 选中你的虚拟机 -> 硬件 (Hardware) -> 添加 (Add) -> PCI 设备 (PCI Device)。
- 选择 原始设备 (Raw Device):
0000:00:02.0(Intel Corporation …)。 - 重要提示:不要勾选“所有功能 (All Functions)”。
- 展开 MDev 类型 (MDev Type) 下拉菜单。
- 选择所需的配置文件(例如
i915-GVTg_V5_4):- V5_4 通常会为虚拟机分配更多显存(性能更高)。
- V5_8 分配的显存较少(允许同时运行更多虚拟机)。
- 勾选 PCI-Express。
- 启动虚拟机。
在 Proxmox VE 上啟用 Intel GVT-g(vGPU)
本指南詳細介紹如何在 Proxmox VE 上啟用 Intel GVT-g(圖形虛擬化技術)。透過這項技術,你可以將單一實體 Intel 內顯(iGPU)分割為多個虛擬 GPU(vGPU),並分別直通(Passthrough)給多台虛擬機器(VM)使用。
本設定已在 Intel NUC 8(Bean Canyon) 上測試通過,同時也普遍適用於其他支援 GVT-g 的 Intel 處理器架構。
0. 支援的硬體
重要提示: GVT-g 僅在特定幾代較早的 Intel 處理器上受支援。較新的處理器(第 11 代 Core 及更新型號)改用了 SR-IOV,其設定方式完全不同。
支援 GVT-g 的處理器架構:
- 第 5 代: Broadwell
- 第 6 代: Skylake
- 第 7 代: Kaby Lake
- 第 8 代: Coffee Lake(例如 NUC8i5BEH)
- 第 9 代: Coffee Lake Refresh
- 第 10 代: Comet Lake(具體支援情況依主機板與實作而異)
註:Intel 第 11 代(Tiger Lake / Rocket Lake)及第 12 代以上(Alder Lake 等)處理器不支援 GVT-g,而是採用 SR-IOV 技術。
1. BIOS/UEFI 設定
在設定作業系統之前,請先確保已在主機板 BIOS 中啟用以下選項:
- VT-d(定向 I/O 虛擬化技術)
- VT-x(Intel 虛擬化技術)
- Internal Graphics(內建顯示卡 / IGD)必須設為 Enabled(並設為主顯示裝置 Primary)。
- Aperture Size(視訊記憶體孔徑大小):建議設為 256MB 或更高(若可調整)。
2. 編輯 GRUB 開機載入器設定
我們需要在核心(Kernel)層面啟用 IOMMU 與 GVT-g 驅動程式。
-
開啟 GRUB 設定檔:
nano /etc/default/grub -
找到以
GRUB_CMDLINE_LINUX_DEFAULT開頭的那一行,並修改以加入以下核心參數:intel_iommu=on:啟用 Intel IOMMU。iommu=pt:對宿主機使用直通(Pass-Through)模式以提升效能。i915.enable_gvt=1:明確啟用 i915 驅動程式的 GVT-g 功能。
修改後的設定範例:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1"(註:你也可以視需求加入
pcie_acs_override=downstream,multifunction。此參數通常用於拆分 IOMMU 群組,如果在指派 PCI 裝置時遇到群組衝突問題可以加上。) -
儲存並離開(
Ctrl+O,Enter,Ctrl+X)。 -
更新 GRUB 以套用變更:
update-grub
3. 載入核心模組
接下來需要確保系統在開機時自動載入 VFIO 與 KVMGT 模組。
-
開啟核心模組設定檔:
nano /etc/modules -
在檔案中加入以下內容:
vfio vfio_iommu_type1 vfio_pci vfio_virqfd kvmgt- 其中
kvmgt是 Intel GVT-g 所需的專用核心模組。
- 其中
-
儲存並離開(
Ctrl+O,Enter,Ctrl+X)。 -
更新 initramfs,確保這些模組在開機階段可用:
update-initramfs -u -k all
4. 重新開機
重新啟動 Proxmox 伺服器,以套用核心參數並載入模組。
reboot
5. 驗證設定
系統重新開機後,驗證 GVT-g 是否已成功啟用。
-
檢查 Dmesg 日誌: 執行以下指令,查看 IOMMU 與 GVT 是否已啟用:
dmesg | grep -e DMAR -e IOMMU dmesg | grep "gvt" -
檢查 MDEV 支援情況: 最直接的驗證方式是檢查系統是否已為內顯(通常位於 PCI 位址
0000:00:02.0)產生了中介裝置(Mediated Device,MDEV)類型資料夾:ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/預期輸出: 你應該會看到類似如下的資料夾:
i915-GVTg_V5_4i915-GVTg_V5_8
如果能看到這些資料夾,代表 GVT-g 已成功啟用。
6. 在虛擬機器中使用 GVT-g
- 前往 Proxmox Web 管理介面。
- 選取你的虛擬機器 -> 硬體 (Hardware) -> 新增 (Add) -> PCI 裝置 (PCI Device)。
- 選擇 原始裝置 (Raw Device):
0000:00:02.0(Intel Corporation …)。 - 重要提示:請勿勾選「所有功能 (All Functions)」。
- 展開 MDev 類型 (MDev Type) 下拉式選單。
- 選擇所需的設定檔(例如
i915-GVTg_V5_4):- V5_4 通常會為虛擬機器配置較多視訊記憶體(較高效能)。
- V5_8 配置的視訊記憶體較少(允許同時執行更多台虛擬機器)。
- 勾選 PCI-Express。
- 啟動虛擬機器。
Proxmox VE で Intel GVT-g (vGPU) を有効化する
本ガイドでは、Proxmox VE 上で Intel GVT-g(Graphics Virtualization Technology)を有効化する手順を詳しく解説します。GVT-g を利用すると、1 つの物理 Intel 内蔵 GPU(iGPU)を複数の仮想 GPU(vGPU)に分割し、複数の仮想マシン(VM)へパススルーできるようになります。
本構成は Intel NUC 8(Bean Canyon) で動作確認していますが、GVT-g に対応した他の Intel アーキテクチャでも同様に適用できます。
0. 対応ハードウェア
重要: GVT-g は特定の旧世代 Intel プロセッサでのみサポートされています。新しいプロセッサ(第 11 世代以降)では SR-IOV が採用されており、まったく異なる設定手順が必要です。
GVT-g 対応アーキテクチャ:
- 第 5 世代: Broadwell
- 第 6 世代: Skylake
- 第 7 世代: Kaby Lake
- 第 8 世代: Coffee Lake(例:NUC8i5BEH)
- 第 9 世代: Coffee Lake Refresh
- 第 10 世代: Comet Lake(マザーボードや実装により対応状況が異なります)
注:Intel 第 11 世代(Tiger Lake / Rocket Lake)および第 12 世代以降(Alder Lake など)は GVT-g に対応していません。これらは SR-IOV を使用します。
1. BIOS/UEFI 設定
OS 側の設定を行う前に、BIOS/UEFI で以下の項目が有効になっていることを確認してください。
- VT-d(Virtualization Technology for Directed I/O)
- VT-x(Virtualization Technology)
- Internal Graphics(内蔵グラフィックス / IGD)を Enabled(プライマリ)に設定。
- Aperture Size:256MB 以上を推奨(変更可能な場合)。
2. GRUB ブートローダーの編集
カーネルレベルで IOMMU と GVT-g ドライバを有効化します。
-
GRUB の設定ファイルを開きます:
nano /etc/default/grub -
GRUB_CMDLINE_LINUX_DEFAULTで始まる行を探し、以下のパラメータを追加します:intel_iommu=on:IOMMU を有効化します。iommu=pt:ホスト側をパススルーモードにしてパフォーマンスを向上させます。i915.enable_gvt=1:GVT-g 機能を明示的に有効化します。
設定例:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1"(注:必要に応じて
pcie_acs_override=downstream,multifunctionを追加することもできます。これは主に IOMMU グループを分割するためのオプションであり、PCI デバイスの割り当て時に問題が発生する場合に追加してください。) -
保存して終了します(
Ctrl+O、Enter、Ctrl+X)。 -
GRUB を更新して変更を反映します:
update-grub
3. カーネルモジュールの読み込み
起動時に VFIO および KVMGT モジュールが読み込まれるように設定します。
-
モジュール設定ファイルを開きます:
nano /etc/modules -
ファイルに以下の行を追加します:
vfio vfio_iommu_type1 vfio_pci vfio_virqfd kvmgtkvmgtは Intel GVT-g に必要な専用モジュールです。
-
保存して終了します(
Ctrl+O、Enter、Ctrl+X)。 -
起動時にこれらのモジュールが利用できるよう、initramfs を更新します:
update-initramfs -u -k all
4. 再起動
カーネルパラメータの適用とモジュールの読み込みを行うため、Proxmox サーバーを再起動します。
reboot
5. 動作確認
システムの再起動後、GVT-g が有効になっていることを確認します。
-
dmesg の確認: 以下のコマンドを実行し、IOMMU と GVT が有効になっているか確認します:
dmesg | grep -e DMAR -e IOMMU dmesg | grep "gvt" -
MDEV サポートの確認: 最も確実な確認方法は、GPU(通常は PCI アドレス
0000:00:02.0)の Mediated Device(MDEV)タイプ用ディレクトリが生成されているかを調べることです。ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/期待される出力: 以下のようなディレクトリが表示されるはずです:
i915-GVTg_V5_4i915-GVTg_V5_8
これらのフォルダが表示されれば、GVT-g は正常に有効化されています。
6. VM で GVT-g を使用する
- Proxmox の Web GUI を開きます。
- 対象の VM を選択 -> Hardware(ハードウェア) -> Add(追加) -> PCI Device(PCI デバイス) を選択します。
- Raw Device(生デバイス) で
0000:00:02.0(Intel Corporation …)を選択します。 - 重要:「All Functions(すべての機能)」にはチェックを入れないでください。
- MDev Type(MDev タイプ) ドロップダウンを展開します。
- 目的のプロファイル(例:
i915-GVTg_V5_4)を選択します:- V5_4 はより多くのビデオメモリ(VRAM)を VM に割り当てます(高パフォーマンス向け)。
- V5_8 は割り当てるビデオメモリが少ない代わりに、より多くの VM を同時に実行できます。
- PCI-Express にチェックを入れます。
- VM を起動します。