AMD 3000G igpu passthrough

Sh_Cby

New Member
Jul 22, 2022
6
0
1
Hello everyone, I am making AMD 3000G's igpu (radeon vega 3) passthrough to a windows 10 VM, But after I tried, I found that it didn't work properly.

Code:
1.nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt amd_iommu=on drm.debug=0 kvm_amd.nested=1 kvm.ignore_msrs=1 kvm.report_ignored_msrs=0 video=efifb:off,vesafb:off  pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1 ”

3.update-grub

4.nano  /etc/modules

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

5.reboot

Is there any solution? Please tell me. Thank you guys.
 
Last edited:
GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt amd_iommu=on drm.debug=0 kvm_amd.nested=1 kvm.ignore_msrs=1 kvm.report_ignored_msrs=0 video=efifb:off,vesafb:off pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1 ”

Looks like you tried everything (at once) already. I can only tell you that video=efifb:off,vesafb:off does not work (anymore). You need to write it as video=efifb:off video=vesafb:off . And if you are using kernel 5.15 then that does not do what it did before (kernel 5.13 and earlier), and you might need [ICIODE]initcall_blacklist=sysfb_init[/ICODE] to achieve the same effect.
nano /etc/default/grub update-grub
It is also possible that your Proxmox does not use GRUB but systemd-boot instead, and then you need to put the kernel parameters somewhere else. What is the output of cat /proc/cmdline?
I am making AMD 3000G's igpu (radeon vega 3) passthrough to a windows 10 VM, But after I tried, I found that it didn't work properly.
Do you know of anyone having passed through a Ryzen 3000G integrated graphics? Maybe it is not supported/not working because of too tight integration with the rest of the CPU? Can you be more specific that "it didn't work properly"? What did not work, what errors did you get, does it work with an Ubuntu VM, etc.?
 
  • Like
Reactions: Sh_Cby
Looks like you tried everything (at once) already. I can only tell you that video=efifb:off,vesafb:off does not work (anymore). You need to write it as video=efifb:off video=vesafb:off
Thanks for your correction, I have changed the parameters.

And if you are using kernel 5.15 then that does not do what it did before (kernel 5.13 and earlier), and you might need [ICIODE]initcall_blacklist=sysfb_init[/ICODE] to achieve the same effect.
I'm using pve 7.2, which should be a 5.15 kernel.
It is also possible that your Proxmox does not use GRUB but systemd-boot instead, and then you need to put the kernel parameters somewhere else. What is the output of cat /proc/cmdline?
It appears as
Code:
BOOT_IMAGE=/boot/vmlinuz-5.15.39-1-pve root=/dev/mapper/pve-root ro quiet iommu=pt amd_iommu=on drm.debug=0 kvm_amd.nested=1 kvm.ignore_msrs=1 kvm.report_ignored_msrs=0 video=efifb:off video=vesafb:off pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1
Do you know of anyone having passed through a Ryzen 3000G integrated graphics?
I'm sorry about that, I didn't find any 3000G users.
Can you be more specific that "it didn't work properly"? What did not work, what errors did you get, does it work with an Ubuntu VM, etc.?
After I select as a PCI device, the video card does not appear in windows and the PCI device appears as code 31 in device manager.I tried it once in Ubuntu server and it seemed to work fine.(Displayed as card0).
 
I'm using pve 7.2, which should be a 5.15 kernel.
Unless you change it, yes indeed it should be 5.15. You can check with uname -a.
It appears as
Code:
BOOT_IMAGE=/boot/vmlinuz-5.15.39-1-pve root=/dev/mapper/pve-root ro quiet iommu=pt amd_iommu=on drm.debug=0 kvm_amd.nested=1 kvm.ignore_msrs=1 kvm.report_ignored_msrs=0 video=efifb:off video=vesafb:off pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1
Looks like you are using GRUB. You probably don't need video=efifb:off video=vesafb:off (which are for 5.13) and you probably don't need initcall_blacklist=sysfb_init (which is for 5.15), and you can just let amdgpu handle the transfer to vfio-pci.

As a side note: you don't need amd_iommu=on because it is on by default. And you probably don't need pcie_acs_override=downstream,multifunction because the integrated graphics should be in a separate IOMMU group (or you need a BIOS update). vfio_iommu_type1.allow_unsafe_interrupts=1 and drm.debug=0 are probably also not needed; what is your reason to use those?
I'm sorry about that, I didn't find any 3000G users.

After I select as a PCI device, the video card does not appear in windows and the PCI device appears as code 31 in device manager.I tried it once in Ubuntu server and it seemed to work fine.(Displayed as card0).
Looks like passthrough is working as the GPU is detected inside the VM (and Proxmox does not crash). Therefore, it is probably a Windows or AMD graphics driver issue. Maybe the driver expects something that is not provided in the VM. This is often the case with integrated graphics which are tightly coupled to the CPU. Unfortunately, I have no experience with that but maybe someone else knows.
 
Looks like you are using GRUB. You probably don't need video=efifb:off video=vesafb:off (which are for 5.13) and you probably don't need initcall_blacklist=sysfb_init (which is for 5.15), and you can just let amdgpu handle the transfer to vfio-pci.

As a side note: you don't need amd_iommu=on because it is on by default. And you probably don't need pcie_acs_override=downstream,multifunction because the integrated graphics should be in a separate IOMMU group (or you need a BIOS update). vfio_iommu_type1.allow_unsafe_interrupts=1 and drm.debug=0 are probably also not needed; what is your reason to use those?
Sorry, I'm not a geek in this area. These parameters are copied from the Internet.I hope you can help to write the parameters for my processor.

Looks like passthrough is working as the GPU is detected inside the VM (and Proxmox does not crash). Therefore, it is probably a Windows or AMD graphics driver issue. Maybe the driver expects something that is not provided in the VM. This is often the case with integrated graphics which are tightly coupled to the CPU. Unfortunately, I have no experience with that but maybe someone else knows.
Unfortunately, it crashes when first open it, After that, he magically disappeared.And it appears in windows as the Microsoft basic display adapter, Not the name of the video card, It makes me wonder.
 
Sorry, I'm not a geek in this area. These parameters are copied from the Internet.I hope you can help to write the parameters for my processor.


Unfortunately, it crashes when first open it, After that, he magically disappeared.And it appears in windows as the Microsoft basic display adapter, Not the name of the video card, It makes me wonder.

Hello,
I am sorry for digging up such an old thread but I would like to know have you been able to successfully pass HP T640 GPU to the Windows guest?
Thank you in advance for a reply! :)
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!