Jump to content
SpaceInvaderOne

**VIDEO GUIDE - A little about Passthrough, IOMMU Groups and breaking them up **

15 posts in this topic Last Reply

Recommended Posts

Posted (edited)

Hi guys. This video is about PCIe passthrough. It discusses what IOMMU is and how it works, the PCIe architecture and how it can effect iommu groupings. The video also shows some solutions for dealing with passing through devices when they are not alone in an iommu group. Hope its useful.

 

 

Edited by gridrunner
  • Like 1
  • Upvote 2

Share this post


Link to post

Good stuff.

Share this post


Link to post

Thanks for sharing. 

 

I am trying to pass-through my on-board audio card. Did some changes in syslinux, but still not succeeding to pass the soundcard to my VM. Any chance you can have a look at below?

 

 

Share this post


Link to post
Posted (edited)

I am trying to pass-through my on-board audio card (S1220A), but not successful.

 

I tried all three options in your youtube video and none of them allows me to start the VM with the audio card passed through.

 

No matter what I do, the IOMMU group includes the four devices below. When using the multifunction command, the group number changes, but the four devices stay grouped.

 

IOMMU group 13: [8086:a2d2] 00:1f.0 ISA bridge: Intel Corporation Device a2d2
  [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

 

I can get the audio card to passthrough with two different syslinux configs:

 

append vfio-pci.ids=8086:a2f0 modprobe.blacklist=i2c_i801,i2c_smbus initrd=/bzroot

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

 

I don't get an error message and can start the VM. However, the audio card is not visible in Windows. Log file reveals that something is still wrong.

 

2018-07-22T03:10:12.081712Z qemu-system-x86_64: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.

 

Any thoughts? @gridrunner @matthope

Edited by steve1977

Share this post


Link to post
8 minutes ago, steve1977 said:

Any thoughts on this issue and how to address?

 

I know it sounds stupid, but have you tried to power off your server (remove the ac plug for 10 seconds) ? Sometime in my case the motherboard seems to lockup the control of the i2c bus. The only way to make it work again is to power it off. Hope it will help.

Share this post


Link to post

Thanks for your note. I had tried the "AC trick" before and just again. Unfortunately, it is not working for me. Any other idea what I could try? I tried to pass-through the card to both a Win and Mac VM, but unfortunately with the same result.

Share this post


Link to post
On 7/22/2018 at 11:15 AM, steve1977 said:

I am trying to pass-through my on-board audio card (S1220A), but not successful.

 

I tried all three options in your youtube video and none of them allows me to start the VM with the audio card passed through.

 

No matter what I do, the IOMMU group includes the four devices below. When using the multifunction command, the group number changes, but the four devices stay grouped.

 

IOMMU group 13: [8086:a2d2] 00:1f.0 ISA bridge: Intel Corporation Device a2d2
  [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

 

I can get the audio card to passthrough with two different syslinux configs:

 

append vfio-pci.ids=8086:a2f0 modprobe.blacklist=i2c_i801,i2c_smbus initrd=/bzroot

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

 

I don't get an error message and can start the VM. However, the audio card is not visible in Windows. Log file reveals that something is still wrong.

 

2018-07-22T03:10:12.081712Z qemu-system-x86_64: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.

 

Any thoughts? @gridrunner @matthope

 

There is some more in the log this time. Please see the full one below. Thanks for any thoughts you may have to trouble-shoot?

 

2018-07-28 12:40:32.264+0000: Domain id=1 is tainted: high-privileges
2018-07-28 12:40:32.264+0000: Domain id=1 is tainted: custom-argv
2018-07-28 12:40:32.264+0000: Domain id=1 is tainted: host-cpu
2018-07-28T12:40:32.303473Z qemu-system-x86_64: -chardev pty,id=charserial0: char device redirected to /dev/pts/0 (label charserial0)
2018-07-28T12:40:32.970282Z qemu-system-x86_64: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.
2018-07-28T12:40:32.974277Z qemu-system-x86_64: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.
usb_desc_get_descriptor: 2 unknown type 33 (len 10)
usb_desc_get_descriptor: 1 unknown type 33 (len 10)
usb_desc_get_descriptor: 1 unknown type 33 (len 10)

Share this post


Link to post
On 7/28/2018 at 8:03 PM, steve1977 said:

 

There is some more in the log this time. Please see the full one below. Thanks for any thoughts you may have to trouble-shoot?

 

2018-07-28 12:40:32.264+0000: Domain id=1 is tainted: high-privileges
2018-07-28 12:40:32.264+0000: Domain id=1 is tainted: custom-argv
2018-07-28 12:40:32.264+0000: Domain id=1 is tainted: host-cpu
2018-07-28T12:40:32.303473Z qemu-system-x86_64: -chardev pty,id=charserial0: char device redirected to /dev/pts/0 (label charserial0)
2018-07-28T12:40:32.970282Z qemu-system-x86_64: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.
2018-07-28T12:40:32.974277Z qemu-system-x86_64: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.
usb_desc_get_descriptor: 2 unknown type 33 (len 10)
usb_desc_get_descriptor: 1 unknown type 33 (len 10)
usb_desc_get_descriptor: 1 unknown type 33 (len 10)

 

I don't know for the usb_desc, but the others are normal.

Share this post


Link to post

What about the "cannot reset device"? I thought this poses an issue? If not, anything I need to do to make my VM "see" the audio card?

Share this post


Link to post
Posted (edited)
On 7/30/2018 at 5:40 AM, steve1977 said:

What about the "cannot reset device"? I thought this poses an issue? If not, anything I need to do to make my VM "see" the audio card?

 

Like I said that's normal. 

 

There is actually no reset mecanism for this device, so when the VM start the peripheral must be already in a appropriate state. That's why you need to blacklist the i2c bus and that a power cycle could resolve this issue (sadly not in your case). You could do a lsmod to see if a i2c driver is loaded, after that your only chance are the redhat mail chain.

Edited by matthope

Share this post


Link to post

Mmh... This is weird. I only cycled down for 5min. Maybe I'll give it a try keeping it shut down for an hour or so. I noticed that it takes a minute or so after I pull the plug for all lights to disappear. Maybe more time will allow it to fully reset... Seems my only hope...

Share this post


Link to post

I disconnected from AC for some more time, but still not working. I still keep seeing below error in the log. Any more thoughts? Anything I can help to provide for trouble-shooting?

 

2018-07-28T12:40:32.970282Z qemu-system-x86_64: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.
2018-07-28T12:40:32.974277Z qemu-system-x86_64: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.

Share this post


Link to post

Is there any way to use a network adapter for pfsense without passing it though as I want the ability to use a 10gb adapter to access unraid array, plex media library and pfsense ethernet cahce

Share this post


Link to post

You can enable bridging on the 10 gbe adapter in Unraid then pass a virtual adapter to pfSense.

 

1400571960_ScreenShot2018-10-25at20_32_45.thumb.png.033099ebd837ec763063e986cfb7e269.png

 

Using vmxnet3 (  <model type='vmxnet3'/> ) will probably give better performance than the virtual e1000 in the pfSense vm for the 10 gbe.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now