Baby Steps: Help with Proxmox GPU Passthrough

Kaizen28

New Member
Jan 4, 2024
3
0
1
Hi,

I am a real newbie to Proxmox and am l looking for any guidance an council in getting GPU passthrough enabled on my system.

After doing a lot of reading and meditation, I mustered up the courage to give it a crack. Well... 6 hours later and a LOT of searching and working with Grok and Claude I appear to be failing at an early hurdle.

So, I would like to take things step by step, starting with my setup and BIOS configuration. The details are below any feedback would be appreciated:
PVE-Manager: 8.4.5
Motherboard: GIGABYTE B550I AORUS PRO AX
Motherboard BIOS version: F20g
CPU: AMD Ryzen 7 5700g
GPU: Asrock: Intel arc B570
PCIE Slot Configuration: Gen 3
IOMMU: ON
4G Decoding: Enabled
Re-sizeable Bar Support: Enabled
CSM: Enabled

Finally, the server has been stable for about three years using the on-board GPU. Then I got curious and wanted to add functionality to my Plex server and to give myself a bit of a challenge....
 
Greetings,
I don't know if this helps at all, but if you've installed Proxmox VE on the bare metal (presumably) you can do something like this:

Bash:
root@proxmox:~# lspci | fgrep -i nvidia
03:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3070] (rev a1)
03:00.1 Audio device: NVIDIA Corporation GA104 High Definition Audio Controller (rev a1)

This tells me that my 3070 is on host PCI 03:00. So when I'm creating a VM, I can add a PCI device like so:

Screenshot 2025-08-25 at 5.02.52 PM.png Screenshot 2025-08-25 at 5.05.01 PM.png

From my side of things, that was the hardest part to get right. Once I had that in place, everything else was software. Not easy, but doable.

You didn't give much detail on what was going wrong for you, so if you're already well past this, feel free to give more details.
 
Hey there - thanks for the quick reply! You are waaay ahead of where I'm hitting the wall. I wanted to check if I had missed or misconfigured something right at the start.

My first problem is that after I have made the GRUB changes I am no longer able to reboot the server. More accurately, when I reboot from the CLI, the server hangs with a black screen. Monitor is plugged into the HDMI interface on the Asrock card

However, if I shutdown the server and then power it back on, I can get the Web UI and the CLI back.
 
I have a thread like this one, does not work?

I am interested in setting up to use battlemage.

 
Last edited:
Greetings,

@Kaizen28 By grub changes, do you mean something like
Diff:
root@proxmox:~# diff /etc/default/grub~ /etc/default/grub
10c10
< GRUB_CMDLINE_LINUX=""
---
> GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt"
I'm not sure what it takes to expose an AMD or Intel (iGPU?) to the VM, other than that you'll eventually have to do the passthrough thing.

It's also worth noting that all my Proxmox nodes are headless, so if the various host-side settings turn off the video output because it's not allowed to load the module for it (so that a guest OS can load the module without conflict) that's not an issue for me.
 
Greetings,

@Kaizen28 By grub changes, do you mean something like
Diff:
root@proxmox:~# diff /etc/default/grub~ /etc/default/grub
10c10
< GRUB_CMDLINE_LINUX=""
---
> GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt"
I'm not sure what it takes to expose an AMD or Intel (iGPU?) to the VM, other than that you'll eventually have to do the passthrough thing.

It's also worth noting that all my Proxmox nodes are headless, so if the various host-side settings turn off the video output because it's not allowed to load the module for it (so that a guest OS can load the module without conflict) that's not an issue for me.
Yes - this is what I'm referring to concerning the GRUB changes.

Specifically:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb nomodeset video=vesafb:off,efifb:off"

I'll send a capture of what is shown on my screen in a few days as I'm traveling.

The first issue to resolve is why a warm reboot fails but a cold start brings up the server.