欢迎光临散文网 会员登陆 & 注册

amd全系列7940 7840 5500 等bios和核显vbios提取并 核显直通win10教程

2023-07-31 23:02 作者:bili_29515820169  | 我要投稿

amd核显直通win10可以参考这个教程。

我这里以5500u举例,5500u无csm兼容选项,适用于所有bios没有csm选项的机器,pve只能采用ovmf+q35进行虚拟机核显直通。

只需要以下步骤:

一、准备工作:

1、pve环境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系统上对主机提取bios

win10亲测可用!AMI bios(ami固件)提取工具AFUWIN分享

在win10上运行这个软件点“储存”就能获取物理机的bios文件

把存储的bios拷贝进ubu软件目录下就是

UBU 1.79.17下载地址:https://pan.baidu.com/s/1pD7NqJoOThQawJw59NyTHQ 提取码: ivwk

我这里导出的是5500u的bios,并放进UBU文件夹内 名为5500u bios.bin
运行UBU.bat后的显示内容(如果显示卡住不动的话多敲两次回车或者空格就是)
输入2 选择核显并回车
输入S回车导出vbios

接下来,在ubu目录下分别有个GOP和VBIOS文件夹里面分别有efi文件和dat文件。5系列的核显这两个文件夹下都有东西而且完美,6系列和7系列估计只有一个efi文件。



GOP和VBIOS文件夹
AMDGopDriver.efi 用于加入pve的ovmf中,得到定制ovmf,核显直通的时候出bios画面使用
dat文件用于在win10系统中正确驱动核显(不显卡43错误)注意:1638是核显的编号,这个需要一一对应,不同核显编号不一样。
在pve下查看当前机器核显的编号是多少

在pve下执行: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文件了

6系7系amd 核显cpu vbios dat导不出请用这个办法


现在所有准备工作就绪!


二、正式操作  关于nano编辑问价后

1、执行命令: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分组)这些参数,好像默认就开启了一样。

2、执行命令:update-grub


3、执行命令: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、执行命令:update-initramfs -u -k all

解释:更新initramfs。


5、执行命令: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(以后有空再试)

点这个下载ffs到本地并解压
在ffs文件夹中cmd中运行GenMod.cmd AMDGopDriver.efi 得到ffs文件

请把前面导出的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...的个就是

用winscp等软件把这个文件拷贝下来

    6.3 重头戏,AMDGopDriver.ffs加入OVMF_CODE.fd


下载MMTool V5.07 中文免费版  http://www.downxia.com/downinfo/284655.html 到本地并解压运行


定制bios

OVMF_CODE.fd把他加载镜像到MMTool中,把AMDGopDriver.ffs插入到模块中,最后另存镜像为OVMF.fd,这个文件核显直通要用


7、直通虚拟机环境设置

在创建win10虚拟机里面请选择默认 (ovmf),q35 7.2版本以上机型,cpu为host,其他保持默认设置

在添加显卡pcie设备里面勾选主gpu,rom-bar,pcie-express这三个选项,并对所有功能不勾选。显示设置为无 none。

并同时添加负责声音的pcie设备

如果你的bios阉割了csm兼容选项,那只能用ovmf的虚拟机直通显卡

手动修改虚拟机参数。

执行命令

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系统

正常用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分钟无画面状态,等系统自动重新安装了显卡驱动后就会一下显示出来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的管理网页卡死了,那就重启物理机吧 


最后发张5500u核显直通后的效果图



amd全系列7940 7840 5500 等bios和核显vbios提取并 核显直通win10教程的评论 (共 条)

分享到微博请遵守国家法律