Jump to content
matthope

***GUIDE*** How to passthrough Intel chipset audio

104 posts in this topic Last Reply

Recommended Posts

Intent:

This guide will take you through the process of passing through the integrated audio of the Intel chipset. This methods is tested with a B150 chipset, but it should work with any recent chipset from Intel. I have found this process in the forum, however, my intent is to try to write an easier post to read.

 

Prerequisites:

 

  • Working VM
  • Unraid 6.3.x / 6.4.x / 6.5.x / 6.6.x
  • Intel CPU and Bios that supports VT-d
  • Intel Motherboard

 

Guide:

 

1. Enable Intel VT-D inside your motherboard bios.

 

2. Open the Web GUI and go to Settings -> VM Manager and click on Advanced View.

 

3. Enable the PCIe ACS Override setting, try downstream first. (This step might not be required, i've tried with the override disabled and it looks like it working just fine)

 

4. Go to Tools -> System Devices and look for an audio device. In my case : 

[8086:a170] 00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)

Copy everything between [ ] , this is your device ID and you will need that for the next step.

 

5. Go to Main tab and under Boot Device, click on Flash.

 

6. Go to your Syslinux configuration and replace the append line under "label unRAID OS" with this one and then click "Apply".

append pcie_acs_override=downstream vfio-pci.ids=PUT_YOUR_DEVICE_ID_HERE modprobe.blacklist=i2c_i801,i2c_smbus initrd=/bzroot

      Your syslinux configuration should look like this, except maybe your device ID:

default /syslinux/menu.c32
menu title Lime Technology, Inc.
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append pcie_acs_override=downstream vfio-pci.ids=8086:a170 modprobe.blacklist=i2c_i801,i2c_smbus initrd=/bzroot
label unRAID OS GUI Mode
  kernel /bzimage
  append pcie_acs_override=downstream initrd=/bzroot,/bzroot-gui
label unRAID OS Safe Mode (no plugins, no GUI)
  kernel /bzimage
  append pcie_acs_override=downstream initrd=/bzroot unraidsafemode
label unRAID OS GUI Safe Mode (no plugins)
  kernel /bzimage
  append pcie_acs_override=downstream initrd=/bzroot,/bzroot-gui unraidsafemode
label Memtest86+
  kernel /memtest

6. Reboot your server.

 

7. Now you should have the choice to add your Intel audio in the Sound Card selection when you're editing your VM.

 

NOTICE: 

It may require to unplug your server from the AC to make this work, also sometimes from my experience the sound card may just stop working and the only way I have found to make it work again is to shutdown the server and unplug it from the AC.

 

 

 

Edited by matthope
update information

Share this post


Link to post

Hi @matthope,

 

Thank you for your tutorial.

I am very new to unRAID, to Linux too. I'm quite confused about my Syslinux file. Here is what mine looks like :

default menu.c32
menu title Lime Technology, Inc.
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append vfo-pci.ids=1912:0014 initrd=/bzroot
label unRAID OS GUI Mode
  kernel /bzimage
  append initrd=/bzroot,/bzroot-gui
label unRAID OS Safe Mode (no plugins, no GUI)
  kernel /bzimage
  append initrd=/bzroot unraidsafemode
label unRAID OS GUI Safe Mode (no plugins)
  kernel /bzimage
  append initrd=/bzroot,/bzroot-gui unraidsafemode
label Memtest86+
  kernel /memtest

Am I supposed to make it like this? It didn't boot when applied so I had to go back to the above. 

 

default menu.c32
menu title Lime Technology, Inc.
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append vfo-pci.ids=1912:0014 initrd=/bzroot
  append pcie_acs_override=downstream vfio-pci.ids=8086:a170 modprobe.blacklist=i2c_i801,i2c_smbus
label unRAID OS GUI Mode
  kernel /bzimage
  append initrd=/bzroot,/bzroot-gui
label unRAID OS Safe Mode (no plugins, no GUI)
  kernel /bzimage
  append initrd=/bzroot unraidsafemode
label unRAID OS GUI Safe Mode (no plugins)
  kernel /bzimage
  append initrd=/bzroot,/bzroot-gui unraidsafemode
label Memtest86+
  kernel /memtest

Thank you in advance! :) 

Edited by CiaoCiao

Share this post


Link to post

 

Hi @CiaoCiao

 

Replace this line of your syslinux : 

append vfo-pci.ids=1912:0014 initrd=/bzroot

 

with this one :

append vfio-pci.ids=YOURDEVICEADDRESS modprobe.blacklist=i2c_i801,i2c_smbus initrd=/bzroot

If this doesnt work, can you make a screenshot of your IOMMU group ( Tools -> System Devices ) ? It should look like this :

 

image.thumb.png.82a9238c30993881894e6d39cd00d383.png

 

Also what is your hardware configuration (CPU,GPU, MOBO, etc) ?

 

Share this post


Link to post

Hey, that just did the trick! :D 

Thanks a lot @matthope!

 

I'm running a very light setup right now, with just a G4560 on a Z170 Pro Gaming AC motherboard, 8GB of RAM and a USB 3.0 extension card. Nothing to brag about but thanks to you it's now working just fine :)

Share this post


Link to post

Hi, I too am having issues with an onboard audio card not being able to add to a win 10 vm. I can select it in the vm, but when launching the vm I get an error. I have an asRock Z370 Taichi board with Intel 8700k processor. I followed the instructions and still not able to use. Is this possible with my setup? Do I need to buy a sound card? I have a 5.1 surround system I would like  to install for gaming. I use to have a usb controller pass-through  before I did the PCIe ACS Override if that could of caused an issue. I will need to do that again unless this vm will recognize new hardware (will need to test this)

 

Execution error

internal error: qemu unexpectedly closed the monitor: 2018-07-23T18:58:38.067861Z qemu-system-x86_64: -device vfio-pci,host=00:1f.3,id=hostdev2,bus=pci.0,addr=0x9: vfio error: 0000:00:1f.3: group 11 is not viable Please ensure all devices within the iommu_group are bound to their vfio bus driver.

 

IOMMU group 11: [8086:a2c9] 00:1f.0 ISA bridge: Intel Corporation Device a2c9
  [8086:a2a1] 00:1f.2 Memory controller: Intel Corporation 200 Series PCH PMC
  [8086:a2f0] 00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio
  [8086:a2a3] 00:1f.4 SMBus: Intel Corporation 200 Series PCH SMBus Controller

 

default menu.c32
menu title Lime Technology, Inc.
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append pcie_acs_override=downstream vfio-pci.ids=8086:a2f0
modprobe.blacklist=i2c_i801,i2c_smbus initrd=/bzroot
label unRAID OS GUI Mode
  kernel /bzimage
  append pcie_acs_override=downstream initrd=/bzroot,/bzroot-gui
label unRAID OS Safe Mode (no plugins, no GUI)
  kernel /bzimage
  append pcie_acs_override=downstream initrd=/bzroot unraidsafemode
label unRAID OS GUI Safe Mode (no plugins)
  kernel /bzimage
  append pcie_acs_override=downstream initrd=/bzroot,/bzroot-gui unraidsafemode
label Memtest86+
  kernel /memtest

 

Did I make a mistake somewhere? Please let me know and thank you!

Edited by blewstar
cpu is 8700k corrected

Share this post


Link to post

This may be a stupid question but I can see and set my onboard audio in the VM setup and the VM will launch but when I get all the drivers up and running I don't get any audio, so for the purpose of making this work do I need speakers connected to the unRAID box in order for the system to work, I'm logging in from my MacBook and pc but no sound?

Share this post


Link to post

Hi all, 

 

Shameless bump as last attempt for a solution to use onboard. I looked into the hardware recommendation for sound card and see Creative Labs Sound Blaster Audigy fx as an alternative. Since this is a gaming vm that may be a better choice. 

Share this post


Link to post

***Update***

 

Adding the SB Audigy Rx sound card and then loading drivers off the site I now have sound. 

Share this post


Link to post
22 hours ago, blewstar said:

***Update***

 

Adding the SB Audigy Rx sound card and then loading drivers off the site I now have sound. 

 

Good ! 

 

Sorry I didn't have the time to answer you in the first place. However, I never tested it with your hardware setup and I don't see any apparent mistake.

 

Have you tried to remove AC plug from the computer ? In some case (like mine) motherboard seems to keep the control of the audio chip even with the i2c blacklist. A power off won't work, you will need to completely remove power from your server.  

 

If you want to retry someday, I will be happy to help. 

Edited by matthope
add shutdown solution

Share this post


Link to post
On 7/24/2018 at 7:10 AM, mrbilky said:

This may be a stupid question but I can see and set my onboard audio in the VM setup and the VM will launch but when I get all the drivers up and running I don't get any audio, so for the purpose of making this work do I need speakers connected to the unRAID box in order for the system to work, I'm logging in from my MacBook and pc but no sound?

 

I'm not sure of what you are trying to do. You want to have audio from a remote computer? If this is the case, I suggest you to open a new thread since this is off topic. However, if you are trying to have sound from a bare metal VM, you would need speaker to make it work.

 

Edited by matthope

Share this post


Link to post

Dear all,

 

Thank you in advance for your support. I am stuck with this problem for mor than a week, and it's diriving me nuts..

I have an issue with my audio driver. I followed the process discrebed in this forom. But the issue remains.

Below, you will find the error message in "libvrtlog" :

Quote

2018-12-01 17:53:40.105+0000: 3102: error : qemuMonitorIORead:609 : Unable to read from monitor: Connection reset by peer
2018-12-01 17:53:40.105+0000: 3102: error : qemuProcessReportLogError:1928 : internal error: qemu unexpectedly closed the monitor: 2018-12-01T17:53:40.072467Z qemu-system-x86_64: -device vfio-pci,host=00:1f.3,id=hostdev1,bus=pci.0,addr=0x8: vfio error: 0000:00:1f.3: group 9 is not viable

 

Share this post


Link to post
9 minutes ago, xgotgot said:

group 9 is not viable

There's other devices in IOMMU group #9 (diagnostics would show us which ones)

Share this post


Link to post
Quote

IOMMU group 0:[8086:3e30] 00:00.0 Host bridge: Intel Corporation Device 3e30 (rev 0a)

IOMMU group 1:[8086:1901] 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 0a)

[10de:1b82] 01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070 Ti] (rev a1)

[10de:10f0] 01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)

IOMMU group 2:[8086:3e98] 00:02.0 VGA compatible controller: Intel Corporation Device 3e98

IOMMU group 3:[8086:a36d] 00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)

[8086:a36f] 00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)

[8086:a370] 00:14.3 Network controller: Intel Corporation Wireless-AC 9560 [Jefferson Peak] (rev 10)

IOMMU group 4:[8086:a360] 00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)

IOMMU group 5:[8086:a352] 00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)

IOMMU group 6:[8086:a340] 00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #17 (rev f0)

IOMMU group 7:[8086:a338] 00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 (rev f0)

IOMMU group 8:[8086:a330] 00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0)

IOMMU group 9:[8086:a305] 00:1f.0 ISA bridge: Intel Corporation Device a305 (rev 10)

[8086:a348] 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)

[8086:a323] 00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)

[8086:a324] 00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)

[8086:15bc] 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-V (rev 10)

 

Share this post


Link to post

That's not the diagnostics, but it appears that 

[8086:15bc] 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-V (rev 10)

is in the same IOMMU group which means that you won't be able to passthrough the audio device in the same group.

 

As before, you can try ACS override to see if it makes a difference in the applicable groupings

Share this post


Link to post

With ACSovveride enable :

 

Quote

IOMMU group 0:[8086:3e30] 00:00.0 Host bridge: Intel Corporation Device 3e30 (rev 0a)

IOMMU group 1:[8086:1901] 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 0a)

 

IOMMU group 2:[8086:3e98] 00:02.0 VGA compatible controller: Intel Corporation Device 3e98

 

IOMMU group 3:[8086:a36d] 00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)

[8086:a36f] 00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)

 

IOMMU group 4:[8086:a370] 00:14.3 Network controller: Intel Corporation Wireless-AC 9560 [Jefferson Peak] (rev 10)

 

IOMMU group 5:[8086:a360] 00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)

 

IOMMU group 6:[8086:a352] 00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)

 

IOMMU group 7:[8086:a340] 00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #17 (rev f0)

 

IOMMU group 8:[8086:a338] 00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 (rev f0)

 

IOMMU group 9:[8086:a330] 00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0)

 

IOMMU group 10:[8086:a305] 00:1f.0 ISA bridge: Intel Corporation Device a305 (rev 10)

[8086:a348] 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)

[8086:a323] 00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)

[8086:a324] 00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)

[8086:15bc] 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-V (rev 10)

 

IOMMU group 11:[10de:1b82] 01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1070 Ti] (rev a1)

 

IOMMU group 12:[10de:10f0] 01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)

 

But i have 2 choices in VM:

Intel cannon Lake PCH cAVS (00:1f:3) or NVIDIA GP104 HD Audio Controller (01:00.1)

But i need to bring out the sound by the motherboard and not by the graphics card.

Share this post


Link to post
37 minutes ago, xgotgot said:

With ACSovveride enable :

 

 

But i have 2 choices in VM:

Intel cannon Lake PCH cAVS (00:1f:3) or NVIDIA GP104 HD Audio Controller (01:00.1)

But i need to bring out the sound by the motherboard and not by the graphics card.

You want to select the [8086:a348] 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10) device.

Share this post


Link to post

And it won't work because the ethernet controller is still in the same group as the audio.

Share this post


Link to post
1 minute ago, Squid said:

And it won't work because the ethernet controller is still in the same group as the audio.

Indeed.

 

I suggest you to purchase a separate audio card. If you can PCI card is the way to go, since USB audio card have sometime the infamous "demonic audio" issue.  

Share this post


Link to post

Software cannot overcome the hardware limitations.  The CPU / chipset / BIOS has decided to group those things together.  If none of the ACS override settings will split them apart, then there is nothing you can do short of passing through a PCIe card & audio

Share this post


Link to post

Yes I understand, do you have an audio card to advise me that will not pose a problem with Unraid.

 

And an update bios or chipset can he correct the groups or not at all. I thank you for your help 

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.