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:
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:
I have also identified the following hardware limitations:
Any insights or experiences with similar setups would be greatly appreciated!
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:
- Verified all basic passthrough requirements (IOMMU, blacklisting, VFIO binding)
- Tested multiple NVIDIA driver versions (535, 570)
- Tried different machine types (pc-q35-6.2, pc-q35-4.0)
- Tested both PCIe and legacy PCI modes (pcie=1, pcie=0)
- Attempted ROM file passthrough (romfile=rtx3060.rom)
- Applied various kernel parameters (pci=realloc, pcie_aspm=off)
- Installed vendor-reset module for RTX 3060 reset bug
- Disabled Secure Boot in guest
- 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
Any insights or experiences with similar setups would be greatly appreciated!