Prox815

New Member
Jun 13, 2021
21
0
1
I am doing audio passthrough. 00:1f.3 is the audio device I want to passthrough to my Windows 10 VM.

Code:
/sys/kernel/iommu_groups/13/devices/0000:00:1f.0
/sys/kernel/iommu_groups/13/devices/0000:00:1f.5
/sys/kernel/iommu_groups/13/devices/0000:00:1f.3
/sys/kernel/iommu_groups/13/devices/0000:00:1f.4

Code:
00:1f.0 ISA bridge: Intel Corporation Device 0685
        Subsystem: Gigabyte Technology Co., Ltd Device 5001
        Flags: bus master, medium devsel, latency 0

00:1f.3 Audio device: Intel Corporation Device 06c8
        Subsystem: Gigabyte Technology Co., Ltd Device a0c3
        Flags: bus master, fast devsel, latency 32, IRQ 167
        Memory at 6012110000 (64-bit, non-prefetchable) [size=16K]
        Memory at 6012000000 (64-bit, non-prefetchable) [size=1M]
        Capabilities: [50] Power Management version 3
        Capabilities: [80] Vendor Specific Information: Len=14 <?>
        Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel, snd_sof_pci

00:1f.4 SMBus: Intel Corporation Device 06a3
        Subsystem: Gigabyte Technology Co., Ltd Device 5001
        Flags: medium devsel, IRQ 16
        Memory at 6012116000 (64-bit, non-prefetchable) [size=256]
        I/O ports at efa0 [size=32]
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801

00:1f.5 Serial bus controller [0c80]: Intel Corporation Device 06a4
        Subsystem: Intel Corporation Device 7270
        Flags: fast devsel
        Memory at fe010000 (32-bit, non-prefetchable) [size=4K]


You can see that 00:1f.3 and other devices are in the same IOMMU group. Does that mean I need to add pcie_acs_override=downstream to make the audio passthrough workable?
Many thanks!
 
Does that mean I need to add pcie_acs_override=downstream to make the audio passthrough workable?
yes but even that is dangerous and might not work as expected (system crashes, etc)
 
yes but even that is dangerous and might not work as expected (system crashes, etc)
I see. I have passed audio with pcie_acs_override=downstream
It worked, but it also passed SMBUS and an unknown pci.
I guess I should buy an external USB sound card instead.
Thanks!
 
Your audio device is part (.3) of a multi-function device (00:1f). The other parts are SMBus (.4) and Serial bus controller (.5). If you want to break those apart, your need to also specify multifunction: pcie_acs_override=downstream,multifunction. Maybe it is possible to break only this group, but I don't know the exact syntax of pcie_acs_override.
 
Your audio device is part (.3) of a multi-function device (00:1f). The other parts are SMBus (.4) and Serial bus controller (.5). If you want to break those apart, your need to also specify multifunction: pcie_acs_override=downstream,multifunction. Maybe it is possible to break only this group, but I don't know the exact syntax of pcie_acs_override.

I read about something related to syntax on PCI_passthrough_via_OVMF,

Bypassing the IOMMU groups (ACS override patch)​


If you find your PCI devices grouped among others that you do not wish to pass through, you may be able to seperate them using Alex Williamson's ACS override patch. Make sure you understand the potential risk of doing so.

You will need a kernel with the patch applied. The easiest method to acquiring this is through the linux-zen or linux-vfioAUR package.

In addition, the ACS override patch needs to be enabled with kernel command line options. The patch file adds the following documentation:

[/QUOTE] pcie_acs_override = [PCIE] Override missing PCIe ACS support for: downstream All downstream ports - full ACS capabilties multifunction All multifunction devices - multifunction ACS subset id:nnnn:nnnn Specfic device - full ACS capabilities Specified as vid:did (vendor/device ID) in hex [QUOTE]


The option pcie_acs_override=downstream,multifunction should break up as many devices as possible.

After installation and configuration, reconfigure your bootloader kernel parameters to load the new kernel with the pcie_acs_override= option enabled.
but I am not so sure what it meanso_O
I have tried pcie_acs_override=downstream,multifunctio, and still, SMBus (.4) and Serial bus controller (.5) were passthroughed o_O. Seems it is not workable in my setup.
 
That pcie_acs_override should have worked if at all possible. Did you see any changes in your IOMMU groups? I guess sometimes even cheating/overriding does not work.
 

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!