Installing AMD vendor-reset on Proxmox 9.0.9

Steve087

New Member
Sep 15, 2025
6
0
1
Hi

I'm new to Proxmox. I have everything prepared to passthrough my AMD GPU to a VM. After a Proxmox reboot I can successfully start the VM and get video output from the VM. However this does not survive VM reboots and/or VM start/stop cycles. Hence I tried to install gnif's vendor-reset.

Unfortunately I can not manage to get vendor-reset to run properly. I always get the following error:
Code:
root@gateway:~# systemctl status vreset.service
× vreset.service - AMD GPU reset method to 'device_specific'
     Loaded: loaded (/etc/systemd/system/vreset.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Sun 2025-09-14 21:25:33 CEST; 10h ago
   Duration: 28ms
 Invocation: 7bdb5094ad924146b4e7e76aa62a360d
    Process: 2571 ExecStart=/usr/bin/bash -c echo device_specific > /sys/bus/pci/devices/0000:c5:00.0/reset_method (code=exited, status=1/FAILURE)
   Main PID: 2571 (code=exited, status=1/FAILURE)
   Mem peak: 1.7M
        CPU: 5ms

Sep 14 21:25:33 gateway systemd[1]: Started vreset.service - AMD GPU reset method to 'device_specific'.
Sep 14 21:25:33 gateway bash[2571]: /usr/bin/bash: line 1: echo: write error: Invalid argument
Sep 14 21:25:33 gateway systemd[1]: vreset.service: Main process exited, code=exited, status=1/FAILURE
Sep 14 21:25:33 gateway systemd[1]: vreset.service: Failed with result 'exit-code'.
root@gateway:~#

What am I missing, or doing wrong? Any help is highly appreciated. Thank you!



Bellow my current config:

Code:
root@gateway:~# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=1002:150e,1002:1640




root@gateway:~# cat /etc/modules
# /etc/modules is obsolete and has been replaced by /etc/modules-load.d/.
# Please see modules-load.d(5) and modprobe.d(5) for details.
#
# Updating this file still works, but it is undocumented and unsupported.

vendor-reset
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

softdep radeon pre: vfio-pci
softdep amdgpu pre: vfio-pci
softdep snd_hda_intel pre: vfio-pci




root@gateway:~# uname -r
6.14.11-2-pve



root@gateway:~# grep -E 'CONFIG_FTRACE|CONFIG_KPROBES|CONFIG_PCI_QUIRKS|CONFIG_KALLSYMS|CONFIG_KALLSYMS_ALL|CONFIG_FUNCTION_TRACER' /boot/config-$(uname -r)
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_SELFTEST is not set
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
CONFIG_KPROBES=y
CONFIG_KPROBES_ON_FTRACE=y
CONFIG_PCI_QUIRKS=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_FTRACE_MCOUNT_RECORD=y
CONFIG_FTRACE_MCOUNT_USE_CC=y
# CONFIG_FTRACE_RECORD_RECURSION is not set
# CONFIG_FTRACE_VALIDATE_RCU_IS_WATCHING is not set
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_FTRACE_SORT_STARTUP_TEST is not set



root@gateway:~# cat /etc/default/grub
# If you change this file or any /etc/default/grub.d/*.cfg file,
# run 'update-grub' afterwards to update /boot/grub/grub.cfg.
# For full documentation of the options in these files, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`( . /etc/os-release && echo ${NAME} )`
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
GRUB_CMDLINE_LINUX=""

# If your computer has multiple operating systems installed, then you
# probably want to run os-prober. However, if your computer is a host
# for guest OSes installed via LVM or raw disk devices, running
# os-prober can cause damage to those guest OSes as it mounts
# filesystems to look for things.
#GRUB_DISABLE_OS_PROBER=false

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE/GOP/UGA
# you can see them in real GRUB with the command `videoinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"



root@gateway:~# cat /etc/modprobe.d/blacklist.conf
blacklist amdgpu
blacklist radeon



root@gateway:~# cat /etc/pve/qemu-server/100.conf
agent: 1
balloon: 8192
bios: ovmf
boot: order=scsi0;ide2;net0
cores: 4
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_hx370_ubu.bin,x-vga=1
hostpci1: 0000:c5:00.1,pcie=1,romfile=AMDGopDriver.rom
ide2: none,media=cdrom
machine: q35
memory: 16384
meta: creation-qemu=10.0.2,ctime=1757711069
name: test-igpu
net0: virtio=BC:24:11:00:85:5D,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsi0: local-lvm:vm-100-disk-1,iothread=1,size=32G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=cf2e806a-26b0-4510-bde3-64904dbeae24
sockets: 1
usb0: host=3-1
usb1: host=3-2
usb2: host=3-4
usb3: host=7-1
vga: none
vmgenid: e11c3cba-1b52-463f-b46c-80d93c625020
root@gateway:~#
 
Process: 2571 ExecStart=/usr/bin/bash -c echo device_specific > /sys/bus/pci/devices/0000:c5:00.0/reset_method (code=exited, status=1/FAILURE)

Sep 14 21:25:33 gateway bash[2571]: /usr/bin/bash: line 1: echo: write error: Invalid argument
This suggest that the vendor-reset module is not loaded. What is the output of lsmod | grep vendor? What is the output of modprobe vendor-reset? Did you patch the source code of vendor-reset as the module will not compile properly with the Proxmox kernel 6.14 otherwise?
I'm not sure but you appear to be passing through an integrated graphics (which model?) and that's probably not supported by vendor-reset (which makes troubleshooting this pointless).
 
Thank you for your reply!

Yes it is a Strix-Point iGPU (890M). I want to give it a try with the vendor-reset because on my other machine I'm passing through the iGPU from my Ryzen 9950 successfully on Unraid and there the vendor-reset seems to do it's magic even though this iGPU is not officially supported either.

Here the requested output:

Code:
root@gateway:~# lsmod | grep vendor
vendor_reset          110592  0


root@gateway:~# modprobe vendor-reset
root@gateway:~#

Yes I did have to patch the source of vendor-reset. It could not find asm/unaligned.h. I modified the following:
nano ./src/amd/amdgpu/atom.c
Code:
//#include <asm/unaligned.h>
#include <linux/unaligned.h>

After that the build completed successfully.



According to AI the problem might be that somehow my Proxmox-Kernel does not support the reset flag (missing vfio_pci: reset support enabled
):

Code:
root@gateway:~# dmesg | grep -i vfio_pci
[    3.434379] vfio_pci: add [1002:150e[ffffffff:ffffffff]] class 0x000000/00000000
[    3.458547] vfio_pci: add [1002:1640[ffffffff:ffffffff]] class 0x000000/00000000
root@gateway:~#

as well as missing CONFIG_VFIO_PCI_RESET=y

Code:
root@gateway:~# grep -E 'CONFIG_VFIO_PCI|CONFIG_VFIO_PCI_RESET' /boot/config-$(uname -r)
CONFIG_VFIO_PCI_CORE=m
CONFIG_VFIO_PCI_MMAP=y
CONFIG_VFIO_PCI_INTX=y
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
CONFIG_VFIO_PCI_IGD=y
root@gateway:~#

also, should there not be a /reset in /sys/module/vfio_pci/parameters/?

Code:
root@gateway:~# ls /sys/module/vfio_pci/parameters/
disable_denylist  disable_idle_d3  disable_vga  enable_sriov  nointxmask
root@gateway:~#

Sorry if my reasoning and questioning sounds stupid. I'm fairly new to all of this and started with Linux and HW passthrough only this spring.
 
Last edited:
vendor-reset does appear to be loaded correctly, so it simply does not support your GPU. Maybe see if someone on the internet got the exact same integrated graphics working and ask them what work-arounds are needed for it to reset properly. I think your AI is just telling stories in order to make you happy and don't expect that route to give any results.
 
Yes it is loaded, however there seems to be a proxmox-kernel issue and vfio-pci-reset is not enabled and therefore vendor-reset cannot work (regardless of my gpu). This from my point of view would also explain why I also can't manually write to

echo 'device_specific' > /sys/bus/pci/devices/0000:c5:00.0/reset_method

I get the exact same error as the vendor-reset module:

Code:
root@gateway:~# echo 'device_specific' > /sys/bus/pci/devices/0000:c5:00.0/reset_method
-bash: echo: write error: Invalid argument
root@gateway:~#

The question is why does my kernel not support this and where and how can I get a kernel that does? It didn't work out of the box after a fresh proxmox install.

I did check the internet. There are people that pass the igpu through to a VM for AI. This seems to work fine. The only difference to my config I can see is that I need video output and for that I had to extract the VBIOS and the AMDGoPDriver. Those I added to my VM-config and ever since I do get video output on the first VM boot. The rest should be identical with the setup of the other guys.
 
Last edited:
I came across a similar issue here. But I have no clue how I can make sure that vendor-reset is loaded before vfio. It was already on top of my /etc/modules but I don't know if that is what I need to do.
 
Last edited:
  • Like
Reactions: Steve087
I tried this and no change. I still get the same error message. That's a bummer :-(

At this point I do not understand why this is working on Unraid for an iGPU that is supposedly also not supported by vendor_reset.
 
OK, I just realized that on Unraid apparently vendor-reset is not even loaded :rolleyes: (shame on me for not realizing that sooner):

Code:
root@blackbox:~# lsmod | grep vendor
root@blackbox:~# modprobe vendor-reset install_hook=o
off  on

Apparently I was just super lucky with the Unraid system

This AMD stuff is really driving me crazy. How is it one generation of dGPU/iGPU has this bug, in the next generation its gone, just to come back in the generation after that. I was stupid enough to believe that this should work for me too since the AI guys use this MiniPC but apparently not. If I'd knew before I would have probably ordered an Intel based MiniPC.

@leesteken Thank you very much for your help and your patience with me! It's very much appreciated!
 
Last edited: