Hello everyone,
I'm hoping someone can point me in the right direction. I'm trying to set up GPU passthrough on a brand new system based on the Ryzen 9 9955HX (Zen 5) processor using Proxmox VE 8.x. The integrated graphics are the Granite Ridge [Radeon Graphics] [1002:13c0].
I followed the excellent guide by @isc30 here: https://github.com/isc30/ryzen-gpu-passthrough-proxmox , which has been invaluable for other Ryzen systems. However, the 9955HX isn't listed, so I knew I'd need to extract the VBIOS myself using the vbios.c method outlined in the guide.
The Problem:
Despite having configured my GPU for passthrough, I consistently hit a wall when trying to run the vbios.c extraction script on the Proxmox host. The script compiles fine, but it seems to fail silently or extract incorrect data. Other times the resulting file often has the same size as the generic vbios_9800x3d.bin file I initially used (downloaded from the repo, associated with a different system). I strongly suspect this means the actual VFCT table for my specific GPU ID (1002:13c0) isn't being read correctly or the vbios.c tool isn't finding the correct entry/data block within it.
Attempts to use an Ubuntu Live USB environment with nomodeset modprobe.blacklist=amdgpu,radeon,snd_hda_intel also resulted in "Permission denied" errors when trying to enable the ROM (echo 1 > /sys/bus/pci/devices/0000:01:00.0/rom), suggesting the GPU driver might still have been interacting with the device during the Live session boot, locking the necessary resources.
The Fallback & Its Issues:
As a temporary measure, I reverted to using the generic vbios_7xxx.bin file from the guide's repository. While the VM does boot, it's plagued by significant issues:
These artifacts and instability strongly suggest that the generic VBIOS is insufficient for the Granite Ridge iGPU, and I desperately need the correct one.
What I've Tried Beyond the Guide:
The Ask:
I'm at a loss. The standard vbios.c method from the guide isn't yielding the correct VBIOS for my specific GPU, leading to a suboptimal and unstable passthrough experience. The UEFI GOP extraction route also failed. Has anyone successfully extracted the VBIOS for a Ryzen 9 9955HX system or a similar Granite Ridge setup? Are there specific boot parameters or steps I'm missing to ensure the VFCT is accessible and correctly read by the vbios.c tool?
Any help or alternative methods would be incredibly appreciated. I'm trying to get this ideal system working smoothly with passthrough, and resolving the VBIOS seems to be the final hurdle.
Thank you for reading.
I'm hoping someone can point me in the right direction. I'm trying to set up GPU passthrough on a brand new system based on the Ryzen 9 9955HX (Zen 5) processor using Proxmox VE 8.x. The integrated graphics are the Granite Ridge [Radeon Graphics] [1002:13c0].
I followed the excellent guide by @isc30 here: https://github.com/isc30/ryzen-gpu-passthrough-proxmox , which has been invaluable for other Ryzen systems. However, the 9955HX isn't listed, so I knew I'd need to extract the VBIOS myself using the vbios.c method outlined in the guide.
The Problem:
Despite having configured my GPU for passthrough, I consistently hit a wall when trying to run the vbios.c extraction script on the Proxmox host. The script compiles fine, but it seems to fail silently or extract incorrect data. Other times the resulting file often has the same size as the generic vbios_9800x3d.bin file I initially used (downloaded from the repo, associated with a different system). I strongly suspect this means the actual VFCT table for my specific GPU ID (1002:13c0) isn't being read correctly or the vbios.c tool isn't finding the correct entry/data block within it.
Attempts to use an Ubuntu Live USB environment with nomodeset modprobe.blacklist=amdgpu,radeon,snd_hda_intel also resulted in "Permission denied" errors when trying to enable the ROM (echo 1 > /sys/bus/pci/devices/0000:01:00.0/rom), suggesting the GPU driver might still have been interacting with the device during the Live session boot, locking the necessary resources.
The Fallback & Its Issues:
As a temporary measure, I reverted to using the generic vbios_7xxx.bin file from the guide's repository. While the VM does boot, it's plagued by significant issues:
- Frequent VM Boot Stalls: The VM often hangs during boot, requiring multiple restarts (sometimes taking up to a minute or more just to get past the initial boot screen).
- Video Artifacts: I experience large, persistent black boxes overlaying parts of the video output, especially noticeable during video playback. Sometimes there's general graphical corruption.
- General Instability: The Windows VM occasionally suffers from errors seemingly related to the GPU, likely stemming from the mismatched VBIOS.
These artifacts and instability strongly suggest that the generic VBIOS is insufficient for the Granite Ridge iGPU, and I desperately need the correct one.
What I've Tried Beyond the Guide:
- UEFITool Method: As a last resort, I tried extracting GOP-related EFI drivers from my system's BIOS ROM file using UEFITool NE A72. I found potential candidates containing strings like "GraphicsOutput", extracted their PE32 image sections, converted them to .rom files using EfiRom.exe (with my GPU's Device ID 13c0), and attached them as the romfile for the audio device in UEFI/OVMF mode. While this seemed like a good approach based on community discussions, using these custom GOP ROMs consistently caused the VM to stall during POST, never reaching the Windows boot screen.
- Verifying VFCT: I checked for the existence of /sys/firmware/acpi/tables/VFCT on the Proxmox host, and it is present.
The Ask:
I'm at a loss. The standard vbios.c method from the guide isn't yielding the correct VBIOS for my specific GPU, leading to a suboptimal and unstable passthrough experience. The UEFI GOP extraction route also failed. Has anyone successfully extracted the VBIOS for a Ryzen 9 9955HX system or a similar Granite Ridge setup? Are there specific boot parameters or steps I'm missing to ensure the VFCT is accessible and correctly read by the vbios.c tool?
Any help or alternative methods would be incredibly appreciated. I'm trying to get this ideal system working smoothly with passthrough, and resolving the VBIOS seems to be the final hurdle.
Thank you for reading.