PVE开启显卡虚拟化intel GVT-g
时间:2023-02-27 10:34 来源:https://foxi.buduanwang.vip 作者:佛西
搞了个自动配置脚本,2步快速执行,脚本对zfs和btrfs启动的支持有问题,请勿用。
-
wget https://fastly.jsdelivr.net/gh/jiangcuo/foxi/gvtg.sh
-
bash gvtg.sh
终于搞到了一台实验机子。本次实验环境为
PVE: 6.2 CPU: g5400 主板: 铭瑄h110
注意,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 1920x1200
i915-GVTg_V5_2 # Video memory: <256MB, 1024MB>, resolution: up to 1920x1200
i915-GVTg_V5_4 # Video memory: <128MB, 512MB>, resolution: up to 1920x1200
i915-GVTg_V5_8 # Video memory: <64MB, 384MB>, resolution: up to 1024x768
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,
(责任编辑:IT)
搞了个自动配置脚本,2步快速执行,脚本对zfs和btrfs启动的支持有问题,请勿用。
终于搞到了一台实验机子。本次实验环境为 PVE: 6.2 CPU: g5400 主板: 铭瑄h110
注意,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 第三步:重启主机第四步:验证是否开启GVTls /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 1920x1200 i915-GVTg_V5_2 # Video memory: <256MB, 1024MB>, resolution: up to 1920x1200 i915-GVTg_V5_4 # Video memory: <128MB, 512MB>, resolution: up to 1920x1200 i915-GVTg_V5_8 # Video memory: <64MB, 384MB>, resolution: up to 1024x768 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, |