8700G iGPU 780m passthrough

vinnfts

Member
Aug 8, 2024
32
2
8
Hi guys, I'm trying to passthrough the iGPU to Windows VM
I followed many steps but there was still error 43 in Windows, please help
My promox hardware:
8700G
64GB G.Skill X5 Flare
Mainboard B650 Gigabyte Aorus Elite AX ver 1.3
1 HDD 16TB + 2 SSD 1TB
My /etc/default/grub
Code:
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt"
GRUB_CMDLINE_LINUX=""

dmesg | grep -e DMAR -e IOMMU
Code:
[    0.464252] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[    0.611337] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).

I checked
lspci -nn | grep -e 'AMD/ATI'
Code:
11:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev 06)
11:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt Radeon High Definition Audio Controller [1002:1640]

My /etc/modules
Code:
vfio
vfio_iommu_type1
vfio_pci

Next, I bind the iGPU’s PCI ID to vfio-pci
/etc/modprobe.d/vfio.conf
Code:
options vfio-pci ids=1002:15bf,1002:1640,1022:15c7,1022:15b9,1022:15ba,1022:15e2,1022:15e3
softdep amdgpu pre: vfio-pci
softdep radeon pre: vfio-pci
softdep snd_hda_intel pre: vfio-pci

Check lspci -nnk
Code:
11:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev 06)
        Subsystem: Gigabyte Technology Co., Ltd Phoenix1 [1458:d000]
        Kernel driver in use: vfio-pci
        Kernel modules: amdgpu
11:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt Radeon High Definition Audio Controller [1002:1640]
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt Radeon High Definition Audio Controller [1002:1640]
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel
11:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 19h (Model 74h) CCP/PSP 3.0 Device [1022:15c7]
        Subsystem: Advanced Micro Devices, Inc. [AMD] Family 19h (Model 74h) CCP/PSP 3.0 Device [1022:15c7]
        Kernel driver in use: vfio-pci
        Kernel modules: ccp
11:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Device [1022:15b9]
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:5007]
        Kernel driver in use: xhci_hcd
        Kernel modules: xhci_pci
11:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Device [1022:15ba]
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:5007]
        Kernel driver in use: xhci_hcd
        Kernel modules: xhci_pci
11:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller [1022:15e3]
        DeviceName: Realtek ALC1220
        Subsystem: Gigabyte Technology Co., Ltd Family 17h/19h HD Audio Controller [1458:a194]
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel

I also extracted and configured vbios
My /etc/pve/qemu-server/101.conf
Code:
agent: 1
args: -cpu 'host,-hypervisor,kvm=off'
bios: ovmf
boot: order=scsi0;ide0;ide2;net0
cores: 8
cpu: host
efidisk0: local-lvm:vm-101-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:11:00.0,romfile=vbios_15BF.dat,x-vga=1
hostpci1: 0000:11:00.1,romfile=AMDGopDriver.rom
ide0: local:iso/virtio-win-0.1.266.iso,media=cdrom,size=707456K
ide2: local:iso/Win11_24H2_English_x64.iso,media=cdrom,size=5683090K
machine: pc-q35-6.2
memory: 8192
meta: creation-qemu=9.0.2,ctime=1743238806
name: Windows
net0: virtio=BC:24:11:8A:07:C8,bridge=vmbr0,firewall=1
numa: 0
ostype: win11
scsi0: local-lvm:vm-101-disk-1,iothread=1,size=500G
scsihw: virtio-scsi-single
smbios1: uuid=35745faf-0266-4b24-9515-07d7f9917ba7
sockets: 1
tpmstate0: local-lvm:vm-101-disk-2,size=4M,version=v2.0
vga: none
vmgenid: 05a40414-b16d-4b21-97b5-0f01617abe4c

I also disabled Above 4G decoding & Re-size Bar Support in BIOS
 
Last edited:
To make sure, I also blacklisted drivers at /etc/modprobe.d/blacklist.conf
Code:
blacklist nouveau
blacklist nvidia*
blacklist radeon
blacklist amdgpu
blacklist snd_hda_intel
#!/bin/bash
shopt -s nullglob
for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V);>
echo "IOMMU Group ${g##*/}:"
for d in $g/devices/*; do
echo -e "\t$(lspci -D -nns ${d##*/}"
done;
done;
 
Last edited: