Intel GVT-g是一种显卡虚拟化技术,不像PCI-E设备直通,GVT-g可以虚拟出多个虚拟机的GPU,从而有效地在虚拟机中提供接近宿主机的图形性能,而且让宿主机依然正常使用虚拟化的GPU。
一.PVE开启直通功能
1.开启iommu和GVT-g支持
使用SSH工具连接PVE,输入以下命令,修改grub文件
vi /etc/default/grub
在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"行,
修改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_gvt=1"
使用刷新命令,刷新grub
update-grub
2.添加所需的系统模块(驱动)
输入依次以下命令,添加模块(驱动)名单并刷新
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
3.重启宿主机
输入以下命令,重启pve宿主机
reboot
4.验证是否开启GVT
首先查询自己核显值,输入以下命令查询,比如我的是 00:02.0
lspci
输入以下命令检查是否有以下类似文件(00:02.0替换为上步查询的值)
ls /sys/bus/pci/devices/0000:00:02.0/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
核显显存为128M时,支持V5_8一种类型
核显显存为256M时,支持V5_4及V5_8两种类型
核显显存为512M时,支持V5_2、V5_4及V5_8三种类型
核显显存为1024M及以上时,支持所有四种类型
但主板默认一般核显显存最大只分配了256M,导致只能使用 1个 V5_4或 2 V5_8,这两个的性能是非常不够用的,这就需要去BIOS修改显存,有些主板提供了选项可以直接修改,但大部分都没有选项,就需要使用U盘引导EFI shell修改,修改教程参考本文第二章节。
查询宿主机核显显存,输入以下命令,查看Menmory Size行,就可知道现在分配的核显显存大小(00:02.0替换为上步查询的核显值)
lspci -vs 00:02.0
二.BIOS修改核显显存
1.准备工具
1)UEFITool :https://github.com/LongSoft/UEFITool
2)IRFExtractor :https://github.com/LongSoft/Universal-IFR-Extractor
3)EFI shell引导
工具打包在文章尾部
2.修改步骤
1)UEFI Tool导出固件
先自行导出主板现在的固件,或去官网下载与现主板bios版本号一致的BIOS文件。
打开UEFI Tool,选择 File菜单,选择 open image file选项,打开BIOS文件
如果在选择框找不到BIOS文件,切换全部文件。
双击搜索结果,进入查找到的项目,右击项选择 Extract body,导出并保存
2)IRFExtractor查找偏移地址
打开 IRFExtractor软件,选择上一步另存的 .efi文件后,单击 Extract按钮导出并保存 .txt文件
使用文本编辑器软件,打开这个 txt文件,搜索 aperture
搜索结果 VarStoreInfo (VarOffset/VarName): 0x86B中的 0x86B就是调整核显显存的偏移值。
下面就是可供选择的几个选项,比如我这个默认核显显存是256M,选项值为 0x1
记录主板的显存偏移值,与显存大小选项值
3) 制作EFI shell引导盘并修改设置
1.EFI shell的U盘制作
准备一个空U盘,格式化成FAT32格式,放入EFI shell引导文件
放入目录为 U盘根目录/EFI/BOOT/bootx64.efi
重启电脑,选择U盘引导,进入grub命令行。
2.修改核显显存设置
验证一下偏移地址,输入 setup_var_3 记录主板的显存偏移值,例如我的偏移值是 0x86B,这里就输入 setup_var_3 0x86B ,默认情况下最后一行会返回的默认的选项值,比如我的是 is:0x1即默认的显存256M。
然后输入 setup_var 显存偏移值 显存大小选项值,将 显存大小修改为选项对应的显存大小
比如我的偏移值是 0x86B,显存大小选项值 0x7即显存1G,就输入以下命令
setup_var 0x86B 0x7
可以在输入 setup_var_3 记录主板的显存偏移值,确认修改结果。
然后输入 reboot重启即可生效。
如无意外情况,在进入PVE界面即可看到vgpu的选项增加到4个了
注:如果出现EFI shell修改后无法正常开机,或出现其他问题可扣掉主板电池放电,还原主板设置即可正常
文章末尾固定信息
























