参考:小破站大神教程 【PVE7 AMD 5700G 核显直通 (iGPU Passthrough)】 https://www.bilibili.com/video/BV11d4y1G7Nk?share_source=copy_web&vd_source=e5f19273decf1e2e712bb024a8e24e75
1. 环境介绍
下面是我成功直通5600g的硬件及软件版本,其他硬件或其他版本软件可能存在其他未知问题,请谨慎操作!
是否能够直通成功和主板有一定关系,源视频使用的是ASRock B550 Phantom Gaming-ITX/ax主板成功直通,其他主板可能直通失败!
1. 硬件相关
- 主板:华硕 TUF GAMING B550M-PLUS WIFI II
- CPU: AMD 5600G
- BIOS版本: 0305
- 独立显卡:无!
2. 软件相关
- PVE版本:7.2-7
- Linux内核版本:Linux 5.15.30-2-pve #1 SMP PVE 5.15.30-3 (Fri, 22 Apr 2022 18:08:27 +0200) x86_64 GNU/Linux
2. 操作步骤
总体的步骤是 修改主板BIOS配置, 修改系统配置, 提取vbios, 设置直通核显, 安装核显驱动, 直通核显成功。
1. 修改主板BIOS配置
-
开启VT
-
开启IOMMU(AUTO就可用所以没有修改,AUTO或者enable均可)
-
开启CSM
2. 修改PVE系统配置
请先安装相同版本的PVE系统,其他版本如果存在问题请自行查找。
安装过程比较简单,具体方法请自行百度
1. 修改grub启动参数:
修改文件 /etc/default/grub
中 GRUB_CMDLINE_LINUX_DEFAULT
配置:
GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt initcall_blacklist=sysfb_init amd_iommu=on drm.debug=0 kvm_amd.nested=1 kvm.ignore_msrs=1 kvm.report_ignored_msrs=0 pci=assign-busses pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1"
其中必须添加的:
-
iommu=pt
设置iommu为直通模式pass through -
initcall_blacklist=sysfb_init
屏蔽掉pve7.2的一个bug -
pcie_acs_override=downstream,multifunction
iommu分组补丁
其他参数之前直通存在问题,修改的一些配置,具体含义未详细了解,去掉是否有影响本人未做尝试。
然后执行update-grub
更新grub
2. 添加驱动黑名单
修改或新增配置文件/etc/modprobe.d/blacklist.conf
, 添加内容:
blacklist amdgpu
blacklist snd_hda_intel
3. 添加加载模块
修改或新增配置文件/etc/modules
, 添加内容:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
4. 获取核显id并绑定核显设备
执行命令:
root@nas:/# lspci -D -nnk | grep VGA
0000:07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [1002:1638] (rev c9)
也可以直接执行此命令
lspci -D -nnk
找到包含VGA Controller的设备,记下其IOMMU分组和设备id
请记下命令显示的最前面的数字序号为IOMMU分组 0000:07:00.0
;后面中括弧中1002:1638
为设备id
修改或新增配置文件/etc/modprobe.d/vfio.conf
, 添加内容:
options vfio-pci ids=1002:1638
options vfio-pci disable_idle_d3=1
其中
1002:1638
为核显设备id,如果已经存在其他直通设备,请使用,
进行分隔填写多个,如:options vfio-pci ids=14c3:7961,1002:1638
执行命令: update-initramfs -u -k all
重启机器:reboot
3. 提取vbios
1. 从主板官网下载对应主板的BIOS驱动
图片是我的主板BIOS下载页面,请自己找到自己主板对应型号和版本的BIOS驱动文件并下载到本地。
2. 下载UBU工具提取vbios
源连接:https://winraid.level1techs.com/t/tool-guide-news-uefi-bios-updater-ubu/30357
打开网页,点击下图中未知即可打开下载UBU页面,下载速度比较慢
这是百度网盘地址:
链接:https://pan.baidu.com/s/1CRqLtH9chTNpaaT2EuA1kg?pwd=q6vq
提取码:q6vq
3. 提取vbios
- 第一步:解压UBU工具:
- 第二步:解压BIOS文件:
将刚才下载的主板BIOS文件解压出来:
- 第三步:复制BIOS文件到UBU目录中:
如上图,主板BIOS文件中TUF-GAMING-B550-PLUS-WIFI-II-ASUS-2803.CAP
为BIOS文件,而不是.exe文件! 其他主板BIOS文件中可能不会待.exe文件。
- 第四步:运行
UBU.bat
文件,上图中红框下方的文件!并等待其处理完毕。
- 第五步:提取vbios
依次选择:2
Video OnBoard ->S
Share files -> 等待其复制完毕。->0
退出 ->0
退出 ->1
rename。
此时UBU目录中会多出来一个Extracted
文件夹,依次进入Extracted\VBIOS\017.010.000.029.000000
文件夹中,文件vbios_1638.dat
就是我们需要的vbios文件,请复制出来进行保存,后面会使用到。
上面文件仅是同主板同CPU时的文件,其他主板或CPU文件名称可能不同!!!
如果不同请参考文件Files\AMD\VBIOS\_List_vbios.txt
中所列,找到对应文件。
- 第六步:上传vbios到pve主机上
通过命令或者软件上传vbios_1638.dat
文件到PVE主机的/usr/share/kvm
目录中
4. 创建windows10虚拟机并配置核显直通
我用的镜像文件,可以不使用这个,windows镜像可以随便用
这是百度网盘地址:
链接:https://pan.baidu.com/s/1CRqLtH9chTNpaaT2EuA1kg?pwd=q6vq
提取码:q6vq
1. 创建win10虚拟机
-
ISO镜像选择
win10的iso
,类别和版本选择windows10
-
机型选择
q35
; BIOS 选择SeaBIOS
-
磁盘选择
SATA
, 至少给50G
吧。 -
CPU类别选择
host
, 核心数根据需要选择,我这里选择6核 -
网络模型选择
E100
或者VirtIO
都行吧,看个人。记得勾选断开
,是为了先断网进行设置,之后记得要取消掉这个 -
手动安装windows10,这里略过详细步骤,不清楚请百度!
由于windows的iso一般缺少virtio的驱动,所以可能会有硬件无法识别的问题,这里提供vitrio的驱动包,请手动上传并导入到win10虚拟机中,然后手动安装驱动,不会操作的请百度!
- 进入win10以后设置禁止windows自动更新:
设置-更新和安全中设置暂停更新
- 设置打开远程桌面连接,安装网卡驱动等,然后关闭计算机。关掉刚刚的网卡默认断开选项!!
- 设置核显直通windows:
选择添加
->PCI设备
-> 选择刚刚记录的核显id我这里为0000:07:00.0
勾选主GPU
和PCI-Express
- 设置显卡vbios配置
使用ssh连接pve主机(不是windows,是pve主机!),编辑/etc/pve/qemu-server/101.conf
(其中101是虚拟机id,根据你创建windows虚拟机时提供的id为准!!!)
- 在
cpu: host
后面添加,hidden=1
- 在
hostpci0: 0000:07:00.0,pcie=1,x-vga=1
后面添加,romfile=vbios_1638.dat
(其中vbios_1638.dat为之前上传的vbios文件名称)
- 回到pve管理页面,重启windows虚拟机,等待启动完成后,通过远程桌面连接到虚拟机。
- 通过浏览器,到amd官网下载5600g对应的驱动。
https://www.amd.com/zh-hans/support/previous-drivers/apu/amd-ryzen-processors/amd-ryzen-5-5000-g-series-desktop-processors-radeon-graphics/amd-ryzen-5-5600g
这是5600g驱动页面,其他cpu请下载对应驱动!!!文章来源:https://www.toymoban.com/news/detail-439002.html
- 在虚拟机windows10中安装此驱动,安装完成后,关闭计算机。
- 在pve管理页面修改windows虚拟机设置,选择显示为
none
- 重启windows虚拟机,查看gpu等信息
3. 结果展示
虚拟机windows中安装jellyfin,并开启amd硬解码,流畅播放4k视频,占用率不到50%(CPU占用是扫描文件占用的。)
文章来源地址https://www.toymoban.com/news/detail-439002.html
4. 注意事项
1. windows系统长时间开启的话,记得禁用掉自动休眠,自动休眠后PCI设备唤醒有问题导致无法使用,只能重启PVE解决。
2. 其他待补充
到了这里,关于PVE使用AMD CPU 5600G 核显直通的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!