主要借阅以下文章和群友指引得出以下方式

参照: D大的 <<更新 BIOS 内置的 Intel 核显 vBIOS 和 GOP>>)

VLOG | 硬核精华零成本PVE下如何提取核显VBIOS

PVE直通核显搭建虚拟Win10 HTPC避坑指南 - 十佳测评 (10bests.com)

准备

1.去主板所在官网下载对应主板BIOS文件。

oS45cj.png

2.下载UEFITool工具 我使用v0.22.4

3.编译官方提供的核显rom修复工具。(ssh进入PVE后台,输入以下指令)

git clone https://github.com/awilliam/rom-parser
cd rom-parser
make

步骤

1.用UEFITool打开BIOS文件,打开搜索框(按Ctrl+F或者File->Search),在 Body 内搜索 HEX Pattern “2456425420”,如图所示
其实这个字符串就是“$VBT ”(ASCII),Intel 的 VBT 的固定开头就是这个

oSI5mn.png

2.鼠标双击每一行 found 的提示,都能定位到对应的模块,将其 Body 提取(鼠标右键点击弹出菜单后选 Extract body )
保存的文件名和扩展名你随意发挥,不影响操作,建议文件名保存为对应的 GUID(你双击定位过去之后看到的就是GUID),扩展名保存为 BIN,免得弄混了。

oSILpF.png

3.搜到的两个found项目,判断哪个是 vBIOS文件? 导出大小为64k文件。

4.把得到的64k大小的文件修改为vbios1.bin文件名方便使用。上传至root目录下的rom-parser文件夹目录内。

oSoKtf.png

执行以下命令

cd rom-parse
./rom-parser vbios1.rom

oSTfZn.png

这里会发现我们导出的核显rom 硬件设备ID为8086:0406, 这个是存在问题的,通过之前的步骤我们查询到的核显设备ID应该为8086:3e9b,这个才是正确的,所以我们要借助rom-parser编译出来的修复文件进行修复 (执行 lspci -n -s 00:02 查询核显id)

修复核显ROM的设备通道ID

cd rom-parser
./rom-fixer vbios1.rom

oSTLL9.png

到此vbios文件修复完成,pve放入usrsharekvm 目录下

直通windows 在 /etc/pve/qemu-server/100.conf 文件内修改

args: -device vfio-pci,host=00:02.0,addr=0x18,x-igd-opregion=on,romfile=vbios1.bin

或者

args: -device vfio-pci,host=00:02.0,addr=0x18,x-igd-gms=1,romfile=vbios1.rom

还有

addr可能平台不一样这个id可能是0x02. 还有的11代平台不知道了,自寻研究。

Last modification:November 23rd, 2021 at 04:10 pm
如果觉得我的文章对你有用,请随意赞赏