amd全系列7940 7840 5500等unraid核顯直通簡(jiǎn)單教程
前言:
2023年9月10的時(shí)候我發(fā)過(guò)下面這篇文章:
amd全系列7940 7840 5500等pve核顯直通簡(jiǎn)單教程(不定制ovmf了
和2023年7月31的時(shí)候我發(fā)過(guò)下面這篇文章:
amd全系列7940 7840 5500 等bios和核顯vbios提取并 核顯直通win10教程 出bios啟動(dòng)畫(huà)面
(以下簡(jiǎn)稱(chēng)上面兩篇教程為以前的教程)
想了下,unraid和pve既然同源kvm,很多思路也參考了unraid的一些教程,要不也把unraid核顯直通教程也做了算了。
先廢話(huà)幾句:
amd核顯直通win10可以直接參考這個(gè)教程。今天我就寫(xiě)簡(jiǎn)單點(diǎn),細(xì)節(jié)之處可以看上面我以前的教程。我這里還是以 天寶wtr 5500u 舉例。5500u在unraid下睿頻完美,虛擬機(jī)跑分美麗。
因我的5500u使用todesk遠(yuǎn)程我老是覺(jué)得有點(diǎn)卡頓,突然有一天我測(cè)了虛擬機(jī)的cpu-z,發(fā)現(xiàn)多核跑不了1000分,然后我就把pve,unraid,esxi全部測(cè)試了一圈,這里有必要廢話(huà)一下三個(gè)平臺(tái)虛擬機(jī)跑分效果,以免你也是amd cpu,也遇上這個(gè)問(wèn)題:



5500u受限于pve的只要核顯直通他就睿頻不上去,我從多核跑分1000--1300--2087再也優(yōu)化不動(dòng)了(具體就是上amd_pstate調(diào)速器,怎么優(yōu)化這個(gè)跑分明顯都不正常),unraid直接3259(而且還能核顯直通),esxi直接3688(但是不能核顯直通)。建議直接選擇unraid作為5500u的底層系統(tǒng)。如果你是amd更高版本的核顯u,請(qǐng)一定測(cè)一下虛擬win的cpu-z跑分和物理win下跑分對(duì)比是否正常,不正常就是睿頻調(diào)頻問(wèn)題?。。。∴嵵靥嵝補(bǔ)md用戶(hù)要注意測(cè)一下?。?!估計(jì)是核顯直通功率分配原因吧。
目前我發(fā)現(xiàn)Pve即使你換成amd_pstate調(diào)頻,可以最高4.06ghz全核睿頻的,但是一開(kāi)win虛擬機(jī)帶核顯直通,他就掉頻率到基礎(chǔ)頻率2.1ghz,你只要把win虛擬機(jī)關(guān)了,又全部最高睿頻4.06ghz了。這是個(gè)bug,pve下無(wú)法解決。

unraid如果你在這個(gè)插件(Tips and Tweaks 插件)中設(shè)置不超頻。cpu-z撐死也只有跑1800-2000之間哈。安裝不安裝這個(gè)插件都不影響跑分的。
正文開(kāi)始:
適用于所有bios沒(méi)有csm選項(xiàng)的機(jī)器,unraid只能采用ovmf+q35進(jìn)行虛擬機(jī)核顯直通。支持amd核顯cpu全系列。
第一部分:準(zhǔn)備工作
1、unraid環(huán)境。這個(gè)隨意版本(我用的最新版Version: 6.12.4,你的不要太舊)。請(qǐng)確認(rèn)你的amd主機(jī)bios默認(rèn)已經(jīng)開(kāi)了虛擬化svm, iommu等,沒(méi)開(kāi)需要自己手動(dòng)打開(kāi)一下。
unraid需要有個(gè)陣列才能開(kāi)虛擬機(jī),以及保存硬盤(pán)開(kāi)機(jī)后啟動(dòng)這些設(shè)置,這個(gè)你自己弄好就是。最終確保VMS那打開(kāi)沒(méi)錯(cuò)誤就行。安裝unraid,配置存儲(chǔ)池,格式化硬盤(pán),設(shè)置硬盤(pán)開(kāi)機(jī)使用,以及如何開(kāi)ssh,使用什么unraid,如何授權(quán)等這些問(wèn)題你解決就是,這里不再敘述。

2、提取物理機(jī)bios和核顯vbios,得到AMDGopDriver.rom和vbios_1002_xxxx.bin這兩個(gè)文件
這個(gè)可以詳細(xì)參考我以前的教程,這里我只簡(jiǎn)略描述一下
2.1 下載你機(jī)器的bios,如果找不到bios哪兒下載,那就用AMI bios這個(gè)軟件提取
2.2 使用ubu處理bios,導(dǎo)出AMDGopDriver.efi?
UBU 1.79.17下載地址:https://pan.baidu.com/s/1pD7NqJoOThQawJw59NyTHQ 提取碼: ivwk
2.3 使用edk2-BaseTools-win32-master工具 把AMDGopDriver.efi 轉(zhuǎn)為AMDGopDriver.rom
edk2-BaseTools-win32-master下載地址?
https://github.com/tianocore/edk2-BaseTools-win32
?之間打包下載他的zip就是了,他沒(méi)有Releases
然后解壓,進(jìn)入他的目錄后用cmd或者powershell在里面輸入下面命令:
.\EfiRom.exe -f 0x1002 -i 0xffff -e D:\下載\AMDGopDriver.efi
使用這個(gè)命令進(jìn)行轉(zhuǎn)換,1002是amd生廠商標(biāo)識(shí)。-i 0xffff這個(gè)是產(chǎn)品id,這個(gè)隨便四位十六進(jìn)制都行(不需要寫(xiě)具體對(duì)應(yīng)顯卡編號(hào)哈),你就會(huì)得到AMDGopDriver.rom
2.4 使用xi4oyu的源代碼 編譯后導(dǎo)出vbios文件
https://forum.proxmox.com/threads/have-anyone-susscesfully-passthroughed-the-igpu-amd-radeon-680m-to-vm.119178/
中#11樓 xi4oyu的代碼 或者以前的教程中我貼的源碼?
然后運(yùn)行這三行就出來(lái)vbios
nano vbios.c?
gcc vbios.c -o vbios
./vbios運(yùn)行就出來(lái)你想要的核顯vbios文件了
這個(gè)你不想編譯可以直接pve群去群共享下載直接運(yùn)行就是,qq群號(hào):904754537(1群已滿(mǎn)),102166071(請(qǐng)加2群),我不是群主哈

我5500u運(yùn)行該編譯出來(lái)的vbios文件,導(dǎo)出的vbios文件名為vbios_1002_164c.bin,你的類(lèi)似vbios_1002_xxxx.bin這個(gè)名字,xxxx為具體顯卡id哈。
準(zhǔn)備工作結(jié)束,你得到了AMDGopDriver.rom和vbios_1002_xxxx.bin這兩個(gè)文件,請(qǐng)把他們兩個(gè)用winscp(或者命令)拷貝到比如 /mnt/disk1 這個(gè)目錄(這個(gè)你隨意)

開(kāi)ssh在Settings->ManagementAccess 的Use SSH: yes中開(kāi)啟

第二部分:正式操作
1、虛擬機(jī)設(shè)置設(shè)置如下屬性:
SETTINGS→VM?Manager→ADVANCED?VIEW
(中文版:設(shè)置→虛擬機(jī)管理器,然后點(diǎn)一下右邊的高級(jí)視圖)
PCIe?ACS?override: Muti function?或者Both 都可以
VFIO?allow?unsafe?interrupts:?Yes

2、準(zhǔn)備好win安裝光盤(pán)iso并上傳比如下面目錄 /mnt/user/isos

3、強(qiáng)制核顯和hdmi聲卡為vfio-pci.設(shè)備
前往TOOLS→System Devices
(中文版:工具→系統(tǒng)設(shè)備)
把核顯和hdmi聲卡設(shè)備勾上,然后綁定


4、請(qǐng)重啟一下unraid(這個(gè)必做一下)
5、新建win10虛擬機(jī)

對(duì)于里面配置,注意以下幾點(diǎn):
ovmf+q35
安裝iso優(yōu)先級(jí)為1,硬盤(pán)為2
要加載2個(gè)rom



圖形化操作完成以后,需要用winscp進(jìn)入/etc/libvirt/qemu這個(gè)目錄

對(duì)Windows 10.xml(根據(jù)你的情況決定是哪一個(gè)文件)進(jìn)行修改根據(jù) <rom file='/mnt/disk1/vbios_1002_164c.bin'/>類(lèi)似
在第二個(gè)pci設(shè)備</source>后面加這樣一行
<rom file='/mnt/disk1/AMDGopDriver.rom'/>

然后保存。如果你后面圖形化修改過(guò)虛擬機(jī)配置,這一行<rom file='/mnt/disk1/AMDGopDriver.rom'/>會(huì)被刪掉的,只有你重新加入一下。
20231005更新:鑒于多個(gè)rom在unraid平臺(tái)使用太麻煩,我找到了多個(gè)rom 多個(gè)efi合并轉(zhuǎn)換成1個(gè)rom的方法,具體請(qǐng)看下面這篇文章

就這樣一行命令簡(jiǎn)單合并轉(zhuǎn)化出來(lái)1個(gè)rom,unraid圖形化設(shè)置界面顯卡那就選擇這個(gè)5500u.rom就是了。如果不能直通,你把-f -i 后面編號(hào)改為真實(shí)編號(hào)比如:-f 0x1002 -i 0x164c
這里我貼一下我的所有配置內(nèi)容,大家可以參考
6、啟動(dòng)虛擬機(jī)并安裝win10系統(tǒng)


7、安裝完成系統(tǒng)以后,安裝網(wǎng)卡驅(qū)動(dòng),核顯驅(qū)動(dòng),并打reset bug補(bǔ)丁
如果你選了virtIO,光驅(qū)里面安裝下驅(qū)動(dòng)就是
核顯的驅(qū)動(dòng)可以windows更新打,也可以官網(wǎng)下載安裝
貼一個(gè)核顯直通后的效果圖

打補(bǔ)丁(不完美解決amd gpu passthrough rest bug問(wèn)題)
下載RadeonResetBugFixService這個(gè)軟件0.17版本,下載地址:https://github.com/inga-lovinde/RadeonResetBugFix/releases
下載解壓放在c盤(pán)根目錄,cmd管理員模式下運(yùn)行RadeonResetBugFixService.exe install
等服務(wù)安裝完成后,就可以隨便關(guān)閉win10虛擬機(jī)了,就可以正常開(kāi)機(jī)win10虛擬機(jī)了。?
建議除了啟動(dòng)虛擬機(jī)在unraid的web操作點(diǎn)開(kāi)啟,其他重啟、關(guān)機(jī)的操作在虛擬機(jī)win10里面去操作(不要在unraid?web上操作)。?
8、完工
貼一個(gè)雙烤畫(huà)面

第三部分:后記
1、2個(gè)rom合并為1個(gè)rom加載給核顯,這個(gè)留給網(wǎng)友實(shí)現(xiàn)。應(yīng)該不難!?。。?!這個(gè)已經(jīng)實(shí)現(xiàn)更新在本文中了?。?!
2、unraid反虛擬化檢測(cè)玩游戲,這個(gè)也留給網(wǎng)友自我折騰,應(yīng)該也不難?。。。?!