I’m having an issue getting an Nvidia card to passthrough on an x570 Aurus Master board running Debian 11 (testing) on the host.
The PCIe card has two devices, a graphics controller and an audio controller, both in the same IOMMU group. (They are the only things in that group).
I’m not sure how to get the audio controller to bind to VFIO. Here’s where I’m at:
0b:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 760] (rev a1) (prog-if 00 [VGA controller])
Subsystem: eVga.com. Corp. GK104 [GeForce GTX 760]
Flags: fast devsel, IRQ 5, IOMMU group 28
Memory at fa000000 (32-bit, non-prefetchable) [disabled] [size=16M]
Memory at e0000000 (64-bit, prefetchable) [disabled] [size=128M]
Memory at e8000000 (64-bit, prefetchable) [disabled] [size=32M]
I/O ports at f000 [disabled] [size=128]
Expansion ROM at fb000000 [disabled] [size=512K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00
--
0b:00.1 Audio device: NVIDIA Corporation GK104 HDMI Audio Controller (rev a1)
Subsystem: eVga.com. Corp. GK104 HDMI Audio Controller
Flags: bus master, fast devsel, latency 0, IRQ 181, IOMMU group 28
Memory at fb080000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
So the Nvidia card has no driver bound (not sure if it should be vfio?), but the audio controller still has snd_hda_intel
.
/etc/modprobe.d/vfio.conf
options vfio-pci ids=0b:00.0,0b:00.1
softdep nouveau pre: vfio-pci
softdep nvidia pre: vfio-pci
softdep nvidia-drm pre: vfio-pci
softdep nvidia pre: vfio-pci
softdep nvidia-modeset pre: vfio-pci
softdep nvidia_current_drm pre: vfio-pci
softdep nvidia_current pre: vfio-pci
softdep nvidia-current-uvm pre: vfio-pci
softdep nvidia-current-modeset pre: vfio-pci
softdep nvidia-uvm pre: vfio-pci
#snd_hda_intel is the driver for the audio controller:
softdep snd_hda_intel pre: vfio-pci
I did run update-initramfs -u
and reboot.
On another machine with working graphics passthrough, both the audio and graphics devices show:
Kernel driver in use: vfio-pci
But that’s a Radeon card, on completely different hardware. But, on that machine, the IDs in /etc/modprobe.d/vfio.conf
don’t match what is coming out of lspci
. vfio.conf
says ids=1002:6758,1002:aa90
while the ID’s from lspci
are 81:00.0
and 81:00.1
. So either some kind of conversion is required, or /etc/modprobe.d/vfio.conf
isn’t doing anything.
Is there some kind of conversion required? Hex to decimal or something? And how?