Ⅰ. はじめに
タイトルの通り「Intel GVT-gを利用してiGPUを仮想化して使用する方法」です。
Ⅲ. やり方
1. OS起動時にロードするカーネルモジュールを設定する
$ vim /etc/modules-load.d/kvm-gvt-g.conf kvmgt vfio_iommu_type1 vfio_mdev
2. GRUBの設定する
$ vim /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="i915.enable_gvt=1 kvm.ignore_msrs=1 intel_iommu=on"
3. GRUBの設定を反映する
update-grub
4. 再起動する
reboot
5. IOMMUが有効になったか確認する
$ dmesg | grep -E "IOMMU|enabled" [ 0.082046] DMAR: IOMMU enabled
6. iGPUのPCIアドレスを確認する
$ apt install pciutils $ lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Desktop)
7. サポートされているmdevデバイスを確認する
$ GVT_PCI=0000\:00\:02.0 $ ls /sys/bus/pci/devices/$GVT_PCI/mdev_supported_types/ i915-GVTg_V5_4 i915-GVTg_V5_8
※mdevデバイスの詳細確認方法
$ cat /sys/bus/pci/devices/$GVT_PCI/mdev_supported_types/i915-GVTg_V5_4/description low_gm_size: 128MB high_gm_size: 512MB fence: 4 resolution: 1920x1200 weight: 4
8. vGPUを作成する
GVT_GUID=$(uuidgen) GVT_PCI=0000\:00\:02.0 GVT_TYPE=i915-GVTg_V5_4 echo "$GVT_GUID" > "/sys/bus/pci/devices/$GVT_PCI/mdev_supported_types/$GVT_TYPE/create"
9. QEMUを起動する
qemu-system-x86_64 \ -hda /root/ubuntu.qcow2 \ -enable-kvm \ -cpu host \ -smp 4 \ -m 8192 \ -boot d \ -vga std \ -net nic \ -k ja \ -device vfio-pci,sysfsdev=/sys/bus/pci/devices/$GVT_PCI/$GVT_GUID,rombar=0
実行結果
仮想マシンでiGPUの認識に成功した