PVE开启GVT-g和修改BIOS核显显存的记录

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

image-20210927234412324

输入以下命令检查是否有以下类似文件(00:02.0替换为上步查询的值)

ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/

image-20210927235032239

如图我有四个文件,这四个分别对应不同的分辨率与核显显存。关系如下

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修改,修改教程参考本文第二章节。

image-20210928085920702

查询宿主机核显显存,输入以下命令,查看Menmory Size行,就可知道现在分配的核显显存大小(00:02.0替换为上步查询的核显值)

lspci  -vs 00:02.0

image-20210928090446823

二.BIOS修改核显显存

1.准备工具

1)UEFITool

2)IRFExtractor

3)EFI shell引导

打包下载链接:本地链接

2.修改步骤

1)UEFI Tool导出固件

先自行导出主板现在的固件,或去官网下载与现主板bios版本号一致的BIOS文件。

打开UEFI Tool,选择 File菜单,选择 open image file选项,打开BIOS文件

image-20210928092420154

如果在选择框找不到BIOS文件,切换全部文件。

image-20210928092703210

打开 Actinon菜单,选择 Search,切换到 text选项卡,搜索 aperture size

image-20210928092800731

双击搜索结果,进入查找到的项目,右击项选择 Extract body,导出并保存

image-20210928093148705

image-20210928093337126

2)IRFExtractor查找偏移地址

打开 IRFExtractor软件,选择上一步另存的 .efi文件后,单击 Extract按钮导出并保存 .txt文件

image-20210928232135259
image-20210928232545276

使用文本编辑器软件,打开这个 txt文件,搜索 aperture

image-20210928233226278

搜索结果 VarStoreInfo (VarOffset/VarName): 0x86B中的 0x86B就是调整核显显存的偏移值。

image-20210928233455934

下面就是可供选择的几个选项,比如我这个默认核显显存是256M,选项值为 0x1

image-20210928234400404

记录主板的显存偏移值,与显存大小选项值

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个了

image-20210929114744225

注:如果出现EFI shell修改后无法正常开机,或出现其他问题可扣掉主板电池放电,还原主板设置即可正常

原创文章,作者:VAY冬冬,如若转载,请注明出处:https://blog.vay1314.top/archives/220

Like (0)
VAY冬冬的头像VAY冬冬
Previous 2021年9月9日
Next 2021年11月9日

相关推荐

0 0 投票数
文章评分
订阅评论
提醒
guest
2 评论
最旧
最新 最多投票
内联反馈
查看所有评论
DDD

看不懂,弄好了直接邮寄给我可以么→_→