原文:https://jerrita.cn/archives/62/
實在是因為原文網站故障導致無法正常閱讀文章,只能轉載展現,原作者請諒解,謝謝!
之前在研究ESXI下怎麼實現AMD核顯直通,沒想到有如此多的門道,以下為原文轉載,隻字未改。
============================================================
這篇文章是關於在 GOD78 下的 ESXi 直通 7840HS 核顯的教程,其他機型可以參照此法進行適配。
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. 配置虛擬機器
把上一步的 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 裝置導致的。
- GitHub - inga-lovinde/RadeonResetBugFix: Radeon Reset Bug fix service
你將會使用以上 Repo 進行解決,但是在 win11 中若想直接執行似乎還有很多的步驟。因此我先跳過了此步,以後有時間再把這個補丁打上。畢竟只要我不關機都是無所謂的。就算關機了手動重新引導下 ESXi 就是。
Issues
記憶體分配有坑,8192不行,8200可以; 12288不行,12200可以
References
- amd全系列7940 7840 5500 等bios和核顯vbios提取pve核顯直通win10教程 出bios啟動畫面 - 嗶哩嗶哩
- esxi8.0 amd核顯直通失敗教程,寫給大家借鑑參考(比如獨顯和intel11-14代核顯使用) - 嗶哩嗶哩