NVIDIA RTX 3060 GPU Passthrough - RmInitAdapter failed (0x25:0xffff:1601) on H170 Chipset

SpinalKracker

New Member
Jun 16, 2025
1
0
1
Hi all,

Has anyone successfully passed through an RTX 3060 to a VM on H170 chipset?

In particular, I would like to know:

1. Are there any workarounds for the 0x25:0xffff:1601 RmInitAdapter failure?
2. Would an older GPU (GTX 1060/1070) work better with H170 limitations?
3. Is this a fundamental hardware incompatibility that requires motherboard upgrade?

For context:
Hardware:
  • Motherboard: Gigabyte H170-HD3-CF
  • CPU: Intel 6th/7th generation (LGA 1151)
  • GPU: MSI GeForce RTX 3060 GA104 (PCI ID: 10de:2487)
  • Host: Proxmox VE (kernel 6.8.12-9-pve)
  • Guest: Ubuntu 22.04 LTS

RTX 3060 GPU passthrough to Ubuntu VM fails with NVIDIA driver initialisation error. GPU is detected by the guest OS, and NVIDIA drivers load successfully, but nvidia-smi returns "No devices were found" due to hardware initialisation failure.


Host Configuration (Confirmed Working):

# IOMMU properly enabled
$ dmesg | grep DMAR
[ 0.091101] DMAR: IOMMU enabled
[ 0.235548] DMAR-IR: Enabled IRQ remapping in xapic mode

# GPU isolated in separate IOMMU group
$ pvesh get /nodes/pve/hardware/pci --pci-class-blacklist ""
│ 0x030000 │ 0x2487 │ 0000:01:00.0 │ 12 │ 0x10de │ GA104 [GeForce RTX 3060] │

# NVIDIA drivers blacklisted
$ cat /etc/modprobe.d/blacklist.conf
blacklist nouveau
blacklist nvidia
blacklist nvidiafb

# VFIO modules loaded
$ lsmod | grep vfio
vfio_pci, vfio_iommu_type1, vfio, vfio_virqfd

# GPU bound to vfio-pci on host
$ lspci -nnk -d 10de:2487
Kernel driver in use: vfio-pci

VM Configuration:

bios: ovmf
cores: 8
cpu: host
machine: pc-q35-6.2
memory: 24000
hostpci0: 0000:01:00.0,pcie=1
vga: virtio

Guest Status:
# GPU detected in guest
$ lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3060] (rev a1)

# NVIDIA driver loaded
$ lspci -nnk -d 10de:2487
Kernel driver in use: nvidia

# Driver modules present
$ lsmod | grep nvidia
nvidia_uvm, nvidia_drm, nvidia_modeset, nvidia (all loaded)

# Device files created
$ ls /dev/nvidia*
/dev/nvidia0, /dev/nvidiactl, /dev/nvidia-uvm (all present)

Critical Error:

$ dmesg | grep nvidia
[ 3.141913] NVRM: GPU 0000:01:00.0: RmInitAdapter failed! (0x25:0xffff:1601)
[ 3.142309] NVRM: GPU 0000:01:00.0: rm_init_adapter failed, device minor number 0
[ 3.142720] [drm:nv_drm_load [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to allocate NvKmsKapiDevice
[ 3.143017] [drm:nv_drm_register_drm_device [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to register device

I have tried the following:
  1. Verified all basic passthrough requirements (IOMMU, blacklisting, VFIO binding)
  2. Tested multiple NVIDIA driver versions (535, 570)
  3. Tried different machine types (pc-q35-6.2, pc-q35-4.0)
  4. Tested both PCIe and legacy PCI modes (pcie=1, pcie=0)
  5. Attempted ROM file passthrough (romfile=rtx3060.rom)
  6. Applied various kernel parameters (pci=realloc, pcie_aspm=off)
  7. Installed vendor-reset module for RTX 3060 reset bug
  8. Disabled Secure Boot in guest
  9. Tried different VM memory configurations and CPU settings

I have also identified the following hardware limitations:
  • Intel H170 chipset (2015) lacks modern GPU passthrough features:
    • No Above 4G Decoding support
    • No SR-IOV support
    • No Resizable BAR support
  • RTX 3060 (Ampere architecture) expects these features for proper virtualisation
Furthermore, the error code changed from 0x25:0xffff:1480 to 0x25:0xffff:1601 when switching machine types, suggesting configuration changes affect the failure mode. All standard passthrough documentation steps have been followed, but the GPU hardware initialisation consistently fails despite driver loading successfully.

Any insights or experiences with similar setups would be greatly appreciated!