这篇文章是关于在 GOD78 下的 ESXi 直通 7840HS 核显的教程,其他机型可以参照此法进行适配。

前言: 你可以在我的 FLS Service 找到部分你想要的工具

Step 0. 放通直通

打开 管理 -> 硬件 -> PCI 设备,选中 AMD/ATI 的两个设备,点击切换直通。

Step 1. 获取你机子的 BIOS

你可以选择去官网下、找客服拿、自己提去三种办法。GOD78 由于没有官网,我去找客服要了一份。自己提取的方式可以参考 Reference。

Step 2. 提 AMDGopDriver 与 vbios

  1. 使用 UBU (UEFI BIOS Updater),把 bios 放到解压出来的文件夹中并运行 UBU.bat,选择 Video OnBoard -> Share files. 即可在 Extract 文件夹找到你的 AMDGopDriver.efi,保存到一个位置。
  2. 使用 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. 配置虚拟机

  1. 把上一步的 rom 文件想办法丢到 ESXi 上
  2. 在虚拟机页面 编辑 -> 虚拟机选项 -> 高级 -> 配置参数,添加参数如下
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可以

References

Last modification:November 20, 2023
如果觉得我的文章对你有用,请随意赞赏