https://<Proxmox VEのIPアドレス>:8069こんな感じ。ここにアクセスして設定を行っていく。 家庭用で使うならRepositoriesの設定をno-subscriptionにしてもいいかも。具体的には[ノード名]->[Repositories]で、Componentsがenterpriseとpve-enterpriseになっているエントリをdisableにして、その後[Add]を押して、[No-Subscription]と[Ceph Squid No-Subscription]をそれぞれ追加。
いよいよstrongtz/i915-sriov-dkmsを導入。これがIntel iGPUの仮想化に必要となるモジュールです。なんと丁寧なことにProxmox VE 9.1向けの導入手順が書いてあるので、これに従うのみ。
# apt install build-essential dkms # apt install proxmox-default-kernel proxmox-default-headers # wget -O /tmp/i915-sriov-dkms_2026.03.05_amd64.deb "https://github.com/strongtz/i915-sriov-dkms/releases/download/2026.03.05/i915-sriov-dkms_2026.03.05_amd64.deb" # dpkg -i /tmp/i915-sriov-dkms_2026.03.05_amd64.debそして、/etc/default/grubのGRUB_CMDLINE_LINUX_DEFAULTを以下のように更新。
# /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe"そして、grubを更新。その後GPUを何個のVFに分割するかを設定。下の7って数字が分割数。あまり大きくするとメモリへの影響もあるようなので、手元では4を設定して動作させてます。
# update-grub # update-initramfs -u # apt install sysfsutils # echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.confSecure Bootを有効にしている場合には、追加で以下の手順が必要です。
# apt install mokutil # mokutil --import /var/lib/shim-signed/mok/MOK.derこの時、適当なパスワードを決める必要があります。再起動時に、これが安全なシステムだと読み込ませるときに使うだけの一時的なパスワードです。これを入力した後、システムを再起動します。 そして、再起動時に青い画面でMOK Managementみたいな画面になったら、
# rebootこれで再起動してきて、lspciしたときに00:02.1などが見えてたら仮想化成功です。
# lspci 00:02.0 VGA compatible controller: Intel Corporation Arrow Lake-S [Intel Graphics] (rev 06) 00:02.1 VGA compatible controller: Intel Corporation Arrow Lake-S [Intel Graphics] (rev 06) 00:02.2 VGA compatible controller: Intel Corporation Arrow Lake-S [Intel Graphics] (rev 06) 00:02.3 VGA compatible controller: Intel Corporation Arrow Lake-S [Intel Graphics] (rev 06) 00:02.4 VGA compatible controller: Intel Corporation Arrow Lake-S [Intel Graphics] (rev 06)この後、さらにおまけで作成したVFたちがホスト側で勝手に使われたりしないように、追加の手順をやっておきます。これはstrongtz/i915-sriov-dkmsのページのBlock VFs on the Host (Optional)の部分です。
# echo "vfio-pci" | sudo tee /etc/modules-load.d/vfio.conf # cat /sys/devices/pci0000:00/0000:00:02.0/devicecatコマンドで出てきた値が、iGPUのデバイスIDです。僕は0x7d76でした。この値を以下のようにATTR{device}==の後に埋め込んでこのデバイスIDがホストで見えた時にはvfio-pciを利用するように指定しておきます。
sudo tee /etc/udev/rules.d/99-i915-vf-vfio.rules <<EOF
# Bind all i915 VFs (00:02.1 to 00:02.7) to vfio-pci
ACTION=="add", SUBSYSTEM=="pci", KERNEL=="0000:00:02.[1-7]", ATTR{vendor}=="0x8086", ATTR{device}=="0x7d76", DRIVER!="vfio-pci", RUN+="/bin/sh -c 'echo \$kernel > /sys/bus/pci/devices/\$kernel/driver/unbind; echo vfio-pci > /sys/bus/pci/devices/\$kernel/driver_override; modprobe vfio-pci; echo \$kernel > /sys/bus/pci/drivers/vfio-pci/bind'"
EOF
この後、initramfsイメージを更新して、再起動して準備完了。
# update-initramfs -u # reboot再起動後にlspciで詳しく見てみると、ホストが利用する00:02.0にのみi915ドライバが適用され、それ以外の00:02.1などのVFではvfio-pciドライバが使われてホストが勝手に利用しない状態になっています。これで完成。
# lspci -nnk -s 00:02
00:02.0 VGA compatible controller [0300]: Intel Corporation Arrow Lake-S [Intel Graphics] [8086:7d67] (rev 06)
DeviceName: Onboard - Video
Subsystem: Lenovo Device [17aa:337a]
Kernel driver in use: i915
Kernel modules: i915, xe
00:02.1 VGA compatible controller [0300]: Intel Corporation Arrow Lake-S [Intel Graphics] [8086:7d67] (rev 06)
Subsystem: Lenovo Device [17aa:337a]
Kernel driver in use: vfio-pci
Kernel modules: i915, xe
00:02.2 VGA compatible controller [0300]: Intel Corporation Arrow Lake-S [Intel Graphics] [8086:7d67] (rev 06)
Subsystem: Lenovo Device [17aa:337a]
Kernel driver in use: vfio-pci
Kernel modules: i915, xe
00:02.3 VGA compatible controller [0300]: Intel Corporation Arrow Lake-S [Intel Graphics] [8086:7d67] (rev 06)
Subsystem: Lenovo Device [17aa:337a]
Kernel driver in use: vfio-pci
Kernel modules: i915, xe
00:02.4 VGA compatible controller [0300]: Intel Corporation Arrow Lake-S [Intel Graphics] [8086:7d67] (rev 06)
Subsystem: Lenovo Device [17aa:337a]
Kernel driver in use: vfio-pci
Kernel modules: i915, xe
# wget -O /usr/share/kvm/igd.rom https://github.com/LongQT-sea/intel-igpu-passthru/releases/download/v0.1/ARL_MTL_GOPv22_igd.romWindows11ゲストの設定では、
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/Windows11インストールには、ストレージとネットワークの認識が必要になります。
bios: ovmf cpu: host hostpci0: 0000:00:02.1,pcie=1,romfile=igd.rom machine: pc-q35-10.1 ostype: win11Windows11が起動して、Windows Updateが完了すると、自動的に Intel Corporation Driver Update (32.0.101.8132)が導入されて、GPUが利用できるようになります。
これまでのWindows11での注意点をまとめると、
# apt install build-* dkms linux-headers-$(uname -r) # wget -O /tmp/i915-sriov-dkms_2026.03.05_amd64.deb "https://github.com/strongtz/i915-sriov-dkms/releases/download/2026.03.05/i915-sriov-dkms_2026.03.05_amd64.deb" # dpkg -i /tmp/i915-sriov-dkms_2026.03.05_amd64.deb # apt install intel-media-va-driver-non-freeそして、/etc/default/grubのGRUB_CMDLINE_LINUX_DEFAULTを以下のように更新。
# /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_guc=3 module_blacklist=xe"そして、grubとinitramfsを更新して再起動。
# update-grub # update-initramfs -u # reboot再起動後に /dev/dri/で見ると、01:00.0が渡されたGPUなので、/dev/dri/card1と/dev/dri/renderD128が渡したGPUに紐付くデバイスだというのがわかります。
/dev/dri# lspci | grep VGA 00:02.0 VGA compatible controller: Device 1234:1111 (rev 02) 00:10.0 VGA compatible controller: Intel Corporation Arrow Lake-S [Intel Graphics] (rev 06) /dev/dri# ls -Rla .: total 0 drwxr-xr-x 3 root root 120 Feb 27 07:27 . drwxr-xr-x 20 root root 4060 Feb 27 07:27 .. drwxr-xr-x 2 root root 100 Feb 27 07:27 by-path crw-rw---- 1 root video 226, 0 Feb 27 07:27 card0 crw-rw---- 1 root video 226, 1 Feb 27 07:27 card1 crw-rw---- 1 root render 226, 128 Feb 27 07:27 renderD128 ./by-path: total 0 drwxr-xr-x 2 root root 100 Feb 27 07:27 . drwxr-xr-x 3 root root 120 Feb 27 07:27 .. lrwxrwxrwx 1 root root 8 Feb 27 07:27 pci-0000:00:02.0-card -> ../card0 lrwxrwxrwx 1 root root 8 Feb 27 07:27 pci-0000:00:10.0-card -> ../card1 lrwxrwxrwx 1 root root 13 Feb 27 07:27 pci-0000:00:10.0-render -> ../renderD128
# wget -O /tmp/i915-sriov-dkms_2026.03.05_amd64.deb "https://github.com/strongtz/i915-sriov-dkms/releases/download/2026.03.05/i915-sriov-dkms_2026.03.05_amd64.deb" # dpkg -i /tmp/i915-sriov-dkms_2026.03.05_amd64.debすれば完了。Ubuntuゲスト側でも同様に更新することを忘れずに。その後、以下のコマンドで新しいDKMSが導入されていることを確認
# dkms status i915-sriov-dkms/2026.03.05, 6.17.13-1-pve, x86_64: installed (Original modules exist)Secure Bootを有効にしてても既に導入時にMOKを導入しているなら、追加の手順は特に必要ありません。