isc30 / ryzen-7000-series-proxmox

Get the Ryzen 7000 series processors with AMD Radeon 680M/780M integrated graphics or RDNA2/RDNA3 GPUs running with Proxmox, GPU passthrough and UEFI included.
220 stars 28 forks source link

Host crash on Minisforum UM780 XTX #16

Closed Allsimon closed 3 months ago

Allsimon commented 5 months ago

Hello,

Your guide is really well written but I couldn't get it to work on a Minisforum UM780 XTX (AMD Ryzen 7 7840HS w/ Radeon 780M Graphics). When I attempt to add a PCI device for the iGPU, the host kernel crashes and I need to reboot it manually.

I found another report here: https://forum.proxmox.com/threads/igpu-passthrough-attempt-crashes-host-kernel.139349/

DeDelner commented 5 months ago

I also have the UM780 XTX and have experienced the same problem. However I am wondering, were you even able to extract the vBIOS from the 7840HS/780M? All methods I found straight up failed.

DeDelner commented 5 months ago

Okay, I just had a major breakthrough and I managed to passthrough the Readon 780M iGPU to my Windows 11 VM. Turned out, that the vBIOS for the Ryzen 9 7940HS (which also has the Radeon 780M) works just as well for the Ryzen 7 7840HS. So @isc30, I can confirm, that it works also for the Ryzen 7 7840HS.

However, I did this on Unraid, but I still would like to share my steps:

  1. Get the AMD Vendor Reset Plugin (This allows the iGPU to be re-initialized for passthrough)
  2. Reboot Unraid
  3. Then in Tools > System Devices, search for your iGPU and audio device (including the audio coprocessor) and tick the checkboxes. After, click "Bind selected to VFIO at boot"
  4. Reboot Unraid
  5. Create or edit your VM: 5.1 Choose "Q35-7.2" or later for the machine 5.2 For the vBIOS, use vbios_7940hs.bin
  6. Once you started your VM and set it up, it's time to install the AMD graphics drivers. However, you need to download the offline installer, otherwise the online installer might complain that the system is not an AMD system and aborts the installation.
  7. Profit
SDeath667 commented 5 months ago

I have the same issue on my Minisforum UM 780 XTX, whenever I get to step 7 in Configuring the GPU in the Windows VM, the host crashes and I need to perform a hard reboot. Also tried with the vbios_7940hs.bin that DeDelner posted but the same happens with that. Full crash of the host.

Turns out my issue was with the audio controller, as soon as I remove that pci device in Hardware the VM boots and the iGPU shows in hardware.

Need to do more troubleshooting to see if I can fix this. I also find an Audio coprocessor that is not included in the instructions maybe that needs to be added as well. I'll try.

DeDelner commented 5 months ago

Yep, my bad. I should have stated that next to your iGPU, you should also add all the audio devices, including the audio coprocessor. However, still weird to me that your host crashes 🤔

SDeath667 commented 5 months ago

When I add those it doesn't crash so that was the solution. I could have skipped the entire audio part since I don't use it.

isc30 commented 5 months ago

Hey, does removing the audio device work for UEFI too? Happy to accept a PR with an updated guide to include the audio coprocessor

SDeath667 commented 5 months ago

Sorry don't know, didn't try. Removed the entire VM an started fresh without passthrough, not something I will be using. I was using WS22 so also needed to hack the drivers to work, and this is too much hacking to get things to work for my taste. And then for something I won't be using, not being able to use the Proxmox VNC anymore, makes it too much trouble for something I won't be using anyway. Maybe somebody else can try.

DeDelner commented 5 months ago

Hey, does removing the audio device work for UEFI too? Happy to accept a PR with an updated guide to include the audio coprocessor

I can at least confirm that it works for UEFI with and without the audio device(s)

stefaanbolle commented 4 months ago

Hey, does removing the audio device work for UEFI too? Happy to accept a PR with an updated guide to include the audio coprocessor

I can at least confirm that it works for UEFI with and without the audio device(s)

Can you share your steps? My xtx host crashes when configuring win11 guest

20TbCh20 commented 4 months ago

I can confirm that it works on a Minisforum UM780 XTX (AMD Ryzen 7 7840HS w/ Radeon 780M Graphics).

Actually I use this setup:

PROXMOX 8.1.4

/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt"

/etc/modules

vfio vfio_iommu_type1 vfio_pci

/etc/modprobe.d/vfio.conf

options vfio-pci ids=1002:15bf,1002:1640 disable_vga=1 softdep radeon pre: vfio-pci softdep amdgpu pre: vfio-pci softdep snd_hda_intel pre: vfio-pci

/etc/modprobe.d/blacklist.conf

blacklist amdgpu

blacklist radeon

/etc/modprobe.d/pve-blacklist.conf blacklist nvidiafb

/etc/pve/qemu-server/111.conf agent: 1

no ballooing

balloon: 0

ovmf

bios: ovmf
boot: order=scsi0;ide2;net0;ide0 cores: 8

host,hidden=1

cpu: host,hidden=1,flags=+virt-ssbd;+amd-ssbd;+amd-no-ssb;+aes
efidisk0: local-zfs:vm-111-disk-0,efitype=4m,pre-enrolled-keys=1,size=1M

vbios_7840hs.bin or vbios_7940hs.bin

hostpci0: 0000:c6:00.0,pcie=1,romfile=vbios_7840hs.bin,x-vga=1
ide0: local:iso/virtio-win-0.1.248.iso,media=cdrom,size=715188K ide2: local:iso/Win11_23H2_German_x64v2.iso,media=cdrom,size=6641092K

q35

machine: pc-q35-8.1 memory: 16384 meta: creation-qemu=8.1.5,ctime=1709401388 name: test-vm net0: virtio=AA:BB:CC:DD:EE:FF,bridge=vmbr0 numa: 1 ostype: win11 scsi0: local-zfs:vm-111-disk-1,discard=on,iothread=1,size=50G,ssd=1 scsihw: virtio-scsi-single smbios1: uuid=12345678-abcd-1234-5678-aa1234567890 sockets: 1 tpmstate0: local-zfs:vm-111-disk-2,size=4M,version=v2.0 usb0: host=1-2.1 usb1: host=1-2.2

VGA,none,qx2,qx4,...

vga: qxl2
vmgenid: 12345678-abcd-1234-5678-1234567890

20TbCh20 commented 4 months ago

The attached file contains the vbios file based on UM780XTX Bios 1.05 12/15/2023

vbios_7840hs.zip

For creating vbios rom file I used a temporary proxmox installation on a USB stick and these steps:

PS: the file vbios_7940hs.bin is working too

stefaanbolle commented 4 months ago

I can confirm that it works on a Minisforum UM780 XTX (AMD Ryzen 7 7840HS w/ Radeon 780M Graphics).

Actually I use this setup:

PROXMOX 8.1.4

/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt"

/etc/modules

vfio vfio_iommu_type1 vfio_pci

/etc/modprobe.d/vfio.conf

options vfio-pci ids=1002:15bf,1002:1640 disable_vga=1 softdep radeon pre: vfio-pci softdep amdgpu pre: vfio-pci softdep snd_hda_intel pre: vfio-pci

/etc/modprobe.d/blacklist.conf #blacklist amdgpu blacklist radeon

/etc/modprobe.d/pve-blacklist.conf blacklist nvidiafb

/etc/pve/qemu-server/111.conf agent: 1

no ballooing

balloon: 0

ovmf

bios: ovmf boot: order=scsi0;ide2;net0;ide0 cores: 8

host,hidden=1

cpu: host,hidden=1,flags=+virt-ssbd;+amd-ssbd;+amd-no-ssb;+aes efidisk0: local-zfs:vm-111-disk-0,efitype=4m,pre-enrolled-keys=1,size=1M

vbios_7840hs.bin or vbios_7940hs.bin

hostpci0: 0000:c6:00.0,pcie=1,romfile=vbios_7840hs.bin,x-vga=1 ide0: local:iso/virtio-win-0.1.248.iso,media=cdrom,size=715188K ide2: local:iso/Win11_23H2_German_x64v2.iso,media=cdrom,size=6641092K

q35

machine: pc-q35-8.1 memory: 16384 meta: creation-qemu=8.1.5,ctime=1709401388 name: test-vm net0: virtio=AA:BB:CC:DD:EE:FF,bridge=vmbr0 numa: 1 ostype: win11 scsi0: local-zfs:vm-111-disk-1,discard=on,iothread=1,size=50G,ssd=1 scsihw: virtio-scsi-single smbios1: uuid=12345678-abcd-1234-5678-aa1234567890 sockets: 1 tpmstate0: local-zfs:vm-111-disk-2,size=4M,version=v2.0 usb0: host=1-2.1 usb1: host=1-2.2

VGA,none,qx2,qx4,...

vga: qxl2 vmgenid: 12345678-abcd-1234-5678-1234567890

Thanks! Where are your PCI (passthrough) devices in 111.conf? Am I missing something?

20TbCh20 commented 4 months ago

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

... but I pass through only the VGA controller as described:

hostpci0: 0000:c6:00.0,pcie=1,romfile=vbios_7840hs.bin,x-vga=1

... and for keyboard, mouse and USB headset: usb0: host=1-2.1 usb1: host=1-2.2 usb2: host=1-1.1.1

mkuznetsov commented 4 months ago

I have Proxmox 8.1 and kernel 6.5.-13. AMD 7745hx with iGPU 610M
PCI passthrough don't crash my host or VM, but I still don't get any gpu in windows 10. AMD drivers down't detect it. So with bypass all I get is a failed default MS driver, and no devices in OS so far. I'm open to suggestions.

lspci -nn | grep -e 'AMD/ATI'
07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev da)
07:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt Radeon High Definition Audio Controller [1002:1640]

VM Config:

agent: 1
balloon: 0
bios: ovmf
boot: order=ide2;ide1;ide0
cores: 4
cpu: host,hidden=1,flags=+virt-ssbd;+amd-ssbd;+amd-no-ssb;+aes
efidisk0: local-lvm:vm-101-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:07:00.0,x-vga=1,romfile=vbios_1002_164e.bin,pcie=1
hostpci1: 0000:07:00.1,romfile=AMDGopDriver_5700U.rom,pcie=1
ide0: local:iso/virtio-win-0.1.217.iso,media=cdrom,size=519172K
ide1: local-lvm:vm-101-disk-1,size=256G
ide2: local:iso/ru_windows_10_business_editions_version_2004_updated_sep_2020_x64_dvd_0c49b616.iso,media=cdrom,size=4926594K
machine: pc-q35-8.1
memory: 16384
meta: creation-qemu=8.1.5,ctime=1709791861
name: win10
net0: virtio=BC:24:11:7D:12:FA,bridge=vmbr0,firewall=1
numa: 1
ostype: win10
scsihw: virtio-scsi-single
smbios1: uuid=b640f08e-67d5-4e7a-b636-a2b6beb0919e
sockets: 1
tpmstate0: local-lvm:vm-101-disk-2,size=4M,version=v2.0
vga: none
vmgenid: e9f3b2a3-3fad-4d88-8116-a2d5dbb8330a
Allsimon commented 3 months ago

I can also confirm that host doesn't crash if I either:

So with:

root@proxmox:~# lspci -nn | grep -e 'AMD/ATI'
c6:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev c2)
c6:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt Radeon High Definition Audio Controller [1002:1640]

and

root@proxmox:~# lspci -nn | grep -e 'Audio'
c6:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt Radeon High Definition Audio Controller [1002:1640]
c6:00.5 Multimedia controller [0480]: Advanced Micro Devices, Inc. [AMD] ACP/ACP3X/ACP6x Audio Coprocessor [1022:15e2] (rev 63)
c6:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller [1022:15e3]

the /etc/pve/qemu-server/100.conf file must contains:

bios: ovmf
boot: order=ide0;net0
cores: 8
cpu: host
efidisk0: local-lvm:vm-100-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
+hostpci0: 0000:c5:00.0,pcie=1,romfile=vbios_7840hs.bin,x-vga=1
+hostpci1: 0000:c5:00.1
+hostpci2: 0000:c5:00.5
...

the vbios_7840hs.bin file can be created via: https://github.com/isc30/ryzen-7000-series-proxmox/issues/16#issuecomment-1980652042 (I also opened a PR for it https://github.com/isc30/ryzen-7000-series-proxmox/pull/26)

stefaanbolle commented 3 months ago
hostpci0: 0000:c5:00.0,pcie=1,romfile=vbios_7840hs.bin,x-vga=1
hostpci1: 0000:c5:00.1
hostpci2: 0000:c5:00.5

My host does not crash anymore, thanks! But in Win 11 I coninue to get error 43. When applying hostpci1: 0000:c5:00.1,pcie=1,romfile=AMDGopDriver.rom The Win 11 VM does not boot up

mkuznetsov commented 3 months ago

I continue to get Error 43 after restarting VM. I add bios dumps for GPU and audio device on iGPU 610M. It fixes on the first start of VM with passthrough.

I install reset service to Proxmox host and in VM as service. But it do not make any changes. After stop of VM, igpu don't detached and I have to restart host to passthrough my iGPU to another VM.