This article is not available in your language yet.这篇文章暂时没有你所用语言的版本。這篇文章暫時沒有你所用語言的版本。この記事はまだお使いの言語で提供されていません。

Read in切换语言切換語言言語を切り替え English 简体中文 繁體中文 日本語

Enabling Intel GVT-g (vGPU) on Proxmox VE

Updated更新于更新於更新

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.

  1. Open the GRUB configuration file:

    nano /etc/default/grub
  2. Find the line starting with GRUB_CMDLINE_LINUX_DEFAULT and 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.)

  3. Save and exit (Ctrl+O, Enter, Ctrl+X).

  4. Update GRUB to apply changes:

    update-grub

3. Load Kernel Modules

You must ensure the VFIO and KVMGT modules are loaded at boot.

  1. Open the modules configuration file:

    nano /etc/modules
  2. Add the following lines to the file:

    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd
    kvmgt
    • kvmgt is the specific module required for Intel GVT-g.
  3. Save and exit (Ctrl+O, Enter, Ctrl+X).

  4. 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.

  1. Check Dmesg: Run the following command to see if IOMMU and GVT are enabled:

    dmesg | grep -e DMAR -e IOMMU
    dmesg | grep "gvt"
  2. 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_4
    • i915-GVTg_V5_8

    If you see these folders, GVT-g is successfully enabled.


6. Utilizing GVT-g in a VM

  1. Go to the Proxmox Web GUI.
  2. Select your VM -> Hardware -> Add -> PCI Device.
  3. Select the Raw Device: 0000:00:02.0 (Intel Corporation …).
  4. Important: Do not check “All Functions”.
  5. Expand the MDev Type dropdown.
  6. 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).
  7. Check PCI-Express.
  8. Start the VM.

在 Proxmox VE 上启用 Intel GVT-g(vGPU)

Updated更新于更新於更新

本指南详细介绍如何在 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 驱动。

  1. 打开 GRUB 配置文件:

    nano /etc/default/grub
  2. 找到以 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 设备时遇到分组冲突问题可以加上。)

  3. 保存并退出(Ctrl+O,Enter,Ctrl+X)。

  4. 更新 GRUB 以使配置生效:

    update-grub

3. 加载内核模块

接下来需要确保系统在启动时自动加载 VFIO 和 KVMGT 模块。

  1. 打开内核模块配置文件:

    nano /etc/modules
  2. 在文件中添加以下内容:

    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd
    kvmgt
    • 其中 kvmgt 是 Intel GVT-g 所需的专用内核模块。
  3. 保存并退出(Ctrl+O,Enter,Ctrl+X)。

  4. 更新 initramfs,确保这些模块在引导阶段可用:

    update-initramfs -u -k all

4. 重启系统

重启 Proxmox 服务器,以应用内核参数并加载模块。

reboot

5. 验证配置

系统重启后,验证 GVT-g 是否已成功激活。

  1. 检查 Dmesg 日志: 运行以下命令,查看 IOMMU 和 GVT 是否已启用:

    dmesg | grep -e DMAR -e IOMMU
    dmesg | grep "gvt"
  2. 检查 MDEV 支持情况: 最直接的验证方式是检查系统是否已为核显(通常位于 PCI 地址 0000:00:02.0)生成了中介设备(Mediated Device,MDEV)类型目录:

    ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/

    预期输出: 你应该能看到类似如下的文件夹:

    • i915-GVTg_V5_4
    • i915-GVTg_V5_8

    如果能看到这些文件夹,说明 GVT-g 已成功启用。


6. 在虚拟机中使用 GVT-g

  1. 打开 Proxmox Web 管理界面。
  2. 选中你的虚拟机 -> 硬件 (Hardware) -> 添加 (Add) -> PCI 设备 (PCI Device)。
  3. 选择 原始设备 (Raw Device):0000:00:02.0(Intel Corporation …)。
  4. 重要提示:不要勾选“所有功能 (All Functions)”。
  5. 展开 MDev 类型 (MDev Type) 下拉菜单。
  6. 选择所需的配置文件(例如 i915-GVTg_V5_4):
    • V5_4 通常会为虚拟机分配更多显存(性能更高)。
    • V5_8 分配的显存较少(允许同时运行更多虚拟机)。
  7. 勾选 PCI-Express。
  8. 启动虚拟机。

在 Proxmox VE 上啟用 Intel GVT-g(vGPU)

Updated更新于更新於更新

本指南詳細介紹如何在 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 驅動程式。

  1. 開啟 GRUB 設定檔:

    nano /etc/default/grub
  2. 找到以 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 裝置時遇到群組衝突問題可以加上。)

  3. 儲存並離開(Ctrl+O,Enter,Ctrl+X)。

  4. 更新 GRUB 以套用變更:

    update-grub

3. 載入核心模組

接下來需要確保系統在開機時自動載入 VFIO 與 KVMGT 模組。

  1. 開啟核心模組設定檔:

    nano /etc/modules
  2. 在檔案中加入以下內容:

    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd
    kvmgt
    • 其中 kvmgt 是 Intel GVT-g 所需的專用核心模組。
  3. 儲存並離開(Ctrl+O,Enter,Ctrl+X)。

  4. 更新 initramfs,確保這些模組在開機階段可用:

    update-initramfs -u -k all

4. 重新開機

重新啟動 Proxmox 伺服器,以套用核心參數並載入模組。

reboot

5. 驗證設定

系統重新開機後,驗證 GVT-g 是否已成功啟用。

  1. 檢查 Dmesg 日誌: 執行以下指令,查看 IOMMU 與 GVT 是否已啟用:

    dmesg | grep -e DMAR -e IOMMU
    dmesg | grep "gvt"
  2. 檢查 MDEV 支援情況: 最直接的驗證方式是檢查系統是否已為內顯(通常位於 PCI 位址 0000:00:02.0)產生了中介裝置(Mediated Device,MDEV)類型資料夾:

    ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/

    預期輸出: 你應該會看到類似如下的資料夾:

    • i915-GVTg_V5_4
    • i915-GVTg_V5_8

    如果能看到這些資料夾,代表 GVT-g 已成功啟用。


6. 在虛擬機器中使用 GVT-g

  1. 前往 Proxmox Web 管理介面。
  2. 選取你的虛擬機器 -> 硬體 (Hardware) -> 新增 (Add) -> PCI 裝置 (PCI Device)。
  3. 選擇 原始裝置 (Raw Device):0000:00:02.0(Intel Corporation …)。
  4. 重要提示:請勿勾選「所有功能 (All Functions)」。
  5. 展開 MDev 類型 (MDev Type) 下拉式選單。
  6. 選擇所需的設定檔(例如 i915-GVTg_V5_4):
    • V5_4 通常會為虛擬機器配置較多視訊記憶體(較高效能)。
    • V5_8 配置的視訊記憶體較少(允許同時執行更多台虛擬機器)。
  7. 勾選 PCI-Express。
  8. 啟動虛擬機器。

Proxmox VE で Intel GVT-g (vGPU) を有効化する

Updated更新于更新於更新

本ガイドでは、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 ドライバを有効化します。

  1. GRUB の設定ファイルを開きます:

    nano /etc/default/grub
  2. 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 デバイスの割り当て時に問題が発生する場合に追加してください。)

  3. 保存して終了します(Ctrl+O、Enter、Ctrl+X)。

  4. GRUB を更新して変更を反映します:

    update-grub

3. カーネルモジュールの読み込み

起動時に VFIO および KVMGT モジュールが読み込まれるように設定します。

  1. モジュール設定ファイルを開きます:

    nano /etc/modules
  2. ファイルに以下の行を追加します:

    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd
    kvmgt
    • kvmgt は Intel GVT-g に必要な専用モジュールです。
  3. 保存して終了します(Ctrl+O、Enter、Ctrl+X)。

  4. 起動時にこれらのモジュールが利用できるよう、initramfs を更新します:

    update-initramfs -u -k all

4. 再起動

カーネルパラメータの適用とモジュールの読み込みを行うため、Proxmox サーバーを再起動します。

reboot

5. 動作確認

システムの再起動後、GVT-g が有効になっていることを確認します。

  1. dmesg の確認: 以下のコマンドを実行し、IOMMU と GVT が有効になっているか確認します:

    dmesg | grep -e DMAR -e IOMMU
    dmesg | grep "gvt"
  2. 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_4
    • i915-GVTg_V5_8

    これらのフォルダが表示されれば、GVT-g は正常に有効化されています。


6. VM で GVT-g を使用する

  1. Proxmox の Web GUI を開きます。
  2. 対象の VM を選択 -> Hardware(ハードウェア) -> Add(追加) -> PCI Device(PCI デバイス) を選択します。
  3. Raw Device(生デバイス) で 0000:00:02.0(Intel Corporation …)を選択します。
  4. 重要:「All Functions(すべての機能)」にはチェックを入れないでください。
  5. MDev Type(MDev タイプ) ドロップダウンを展開します。
  6. 目的のプロファイル(例:i915-GVTg_V5_4)を選択します:
    • V5_4 はより多くのビデオメモリ(VRAM)を VM に割り当てます(高パフォーマンス向け)。
    • V5_8 は割り当てるビデオメモリが少ない代わりに、より多くの VM を同時に実行できます。
  7. PCI-Express にチェックを入れます。
  8. VM を起動します。