[SOLVED] Soundcard passthrough - Need help

vmware

Member
Jul 8, 2020
35
8
13
Sydney, Australia
Hi all,

Trying to setup passthrough of the host's soundcard to a VM, but having an issue: The moment the VM boots, somehow the NIC would stop sending/receiving data! The host didn't crash and I was able to login from console.

Please suggest how I can debug this? Thanks in advance.

GRUB:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

lspci -nnk , excrept of 00:1f:
Code:
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-LP LPC Controller [8086:9d48] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP LPC Controller [103c:807c]
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP PMC [103c:807c]
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d70] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP HD Audio [103c:807c]
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel, snd_soc_skl
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP SMBus [103c:807c]
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection I219-LM [8086:156f] (rev 21)
        Subsystem: Hewlett-Packard Company Ethernet Connection I219-LM [103c:807c]
        Kernel driver in use: e1000e
        Kernel modules: e1000e

/etc/modprobe.d/hdaudio_passthrough.conf

Code:
options vfio-pci ids=8086:9d70
 
Very likely, the soundcard is in the same IOMMU group as the network controller (and some other devices). You cannot share devices in the same IOMMU group between VMs or between a VM and the host. The host will lose access to any device in the group when passing through the audio device. The IOMMU group number can be seen in the settings dialog for the PCI Device or you can run this command on the console: for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done
 
Hi @avw you're spot on. Ran the command, they belong to group 8. Thank you!

Code:
IOMMU group 8 00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-LP LPC Controller [8086:9d48] (rev 21)
IOMMU group 8 00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
IOMMU group 8 00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d70] (rev 21)
IOMMU group 8 00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)
IOMMU group 8 00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection I219-LM [8086:156f] (rev 21)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!