这篇文章是关于在 GOD78 下的 ESXi 直通 7840HS 核显的教程,其他机型可以参照此法进行适配。
前言: 你可以在我的 FLS Service 找到部分你想要的工具
Step 0. 放通直通
打开 管理 -> 硬件 -> PCI 设备,选中 AMD/ATI 的两个设备,点击切换直通。
Step 1. 获取你机子的 BIOS
你可以选择去官网下、找客服拿、自己提去三种办法。GOD78 由于没有官网,我去找客服要了一份。自己提取的方式可以参考 Reference。
Step 2. 提 AMDGopDriver 与 vbios
- 使用 UBU (UEFI BIOS Updater),把 bios 放到解压出来的文件夹中并运行 UBU.bat,选择 Video OnBoard -> Share files. 即可在 Extract 文件夹找到你的 AMDGopDriver.efi,保存到一个位置。
- 使用 extracter 提取 vbios,保存。或是自己编译,代码于: Jerrita's SCS
Step 3. 合并生成 ROM 文件
参考以下命令,0x15bf 是 7840HS 核显的 id,AMDGopDriver 是你上一步的提取。
# 1. 下载工具
git clone https://github.com/tianocore/edk2-BaseTools-win32 --depth=1
# 2. 合并文件
.\EfiRom.exe -f 0x1002 -i 0x15bf -b .\vbios_1002_15bf.bin -e .\GOP\3.Aug_NoSign\AMDGopDriver.efi -o god78.rom
Step 4. 配置虚拟机
- 把上一步的 rom 文件想办法丢到 ESXi 上
- 在虚拟机页面 编辑 -> 虚拟机选项 -> 高级 -> 配置参数,添加参数如下
hypervisor.cpuid.v0 = FALSE
pciPassthru0.opromEnabled = TRUE
pciPassthru0.filename = /vmfs/volumes/datastore1/utils/god78.rom
vhv.allowPassthru = TRUE
Step 5. 配置宿主机
不知到为什么 ESXi 在你直通后不愿意让你开 CPU 嵌套虚拟化,但是这里可以配置自动启用,来实现 PCI 直通于 CPU 嵌套共存(嵌套虚拟化可以让你开 mumu 挂机手游(x)。
vi /etc/vmware/passthru.map
在后面加上
# AMD GPU
1002 15bf d3d0 default
1002 1640 d3d0 default
接下来配置 /etc/vmware/config
,加上
vhv.enable = "TRUE"
然后重新引导 ESXi 即可。(注意下方对 windows 的内存分配的坑)
Step 6. Fix Reset Bug
每次 win 虚拟机在关机后,都不能正常再次启动,或是启动后 GPU 消失,这是由于 ESXi 在启动机器前后会 reset pci 设备导致的。
你将会使用以上 Repo 进行解决,但是在 win11 中若想直接执行似乎还有很多的步骤。因此我先跳过了此步,以后有时间再把这个补丁打上。毕竟只要我不关机都是无所谓的。就算关机了手动重新引导下 ESXi 就是。
Issues
- 内存分配有坑,8192不行,8200可以; 12288不行,12200可以