You are not logged in.

#1 2016-02-22 10:00:51

blakyris
Member
Registered: 2015-09-25
Posts: 16

[QEMU/KVM] Sound Card Passthrought to Windows VM

Hi,

Now that i have a Windows 10 VM up and running with my GTX 970, i would like to passthrought my Creative Sound Card into the VM cuz it doesn't work well on Linux.
I have the Onboard Audio for Linux.

using the command lspci -nnk :

00:00.0 Host bridge [0600]: Intel Corporation 4th Gen Core Processor DRAM Controller [8086:0c00] (rev 06)
	Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
	Kernel driver in use: hsw_uncore
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller [8086:0c01] (rev 06)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0412] (rev 06)
	Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
	Kernel driver in use: i915
	Kernel modules: i915
00:14.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB xHCI Controller [8086:8cb1]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
00:16.0 Communication controller [0780]: Intel Corporation 9 Series Chipset Family ME Interface #1 [8086:8cba]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
	Kernel driver in use: mei_me
	Kernel modules: mei_me
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection (2) I218-V [8086:15a1]
	Subsystem: ASUSTeK Computer Inc. Device [1043:85c4]
	Kernel driver in use: e1000e
	Kernel modules: e1000e
00:1a.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB EHCI Controller #2 [8086:8cad]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
	Kernel driver in use: ehci-pci
	Kernel modules: ehci_pci
00:1b.0 Audio device [0403]: Intel Corporation 9 Series Chipset Family HD Audio Controller [8086:8ca0]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8653]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
00:1c.0 PCI bridge [0604]: Intel Corporation 9 Series Chipset Family PCI Express Root Port 1 [8086:8c90] (rev d0)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:1c.3 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev d0)
00:1d.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1 [8086:8ca6]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
	Kernel driver in use: ehci-pci
	Kernel modules: ehci_pci
00:1f.0 ISA bridge [0601]: Intel Corporation 9 Series Chipset Family Z97 LPC Controller [8086:8cc4]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
	Kernel driver in use: lpc_ich
	Kernel modules: lpc_ich
00:1f.2 SATA controller [0106]: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode] [8086:8c82]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
	Kernel driver in use: ahci
	Kernel modules: ahci
00:1f.3 SMBus [0c05]: Intel Corporation 9 Series Chipset Family SMBus Controller [8086:8ca2]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
	Kernel modules: i2c_i801
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM204 [GeForce GTX 970] [10de:13c2] (rev a1)
	Subsystem: ZOTAC International (MCO) Ltd. Device [19da:1366]
	Kernel driver in use: vfio-pci
	Kernel modules: nouveau
01:00.1 Audio device [0403]: NVIDIA Corporation GM204 High Definition Audio Controller [10de:0fbb] (rev a1)
	Subsystem: ZOTAC International (MCO) Ltd. Device [19da:1366]
	Kernel driver in use: vfio-pci
	Kernel modules: snd_hda_intel
03:00.0 PCI bridge [0604]: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge [1b21:1080] (rev 04)
04:01.0 Multimedia audio controller [0401]: Creative Labs SB X-Fi [1102:0005]
	Subsystem: Creative Labs Device [1102:0031]
	Kernel driver in use: vfio-pci
	Kernel modules: snd_ctxfi

So my sound card now use the vfio-pci driver but when I start the VM, it makes bips, cliky and white noise sounds randomly.
When I move a space on terminator on the host and the VM is running, it make white noise.

this is my vfio bind service :

[Unit]
Description=Binds devices to vfio-pci
After=syslog.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=-/usr/bin/vfio-bind 0000:01:00.0 0000:01:00.1 0000:04:01.0

[Install]
WantedBy=multi-user.target

this my grub config :

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="quiet pcie_acs_override=downstream intel_iommu=on pci-stub.ids=10de:13c2,10de:0fbb,1102:0005"
GRUB_CMDLINE_LINUX=""

So my question is :

Do I need to passthrought  ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge ? I tried it but nothin...
Can we Passthrought PCI Cards ?

Offline

#2 2016-03-07 22:11:15

blakyris
Member
Registered: 2015-09-25
Posts: 16

Re: [QEMU/KVM] Sound Card Passthrought to Windows VM

Up ?

Offline

#3 2016-03-08 04:58:36

ix7
Member
Registered: 2014-12-15
Posts: 6

Re: [QEMU/KVM] Sound Card Passthrought to Windows VM

I had distorted sound with HDMI audio from a 750 Ti. Enabling message signaled interrupts (MSI) fixed that.

Offline

#4 2016-03-16 10:02:39

blechdose
Member
Registered: 2016-03-16
Posts: 2

Re: [QEMU/KVM] Sound Card Passthrought to Windows VM

Hi,

how do you start your VM?

In generally you don't need to passthrough your pci-bridges (vfio-pci isn't even capable to do so.)

I'm just using qemu-system to start my VM. To passthrough my NVIDIA GeForce GTX 660 (PCIe root port) and my Soundblaster Audigy ZS 2 (PCI) I use this:

-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on \
-device vfio-pci,host=01:00.1,bus=root.1,addr=00.1 \
-device vfio-pci,host=04:00.0,bus=root.1,addr=00.2 \
-device vfio-pci,host=04:00.2,bus=root.1,addr=00.3 \

please also provide

dmesg |grep -i vfio

Offline

#5 2016-03-21 13:44:41

DuKeTHeReaL
Member
Registered: 2016-03-21
Posts: 3

Re: [QEMU/KVM] Sound Card Passthrought to Windows VM

Have you checked if the sound card is the only card in your pci group?

You can check it via:

#!/bin/sh

# List the devices in each IOMMU group, from AW at
# https://bbs.archlinux.org/viewtopic.php?id=162768&p=29

BASE="/sys/kernel/iommu_groups"

for i in $(find $BASE -maxdepth 1 -mindepth 1 -type d); do
        GROUP=$(basename $i)
        echo "### Group $GROUP ###"
        for j in $(find $i/devices -type l); do
                DEV=$(basename $j)
                echo -n "    "
                lspci -s $DEV
        done
done

Offline

Board footer

Powered by FluxBB