iGPU Passthrough issue (Audio & IOMMU Group)


Recommended Posts

I have an i5-6400 & AsRock H170M pro4 and I'm trying to pass through the iGPU to Win10 for handbrake encoding (might try the docker, but want to see performance difference).

 

My HD audio is in an IOMMU group with other devices: 

Quote

IOMMU group 8
	[8086:a144] 00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
	[8086:a121] 00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
	[8086:a170] 00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)
	[8086:a123] 00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)

I have set the ACS Override to Yes, as well as tried pci-stub in syslinux config:  (I've rebooted multiple times with each syslinux change seperate - no change to the IOMMU Group).  I've searched & searched, trying different solutions from as far back as 2015.  Most of what I'm searching seems to have been included in the win10 template since problems have been posted.   I just can't get any of the suggested fixes to affect my IOMMU groups.   The xml references the correct PCI address for the audio device (00:1f.3) using the template.  I've seen a mention of specifying address rather than ID for pci-stub, but no suggestion of syntax, so I haven't tried it.  I've screwed up enough Linux systems to know that I need a tutorial......

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

(My server will only boot in GUI Mode, so I set it as default.   I don't know what happened, it booted to regular mode the 1st time it booted, but now stops after loading bzroot, left for 30 minutes & no change.  Started from scratch USB & still same behavior).

 

USB Mouse & Keyboard pass through works fine.

If I select the GPU & Audio to pass through (using the template) - I get an error & VM won't start (error states PCI device (00:1f.3) is in use, as expected).

If I ONLY pass through the GPU, set sound card to 'none' - VM starts, but I get no video on monitor (HDMI -> VGA adapter or VGA) (monitor blanks from unRAID GUI at VM start).  I can RDP in, and installed the Intel Drivers & it seems to work fine (handbrake detects quicksync), just no audio.

 

Any suggestions?  Not sure what I'm doing wrong.

 

 

 

Link to comment

Looks like you have the stub part added to the wrong location (GUI boot mode) not Unraid OS.

 

My IOMMU group 

IOMMU group 11
	[8086:a149] 00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
	[8086:a121] 00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
	[8086:a170] 00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)
	[8086:a123] 00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)

 

And my syslinux.cfg

 

default /syslinux/menu.c32
menu title Lime Technology, Inc.
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append vfio-pci.ids=8086:a170 modprobe.blacklist=i2c_i801,i2c_smbus 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 Memtest86+
  kernel /memtest

 

ACS override wasnt needed for my system, which is similar to yours.

Link to comment

I'm booting to GUI mode because booting to regular mode hangs for some reason (middle part of my 1st post).

I'm probably going to blow it up & start over (format the USB key, start the array from scratch).   The disks were already in use in a test unraid (another MB/proc) & I left the data on them - that could be the booting issue & possibly my PCI stub as well.

 

Is the modprobe part of your append line part of the PCI-stub?

Edited by snidera
added
Link to comment

try copy/paste my syslinux.cfg and rebooting.

 

the only issue with windows 10 was a refresh rate/driver issue which, once updated the p530 Intel drivers was corrected. I have access to all the sunrise point smbus audio devices like a normal setup would. ACS is off from the Unraid web GUI

 

If the VM is running but no video output you could look at your motherboard settings like suggested in the last page of this thread Intel IGD making IGFX primary.

Edited by raidserver
Link to comment

ok so the integrated graphics have been set as primary boot device from the newly flashed asrock bios menu?

have you tried using just hdmi out from the motherboard to hdmi tv/monitor? removing the vga adapter for testing?

 

Does Unraid boot with my syslinux.cfg? 

What error does the VM template give when you select intel audio? (assuming unraid boots) 

 

I would get the VM working without VNC first then work on the audio.

 

 

 

Edited by raidserver
Link to comment
10 hours ago, raidserver said:

ok so the integrated graphics have been set as primary boot device from the newly flashed asrock bios menu?

have you tried using just hdmi out from the motherboard to hdmi tv/monitor? removing the vga adapter for testing?

 

Does Unraid boot with my syslinux.cfg? 

What error does the VM template give when you select intel audio? (assuming unraid boots) 

 

I would get the VM working without VNC first then work on the audio.

 

 

 

 

The gfx did get set back to pcie as primary - thanks for reminding me.

It is booting into normal Unraid mode now (boots with your syslinux.cfg & my previous one). Blew up the USB key & any data on the drives.

I haven't tried to re-install the VM yet, but I've tried all permutations of ACS & PCI-Sub/VFIO-PCI combinations on this page & none have moved the audio out of IOMMU Group 8 (I assume the change will show up in tools/system devices?)

 

Prior to blowing up the Unraid, the VM was acting fine (Via RDP, still no video via HDMI->VGA adapter or VGA) & had the GPU listed as the intel 530 & driver.  Once I get it re-installed, I'll try HDMI.  Thought I'd work on the audio for a bit.

If nothing else, I'll use the RX460 that I plan to use anyway - just wanted the iGPU for quicksync in handbrake (encoding 1300 DVD rips to H265...)  Trying the Handbrake docker out now.

Edited by snidera
Link to comment

Hey snidera its not so much change the IOMMU group, it can release the audio device ID, ours being 8086:a170. The hardware is part of the smbus which has x4 other devices within it so the line isolates the audio for passthrough. 

Like i say we have almost identical systems and being able to passthrough the whole CPU has worked great. Give it another shot without the RX460. I suppose you could get your encodes complete via RDP but having gpu/audio working has been fun with a few VM`s LibreElec/windows/linux mint. Once the VM starts with intel audio selected in the template you know you are golden :)

 

It does everything i need apart from heavy gaming but i use desktop for that rather than put my gtx980 in the server.

 

 

Edited by raidserver
Link to comment

Thanks for you patience.  Your initial solution worked, I just wasn't smart enough to know it.   I wasn't trying to start the VM, only changing the syslinux.cfg, rebooting & checking to see if the audio moved out of the group....  It is working with both ACS on & off now. (turned it off since it doesn't need to be on).  my syslinux.cfg is now identical to yours.

 

Now I just need to figure out video output.  I've tried VGA, DVI & HDMI - the monitor will show unRaid booting, then the terminal (login prompt).  When I start the VM, screen goes blank 'no input' and never comes back.   Since it works until the VM tries to take over, I can't see it being a BIOS or Windows Driver issue.  ACS on/off doesn't affect it.  I can RDP into the VM & it has booted/functions normally (other than the iGPU is disabled right now in Device Manager - see below).

I have a driver issue with this VM (code 43), but previously it was working as if the GPU was normal (VM that I blew up to re-set unraid).   This VM is also making my router cry (killing all network, so I can't see what is going on) & other annoying Win10 annoyances (ignoring BITS limits, making my wife scream trying to watch slingTV).   I think I will start over again & try to go step by step.

Link to comment

No problem, now that the vm template saves and is working if you havent already gridrunner has an excellent two part video on Win 10 VM installs worth watching.  He highlights everything needed for a successful Win 10 install. Like turning off hibernation and windows search function among others, just in case you may have missed something.

Perhaps you have missed a redhat network driver or something. HERE

 

When i first started making vms with this hardware i also had black screen when the vm tried to handoff the video signal, the fix was to make igpu primary gfx video output from bios not auto. This is also paramount when installing a separate gpu. Not realy sure what else i can say about the video other than check cables maybe try other spares. 

 

EDIT: i should say that the only successful vm template settings that worked are SEABIOS and i440fx-2.7

 

Untitled.png

Edited by raidserver
Link to comment

My last VM must have been possessed.   DL'd the creator's update iso & everything is running smoothly (except the crappy keyboard I was using stopped responding after about an hour, but I think the USB cable wss smashed).

It's cranking away at 78 DVD rips compressing them to H265 - if it survives that, there's 1000+ more to try & kill it.

 

Thank you for the help.

Link to comment

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.