amd全系列7940 7840 5500 等bios和核顯vbios提取并 核顯直通win10教程
amd核顯直通win10可以參考這個教程。
我這里以5500u舉例,5500u無csm兼容選項,適用于所有bios沒有csm選項的機器,pve只能采用ovmf+q35進行虛擬機核顯直通。
只需要以下步驟:
一、準備工作:
1、pve環(huán)境8。請確認你的amd主機bios默認已經開了虛擬化svm, iommu等,沒開需要自己手動打開一下。
如何安裝pve8,可以下載pve8的iso文件后,直接拷貝進入ventoy啟動盤里面。ventoy如何弄參考我以前的教程 。

2、提取bios和核顯vbios
2.1如果你的機器官網提供bios下載,請直接下載就是(無需提取機器的bios)
2.2如果你的機器官網不提供bios下載(或者你就是找不到),那就老老實實需提取機器bios了
請用下面這一篇文章中的AFUWIN5.12(win10完美運行)在win10系統(tǒng)上對主機提取bios
win10親測可用!AMI bios(ami固件)提取工具AFUWIN分享


把存儲的bios拷貝進ubu軟件目錄下就是
UBU 1.79.17下載地址:https://pan.baidu.com/s/1pD7NqJoOThQawJw59NyTHQ?提取碼: ivwk




接下來,在ubu目錄下分別有個GOP和VBIOS文件夾里面分別有efi文件和dat文件。5系列的核顯這兩個文件夾下都有東西而且完美,6系列和7系列估計只有一個efi文件。




在pve下執(zhí)行:lspci -nnk | grep VGA 查看當前核顯編號是多少,我這里是164c。和我bios導出的1638有差異,估計是可以使用的,如果你那無法使用,請多更換嘗試一下其他dat。盡量兩個編號一致。
vbios_1638.dat 這個文件核顯直通要用
如果6系列7系列cpu的vbios dat文件用UBU提取不出來或者提取出來不能用,請參考教程:
https://forum.proxmox.com/threads/have-anyone-susscesfully-passthroughed-the-igpu-amd-radeon-680m-to-vm.119178/
中#11樓?xi4oyu的代碼?,復制張貼進vbios.c?
gcc?vbios.c?-o?vbios
./vbios運行就出來你想要的vbios文件了

現(xiàn)在所有準備工作就緒!
二、正式操作? 關于nano編輯問價后
1、執(zhí)行命令:nano /etc/default/grub
在里面加入以下內容
GRUB_CMDLINE_LINUX_DEFAULT="quiet? initcall_blacklist=sysfb_init"
解釋:initcall_blacklist=sysfb_init 屏蔽掉pve7.2以上的一個bug,方便啟動時候就屏蔽核顯等設備驅動。這里說明一下,pve8的grub里面不需要加入amd_iommu=on (開啟iommu) pcie_acs_override=downstream,multifunction (強制iommu分組)這些參數(shù),好像默認就開啟了一樣。
2、執(zhí)行命令:update-grub
3、執(zhí)行命令:nano /etc/modprobe.d/pve-blacklist.conf
在里面加入
blacklist nvidiafb
blacklist amdgpu
blacklist i915
blacklist snd_hda_intel
options vfio_iommu_type1 allow_unsafe_interrupts=1
解釋:屏蔽三大顯卡驅動,屏蔽hdmi聲音驅動;options vfio_iommu_type1 allow_unsafe_interrupts=1? 允許不安全的設備中斷
4、執(zhí)行命令:update-initramfs -u -k all
解釋:更新initramfs。
5、執(zhí)行命令:reboot
接下來你就可以直通核顯了。
6、OVMF中添加AMDGopDriver.efi得到自己的OVMF.fd 定制bios
????6.1 https://github.com/pbatard/ffs/releases 這個軟件用于efi文件轉ffs 比如把AMDGopDriver.efi轉AMDGopDriver.ffs 我估計intel的11-13代核顯也可以這樣轉ffs來加入得到定制bios(以后有空再試)


請把前面導出的AMDGopDriver.efi拷貝進ffs文件夾中,在cmd中運行
GenMod.cmd AMDGopDriver.efi 就能得到一個AMDGopDriver.ffs 文件,這個文件是用來添加進自定義bios使用的
????6.2 把pve里面的OVMF_CODE.fd拷貝出來到本地
用winscp軟件等,進入/usr/share/pve-edk2-firmware 目錄,把里面的1.87M的OVMF_CODE.fd拷貝到本地,如果要用到安全引導,下載帶sec...的個就是

????6.3 重頭戲,AMDGopDriver.ffs加入OVMF_CODE.fd
下載MMTool V5.07 中文免費版? http://www.downxia.com/downinfo/284655.html 到本地并解壓運行

OVMF_CODE.fd把他加載鏡像到MMTool中,把AMDGopDriver.ffs插入到模塊中,最后另存鏡像為OVMF.fd,這個文件核顯直通要用
7、直通虛擬機環(huán)境設置
在創(chuàng)建win10虛擬機里面請選擇默認 (ovmf),q35 7.2版本以上機型,cpu為host,其他保持默認設置
在添加顯卡pcie設備里面勾選主gpu,rom-bar,pcie-express這三個選項,并對所有功能不勾選。顯示設置為無 none。

并同時添加負責聲音的pcie設備
如果你的bios閹割了csm兼容選項,那只能用ovmf的虛擬機直通顯卡
手動修改虛擬機參數(shù)。
執(zhí)行命令
nano /etc/pve/qemu-server/101.conf
101是你需要直通的windows虛擬機
刪除 bios: ovmf 這一列,代表不使用pve自帶的bios
增加一行 args: -bios /root/OVMF.fd? ?OVMF.fd?需要在第6步中自己弄出來,它可以直通看見bios啟動畫面
修改這一行為這樣 hostpci0: 0000:06:00.0,pcie=1,romfile=vbios_1638.dat,x-vga=1? vbios_1638.dat是自己提取的vbios文件,用于啟動核顯使用。dat文件你可以嘗試更換其他dat,直到核顯不43錯誤。這個在準備工作中自己提取出來。
配置參照我這下面關鍵內容:
agent: 1
args: -bios /root/OVMF.fd
boot: order=sata0;ide2;net0
cores: 12
cpu: host
efidisk0: local-lvm:vm-101-disk-1,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:06:00.0,pcie=1,romfile=vbios_1638.dat,x-vga=1
hostpci1: 0000:06:00.1
machine: pc-q35-8.0
vga: none
OVMF.fd?請放在root目錄下。

vbios_1638.dat請放在/usr/share/kvm/ 目錄下。

怎么放,用winscp之類的軟件哈。
8、安裝win10系統(tǒng)
正常用iso文件安裝windows并把amd驅動安裝上,不要重啟電腦。這個不廢話了。
9、打補丁(不完美解決amd gpu passthrough rest bug問題)
下載RadeonResetBugFixService這個軟件0.17版本,下載地址:https://github.com/inga-lovinde/RadeonResetBugFix/releases
下載解壓放在c盤根目錄,cmd管理員模式下運行RadeonResetBugFixService.exe install
等服務安裝完成后,就可以隨便關閉win10虛擬機了,就可以正常開機win10虛擬機了。
10、已知問題?
amd gpu passthrough rest bug問題
如果虛擬機沒有安裝amd顯卡驅動,pve管理界面可以隨便重啟關機停止。
一旦安裝上了amd顯卡驅動,不管是win10自己更新安裝的驅動還是自行下載安裝amd官網的驅動還是安裝主板廠商網站下載的顯卡驅動,都會存在win10虛擬機重啟就再也不出畫面問題。只能依靠安裝RadeonResetBugFixService這個軟件不完美解決這個問題。安裝這個軟件后可以正常重啟和關機(需要開機后等個2分鐘以上等RadeonResetBugFixService服務啟動并運行中才能正常重啟或者關機虛擬機。本人盯著服務列表看總感覺這個服務啟動比較慢,先是啟動中然后慢慢變成運行中),不管是虛擬機里面還是pve管理界面,但是管理界面不能點停止,點了就只有重啟整個物理機了才能重來了。
RadeonResetBugFixService這個軟件在重啟win10虛擬機的時候會有1-2分鐘無畫面狀態(tài),等系統(tǒng)自動重新安裝了顯卡驅動后就會一下顯示出來win10畫面,對遠程比如rdp,todesk沒有影響。RadeonResetBugFixService這個軟件的原理是,在關機的時候自動卸載顯卡,保持一個基本顯示器以便下一次可以正常開機。
另外就是只有物理機開機后第一次開虛擬機可以看見核顯直通的bios畫面,后面你重啟虛擬機或者關機后開啟虛擬機,都會黑屏1分鐘,直接一下就蹦出來win10畫面,估計跟amd reset bug有關。不影響使用哈。
不需要/etc/modules 手動添加以下四個模塊
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
不需要獲取核顯id并綁定核顯設備為vfio_pci
不要開win10的休眠、睡眠功能,還有pve管理界面的虛擬機休眠、停止功能,開了直通會恢復不過來,只有重啟物理機才可以解決
如果遇到pve的管理網頁卡死了,那就重啟物理機吧?
最后發(fā)張5500u核顯直通后的效果圖
