Hello Proxmox Community,
I'm encountering a very stubborn issue trying to achieve PCI passthrough for my NVIDIA GTX 1080 Ti to a VM, and I'm seeking your expertise. Despite following all standard guides and troubleshooting steps, the nouveau and nvidiafb kernel modules keep loading for the GPU on the Proxmox host.
TL;DR:
GTX 1080 Ti passthrough to VM is failing on Proxmox VE (kernel 6.8.12-9-pve). Even after extensive blacklisting (GRUB, modprobe, initramfs) and correct BIOS settings (iGPU primary, VT-d, Above 4G Decoding), lspci -nnk still shows Kernel modules: nvidiafb, nouveau loaded for the 1080 Ti. Why is nouveau so persistent? Seeking solutions for this issue, and/or alternative ways to "share" the GPU between gaming (Batocera) and transcoding (Plex) VMs (understanding direct passthrough is exclusive).
My Goal:
Ultimately, I'd like to use the GTX 1080 Ti for a retro gaming VM (Batocera) to achieve good performance. I also have a Plex VM (VM 103) that could benefit from hardware transcoding. I understand that standard PCI passthrough assigns a device exclusively to one VM at a time, making it impossible to share a single dGPU between two VMs simultaneously. My question to the community is whether there are alternative methods (e.g., vGPU, SR-IOV, or specific software configurations) that might enable some form of GPU sharing for different workloads, or if my best bet is to dedicate it to one VM and use software transcoding/iGPU for the other.
My System Specifications:
* Proxmox VE Version: PVE 8.x (kernel 6.8.12-9-pve)
* CPU: Intel Core i3-6100 (with Intel HD Graphics 530 iGPU)
* RAM: 16GB
* GPU for Passthrough: NVIDIA GeForce GTX 1080 Ti (01:00.0 - 10de:1b06) and its HDMI Audio Controller (01:00.1 - 10de:10ef)
* Storage: 512GB NVMe (Proxmox OS), 3TB HDD, 14TB HDD
* Existing VMs/CTs: VM 101 (qBittorrent), VM 102 (OMV), VM 103 (Plex). Plex and qBittorrent share a bind mount /mnt/media on the 14TB drive.
Problem Description:
No matter what I try, the nouveau and nvidiafb kernel modules consistently load for the GTX 1080 Ti on the Proxmox host, preventing it from being bound by vfio-pci and thus making passthrough impossible. lspci -nnk always shows Kernel modules: nvidiafb, nouveau for the GPU.
Steps I have taken so far (with reboots after each major change):
* PCI ID Identification: Confirmed GPU (01:00.0 / 10de:1b06) and HDMI Audio (01:00.1 / 10de:10ef).
* IOMMU Grouping: Confirmed both GPU and its HDMI Audio are in the same IOMMU group 1, which is ideal.
* Output from find /sys/kernel/iommu_groups/:
IOMMU group 1
00:01.0 PCI bridge [0604]: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 07)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation GP102 HDMI Audio Controller [10de:10ef] (rev a1)
* GRUB Parameters (/etc/default/grub):
* GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt rd.driver.blacklist=nouveau,nvidiafb nomodeset nouveau.modeset=0"
* update-grub executed after each modification.
* Confirmed parameters are in /boot/grub/grub.cfg.
* Modprobe Blacklisting (/etc/modprobe.d/):
* Created /etc/modprobe.d/vfio-pci.conf with:
options vfio-pci ids=10de:1b06,10de:10ef
softdep nouveau pre: vfio-pci
softdep nvidiafb pre: vfio-pci
* Modified /etc/modprobe.d/blacklist.conf to include:
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
* VFIO Modules (/etc/modules):
* Ensured these lines are present:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
* update-initramfs:
* update-initramfs -u -k all executed multiple times after each configuration change.
* Direct initramfs Modification:
* Extracted initrd.img-$(uname -r) to a temporary directory.
* Manually edited etc/modprobe.d/blacklist.conf inside the extracted initramfs to include blacklist nouveau and blacklist nvidiafb.
* Rebuilt the initramfs image using mkinitramfs.
* BIOS/UEFI Settings (ASUS UEFI BIOS Utility - Advanced Mode):
* Primary Display: Set to CPU Graphics.
* IGPU Multi-Monitor: Enabled.
* VT-d: Enabled.
* Above 4G Decoding: Enabled.
* ASPM and other PCI Express Native Power Management options: Disabled.
* Memory Remap: Enabled.
* CFG Lock: Disabled.
Current lspci -nnk Output (after all steps and reboot):
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 530 [8086:1912] (rev 06)
00:1f.3 Audio device [0403]: Intel Corporation 200 Series PCH HD Audio [8086:a2f0]
Subsystem: ASUSTeK Computer Inc. 200 Series PCH HD Audio [1043:8723]
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev a1)
Subsystem: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:120f]
Kernel modules: nvidiafb, nouveau <-- STILL PRESENT!
01:00.1 Audio device [0403]: NVIDIA Corporation GP102 HDMI Audio Controller [10de:10ef] (rev a1)
Subsystem: NVIDIA Corporation GP102 HDMI Audio Controller [10de:120f]
My Questions to the Community:
* Given all the extensive blacklisting efforts, why is nouveau (and nvidiafb) still loading for the GTX 1080 Ti? What could be causing such persistent driver loading despite GRUB parameters, modprobe rules, and initramfs modifications?
* Are there any other BIOS/UEFI settings on ASUS motherboards that are known to interfere with NVIDIA passthrough in such a stubborn way?
* If standard passthrough remains impossible for the 1080 Ti on this system, what are the best strategies to utilize the GPU for gaming (Batocera) and transcoding (Plex) without dedicated passthrough? Are there any viable software solutions or specific Proxmox features (other than exclusive passthrough) that allow for some form of GPU sharing or efficient use across multiple VMs/services?
Any insights or suggestions would be greatly appreciated! Thank you for your time and help.
I'm encountering a very stubborn issue trying to achieve PCI passthrough for my NVIDIA GTX 1080 Ti to a VM, and I'm seeking your expertise. Despite following all standard guides and troubleshooting steps, the nouveau and nvidiafb kernel modules keep loading for the GPU on the Proxmox host.
TL;DR:
GTX 1080 Ti passthrough to VM is failing on Proxmox VE (kernel 6.8.12-9-pve). Even after extensive blacklisting (GRUB, modprobe, initramfs) and correct BIOS settings (iGPU primary, VT-d, Above 4G Decoding), lspci -nnk still shows Kernel modules: nvidiafb, nouveau loaded for the 1080 Ti. Why is nouveau so persistent? Seeking solutions for this issue, and/or alternative ways to "share" the GPU between gaming (Batocera) and transcoding (Plex) VMs (understanding direct passthrough is exclusive).
My Goal:
Ultimately, I'd like to use the GTX 1080 Ti for a retro gaming VM (Batocera) to achieve good performance. I also have a Plex VM (VM 103) that could benefit from hardware transcoding. I understand that standard PCI passthrough assigns a device exclusively to one VM at a time, making it impossible to share a single dGPU between two VMs simultaneously. My question to the community is whether there are alternative methods (e.g., vGPU, SR-IOV, or specific software configurations) that might enable some form of GPU sharing for different workloads, or if my best bet is to dedicate it to one VM and use software transcoding/iGPU for the other.
My System Specifications:
* Proxmox VE Version: PVE 8.x (kernel 6.8.12-9-pve)
* CPU: Intel Core i3-6100 (with Intel HD Graphics 530 iGPU)
* RAM: 16GB
* GPU for Passthrough: NVIDIA GeForce GTX 1080 Ti (01:00.0 - 10de:1b06) and its HDMI Audio Controller (01:00.1 - 10de:10ef)
* Storage: 512GB NVMe (Proxmox OS), 3TB HDD, 14TB HDD
* Existing VMs/CTs: VM 101 (qBittorrent), VM 102 (OMV), VM 103 (Plex). Plex and qBittorrent share a bind mount /mnt/media on the 14TB drive.
Problem Description:
No matter what I try, the nouveau and nvidiafb kernel modules consistently load for the GTX 1080 Ti on the Proxmox host, preventing it from being bound by vfio-pci and thus making passthrough impossible. lspci -nnk always shows Kernel modules: nvidiafb, nouveau for the GPU.
Steps I have taken so far (with reboots after each major change):
* PCI ID Identification: Confirmed GPU (01:00.0 / 10de:1b06) and HDMI Audio (01:00.1 / 10de:10ef).
* IOMMU Grouping: Confirmed both GPU and its HDMI Audio are in the same IOMMU group 1, which is ideal.
* Output from find /sys/kernel/iommu_groups/:
IOMMU group 1
00:01.0 PCI bridge [0604]: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 07)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation GP102 HDMI Audio Controller [10de:10ef] (rev a1)
* GRUB Parameters (/etc/default/grub):
* GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt rd.driver.blacklist=nouveau,nvidiafb nomodeset nouveau.modeset=0"
* update-grub executed after each modification.
* Confirmed parameters are in /boot/grub/grub.cfg.
* Modprobe Blacklisting (/etc/modprobe.d/):
* Created /etc/modprobe.d/vfio-pci.conf with:
options vfio-pci ids=10de:1b06,10de:10ef
softdep nouveau pre: vfio-pci
softdep nvidiafb pre: vfio-pci
* Modified /etc/modprobe.d/blacklist.conf to include:
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
* VFIO Modules (/etc/modules):
* Ensured these lines are present:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
* update-initramfs:
* update-initramfs -u -k all executed multiple times after each configuration change.
* Direct initramfs Modification:
* Extracted initrd.img-$(uname -r) to a temporary directory.
* Manually edited etc/modprobe.d/blacklist.conf inside the extracted initramfs to include blacklist nouveau and blacklist nvidiafb.
* Rebuilt the initramfs image using mkinitramfs.
* BIOS/UEFI Settings (ASUS UEFI BIOS Utility - Advanced Mode):
* Primary Display: Set to CPU Graphics.
* IGPU Multi-Monitor: Enabled.
* VT-d: Enabled.
* Above 4G Decoding: Enabled.
* ASPM and other PCI Express Native Power Management options: Disabled.
* Memory Remap: Enabled.
* CFG Lock: Disabled.
Current lspci -nnk Output (after all steps and reboot):
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 530 [8086:1912] (rev 06)
00:1f.3 Audio device [0403]: Intel Corporation 200 Series PCH HD Audio [8086:a2f0]
Subsystem: ASUSTeK Computer Inc. 200 Series PCH HD Audio [1043:8723]
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev a1)
Subsystem: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:120f]
Kernel modules: nvidiafb, nouveau <-- STILL PRESENT!
01:00.1 Audio device [0403]: NVIDIA Corporation GP102 HDMI Audio Controller [10de:10ef] (rev a1)
Subsystem: NVIDIA Corporation GP102 HDMI Audio Controller [10de:120f]
My Questions to the Community:
* Given all the extensive blacklisting efforts, why is nouveau (and nvidiafb) still loading for the GTX 1080 Ti? What could be causing such persistent driver loading despite GRUB parameters, modprobe rules, and initramfs modifications?
* Are there any other BIOS/UEFI settings on ASUS motherboards that are known to interfere with NVIDIA passthrough in such a stubborn way?
* If standard passthrough remains impossible for the 1080 Ti on this system, what are the best strategies to utilize the GPU for gaming (Batocera) and transcoding (Plex) without dedicated passthrough? Are there any viable software solutions or specific Proxmox features (other than exclusive passthrough) that allow for some form of GPU sharing or efficient use across multiple VMs/services?
Any insights or suggestions would be greatly appreciated! Thank you for your time and help.