PVE下AMD核显直通教程
最近有点忙,直接把我笔记搬过来了,大家凑活看吧
AMD 的强制IOMMU分组
vim /usr/share/grub/default/grub
验证iommu是否开启
如果未生效 添加允许不安全的中断的配置
bios三开启
开启VT
开启IOMMU:在高级的高级/AMD CBS 中
开启CSM
修改grub启动参数
屏蔽驱动
vi /etc/modprobe.d/blacklist.conf
添加内容
添加加载模块
vi /etc/modules
获取核显id并绑定核显设备
lspci -D -nnk | grep VGA
得到
0000:0a:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [1002:1638] (rev c9)
0000:0b:00.0
记下命令显示的最前面的数字序号为IOMMU分组 0000:0a:00.0;后面中括弧中1002:1638为设备id
vi /etc/modprobe.d/vfio.conf
解释:
其中1002:1638为核显设备id,如果已经存在其他直通设备,请使用 , 进行分隔填写多个,如:
options vfio-pci ids=14c3:7961,1002:1638
update-initramfs -u -k all
reboot
提取vbios
lspci -D -nnk | grep VGA
得到
0000:0a:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [1002:1638] (rev c9)
记住 0000:0a:00.0
0000:0b:00.0
cd /sys/bus/pci/devices/
cd 0000:0a:00.0
导出rom
此时导出的vbios在 /tmp/vbios.rom
之后转移到指定目录即可
mv /tmp/vbios.rom /usr/share/kvm/
其它方法各自各显神通吧,总之上传vbios到pve主机的 /usr/share/kvm 目录中
如图勾选,amd的核显设备很明显 Cezanne

下面才是重点:
vi /etc/pve/qemu-server/105.conf
105是你Windows的虚拟机的编号
添加:
1、在cpu:hots后面添加 ,hidden=1
2、hostpci0:0000:07:00.0,pcie=1,x-vga=1`后面添加 ,romfile=vbios.rom
vbios.rom就是你提取的显卡vbios的名字
完整配置如下:
1 agent: 1
2 balloon: 0
3 bios: ovmf
4 boot: order=hostpci0;ide2
5 cores: 4
6 cpu: host,hidden=1
7 efidisk0: local-lvm:vm-105-disk-0,efitype=4m,size=4M
8 hostpci0: 0000:07:00,pcie=1
9 hostpci1: 0000:0a:00.0,pcie=1,x-vga=1,romfile=vbios.rom
10 ide2: local:iso/virtio-win-0.1.215.iso,media=cdrom,size=528322K
11 machine: q35
12 memory: 8192
13 meta: creation-qemu=6.1.0,ctime=1672937166
14 name: win10
15 net0: virtio=06:B8:CE:00:DB:63,bridge=vmbr0,firewall=1
16 numa: 0
17 ostype: win10
18 scsihw: virtio-scsi-pci
19 smbios1: uuid=c1f99667-9378-4488-a4b2-0f7803bfb4dc
20 sockets: 1
21 tablet: 0
22 tpmstate0: local-lvm:vm-105-disk-1,size=4M,version=v2.0
23 vga: none
24 vmgenid: 2853a751-8c59-41d6-b1e1-633cd6a42921
先打补丁,再安装驱动
如果不小心卡主了,请在pve中移除amd核显,然后先打补丁,之后重新安装显卡并配置即可
不完美解决amd gpu passthrough rest bug
下载RadeonResetBugFixService这个软件0.17版本,下载地址:https://github.com/inga-lovinde/RadeonResetBugFix/releases
下载解压放在c盘根目录,cmd管理员模式下运行RadeonResetBugFixService.exe install

等服务安装完成后,就可以随便关闭win10虚拟机了,关闭后就可以在pve显示里面设置为无 none。设置好后就可以正常开机win10虚拟机了
安装Windows驱动并关闭显示
驱动下载区官网:5600G
在pve管理页面修改windows虚拟机设置,选择显示为none
vi /etc/pve/qemu-server/106.conf
1 agent: 1
2 balloon: 0
3 bios: seabios
4 boot: order=hostpci0
5 cores: 6
6 cpu: host,hidden=1
7 hostpci0: 0000:08:00,pcie=1
8 hostpci3: 0000:0b:00.0,pcie=1,x-vga=1,romfile=vbios.rom
9 machine: pc-q35-7.2
10 memory: 8192
11 meta: creation-qemu=6.1.0,ctime=1672937166
12 name: win10
13 net0: virtio=06:B8:CE:00:DB:63,bridge=vmbr0,firewall=1
14 numa: 0
15 ostype: win10
16 scsihw: virtio-scsi-pci
17 smbios1: uuid=c1f99667-9378-4488-a4b2-0f7803bfb4dc
18 sockets: 1
19 tablet: 0
20 vmgenid: 630eb06a-288c-48df-b1ed-80b0f1f718c8