注意,intel gvt-g技术,只支持5代以上桌面CPU或者4代以上服务器CPU。不支持11代以上CPU。J3XXX似乎支持,请自测
第一步:开启主板的虚拟化,这个自行在主板中开启。
第二步:开启PVE的直通功能
开启iommu和GVT-g支持
#开启iommu和gvt内核
#编辑grub
vi /etc/default/grub
在里面找到:GRUB_CMDLINE_LINUX_DEFAULT=”quiet”
然后修改为:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet intel_iommu=on i915.enable_gvt=1″
#update grub
update-grub
!!!注意,如果此方法还不能开启iommu,请修改
/etc/kernel/cmdline文件
并且使用proxmox-boot-tool refresh 更新启动项
加载直通内核模块
echo vfio >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules
echo kvmgt >> /etc/modules
update-initramfs -u
第三步:重启主机
第四步:验证是否开启GVT
ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/ #自觉将00:02换成自己的。
#出现下面4个选项或者类似的即成功。
i915-GVTg_V5_1 i915-GVTg_V5_2 i915-GVTg_V5_4 i915-GVTg_V5_8
第五步:创建虚拟机
新建OVMF EFI虚拟机,把cpu类型设置成HOST。将主板设置成q35。安装好系统,开启远程桌面。关机,将虚拟机显卡设置成无。添加PCIE设备。
如上图所示,注意,看后面的显存。勾选高级里的ROM-BAR和pcie。主GPU不勾选。
开机之后,远程连接上去,安装好驱动即可。在远程桌面设置里,开启remotefx。(开启remotefx教程)。就可以看到显卡正在使用了。注意在连接的时候,一定要把体验设置成LAN
总结
开启简单,但是性能稍微有些弱了一点,GVT-G技术, 并不像s7150/nvidia k1那样,将显卡独立成几个模块,反而是共享显卡的性能。
我开了2个虚拟机,其中一个进行3D测试的时候,另外一台显卡占用竟然满载。
这确实是一个不好的地方,
2021.9.10更新
GVT-G支持4种vgpu模型,最大分辨率为1200P,参考https://wiki.archlinux.org/title/Intel_GVT-g
# ls /sys/devices/pci${GVT_DOM}/$GVT_PCI/mdev_supported_types
i915-GVTg_V5_1 # Video memory: <512MB, 2048MB>, resolution: up to 1920×1200
i915-GVTg_V5_2 # Video memory: <256MB, 1024MB>, resolution: up to 1920×1200
i915-GVTg_V5_4 # Video memory: <128MB, 512MB>, resolution: up to 1920×1200
i915-GVTg_V5_8 # Video memory: <64MB, 384MB>, resolution: up to 1024×768
2021.9.29更新
可参考bilibli视频
https://www.bilibili.com/video/BV1UV411W7gc/
2021.12.29更新
如果参考上面教程,不成功。请确保开启了IOMMU,同时确保pve-blacklist种没有包含i915,参考下面命令。
cat /etc/modprobe.d/* |grep blacklist
如果有i915,请删除这个条目,同时更新内核。重启之后再次确认
update-initramfs -u -k all
在群晖中使用gvt-g
请使用seabios和i440fx安装群晖。
将gvt-g添加到虚拟机上,将下面命令添加到args中。
-set ‘device.hostpci0.addr=0x02’
这个args意思就是将hostpci0的pci地址,设置成0x02。所以注意,请确认自己的gvt-g是在hostpci几,如hostpci2,你就要改一下args,