平台支持:官方表示支持5代、6代、7代CPU集显
实验十代10600K也可以开启,十一代开始加入了咖喱味的Xe不再支持,换成sriov方式支持。
vGPU type
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
四种类型,不同的显存,支持的类型有限制。
aperture size为128M时,支持V5_8一种类型
aperture size为256M时,支持V5_4及V5_8两种类型
aperture size为512M时,支持V5_2、V5_4及V5_8三种类型
aperture size为1024M及以上时,支持所有四种类型
绝大多数主板,BIOS中开放出来的显存设置项为DVMT动态显存划分,并没有开放aperture size设置,默认为256M。
建议联系主板厂商技术支持获取相应支持。
网上修改nvram的方法如下:
1.获取主板BIOS文件,下载UEFI tool https://github.com/LongSoft/UEFITool
2.用该工具打开BIOS文件,并搜索aperture size,右键保存
3.下载IFR Extractor工具 https://github.com/donovan6000/Universal-IFR-Extractor,打开刚才保存的文件,找到aperture size,记录偏移量
4.下载EFI文件,格式化U盘为FAT32,文件夹结构EFI/BOOT/bootx64.efi https://github.com/datasone/grub-mod-setup_var
华擎主板需要下载使用这个EFI文件 https://github.com/XDleader555/grub_setup_var (已验证)
5.U盘启动进EFIshell环境,运行命令修改参数。
此方法扣掉电池可还原
Host linux设置
$ sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu=pt rd.driver.pre=vfio_pci,kvmgt i915.enable_gvt=1"
更新grub
$ sudo touch /etc/dracut.conf.d/vfio.conf ///创建配置文件
$ sudo vi /etc/dracut.conf.d/vfio.conf ///将以下一行写入配置文件
add_drivers+=" vfio vfio_pci vfio_virqfd vfio_iommu_type1 vfio_mdev kvmgt " ///注意引号之间需有空格
更新initramfs
创建mdev设备
$ uuidgen ///随机生成uuid
$ sudo echo "uuid" > "/sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_x/create" ///根据vgpu类型创建
此方法为临时创建,host系统重启后失效。
可采用定时任务在每次开机时自动创建设备
# crontab -e
@reboot echo "uuid" > "/sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_x/create"
直通虚拟机
libvirt xml
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='off'>
<source>
<address uuid='uuid'/>
</source>
</hostdev>
启动虚拟机之后,可用rdp等远程连接工具连接。
相关问题
1.图像输出
除了RDP远程连接,也可以采用DMA-BUF方式将图像通过spice EGL显示,具体参见https://wiki.archlinux.org/title/Intel_GVT-g
2.macos相关
由于vgpu给到虚拟机的pci id与物理集显相同,尝试macos下使用,失败。由于vgpu缺乏固件,需要修改虚拟机显卡驱动程序。