I Can't Pass a USB Controller to my Windows 10 VM - No Matter What I Do


Recommended Posts

I got into unRAID about a month ago.  I really like the platform, but I am having an issue trying to pass a USB Controller to my VM.  I tried all the steps listed on the GUIDE posted at https://lime-technology.com/forum/index.php?topic=36768.0 to no avail.  I am starting to believe that unRAID and Skylake motherboards don't mix well for this type of thing.  I also bought a separate USB controller to put in my rig, and that didn't work.  I am hoping the community can help.

 

CPU Specs

System Overview	
unRAID system:	unRAID server Plus, version 6.1.9
Model:	Custom
Motherboard:	ASUSTeK COMPUTER INC. - Z170-DELUXE
Processor:	Intel® Core™ i7-6700K CPU @ 4.00GHz
HVM:	Enabled
IOMMU:	Enabled
Cache:	L1 Cache = 128 kB (max. capacity 128 kB)
L2 Cache = 1024 kB (max. capacity 1024 kB)
L3 Cache = 8192 kB (max. capacity 8192 kB)
Memory:	32768 MB (max. installable capacity 64 GB)
BANK 0 = 8192 MB, 3200 MHz
BANK 1 = 8192 MB, 3200 MHz
BANK 2 = 8192 MB, 3200 MHz
BANK 3 = 8192 MB, 3200 MHz
Network:	eth0: 1000Mb/s, full duplex, mtu 1500
eth1: not connected
Kernel:	Linux 4.1.18-unRAID x86_64
OpenSSL:	1.0.1s

 

I also have 16TB of storage (WD Reds) and dual 1TB SSDs (SanDisk) for cache.  I bought an extra SATA controller so that I could add two more drives to my setup. I installed a Sound Blaster Z (SB1500) so that I could pass sound to my VM since I could not get the onboard sound to the VM for some reason, and I didn't like the idea of HDMI sound from my GPU.  Speaking of the GPU, I have a nVidia GTX 650 in there for now (I plan on upgrading to a 960 or 970).  I am able to pass that GPU to my VM.

 

More Infos...

 

PCI DEVICES

00:00.0 Host bridge: Intel Corporation Sky Lake Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Sky Lake PCIe Controller (x16) (rev 07)
00:01.1 PCI bridge: Intel Corporation Sky Lake PCIe Controller (x8) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Sky Lake Integrated Graphics (rev 06)
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)
00:17.0 SATA controller: Intel Corporation Device a102 (rev 31)
00:1b.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Root Port #17 (rev f1)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)
00:1c.2 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #3 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1)
00:1c.6 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #7 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V (rev 31)
01:00.0 VGA compatible controller: NVIDIA Corporation GK106 [GeForce GTX 650 Ti] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GK106 HDMI Audio Controller (rev a1)
02:00.0 Audio device: Creative Labs SB Recon3D (rev 01)
03:00.0 USB controller: VIA Technologies, Inc. Device 3483 (rev ff)
04:00.0 USB controller: ASMedia Technology Inc. Device 1242
05:00.0 PCI bridge: ASMedia Technology Inc. Device 1187
06:01.0 PCI bridge: ASMedia Technology Inc. Device 1187
06:02.0 PCI bridge: ASMedia Technology Inc. Device 1187
06:03.0 PCI bridge: ASMedia Technology Inc. Device 1187
06:04.0 PCI bridge: ASMedia Technology Inc. Device 1187
06:05.0 PCI bridge: ASMedia Technology Inc. Device 1187
06:06.0 PCI bridge: ASMedia Technology Inc. Device 1187
06:07.0 PCI bridge: ASMedia Technology Inc. Device 1187
07:00.0 SATA controller: Marvell Technology Group Ltd. Device 9215 (rev 11)
08:00.0 Network controller: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter (rev 03)
09:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 02)
0c:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)
0e:00.0 USB controller: ASMedia Technology Inc. Device 1242
0f:00.0 USB controller: ASMedia Technology Inc. Device 1242

 

IOMMU Groups

/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.1
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/1/devices/0000:02:00.0
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/3/devices/0000:00:14.0
/sys/kernel/iommu_groups/4/devices/0000:00:16.0
/sys/kernel/iommu_groups/5/devices/0000:00:17.0
/sys/kernel/iommu_groups/6/devices/0000:00:1b.0
/sys/kernel/iommu_groups/6/devices/0000:03:00.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.2
/sys/kernel/iommu_groups/7/devices/0000:00:1c.4
/sys/kernel/iommu_groups/7/devices/0000:00:1c.6
/sys/kernel/iommu_groups/7/devices/0000:04:00.0
/sys/kernel/iommu_groups/7/devices/0000:05:00.0
/sys/kernel/iommu_groups/7/devices/0000:06:01.0
/sys/kernel/iommu_groups/7/devices/0000:06:02.0
/sys/kernel/iommu_groups/7/devices/0000:06:03.0
/sys/kernel/iommu_groups/7/devices/0000:06:04.0
/sys/kernel/iommu_groups/7/devices/0000:06:05.0
/sys/kernel/iommu_groups/7/devices/0000:06:06.0
/sys/kernel/iommu_groups/7/devices/0000:06:07.0
/sys/kernel/iommu_groups/7/devices/0000:07:00.0
/sys/kernel/iommu_groups/7/devices/0000:08:00.0
/sys/kernel/iommu_groups/7/devices/0000:09:00.0
/sys/kernel/iommu_groups/7/devices/0000:0c:00.0
/sys/kernel/iommu_groups/7/devices/0000:0e:00.0
/sys/kernel/iommu_groups/7/devices/0000:0f:00.0
/sys/kernel/iommu_groups/8/devices/0000:00:1d.0
/sys/kernel/iommu_groups/9/devices/0000:00:1f.0
/sys/kernel/iommu_groups/9/devices/0000:00:1f.2
/sys/kernel/iommu_groups/9/devices/0000:00:1f.3
/sys/kernel/iommu_groups/9/devices/0000:00:1f.4
/sys/kernel/iommu_groups/9/devices/0000:00:1f.6

 

USB Devices

Bus 009 Device 002: ID 04d9:fa50 Holtek Semiconductor, Inc. 
Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 010 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 002: ID 0781:5583 SanDisk Corp. 
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 05e3:0616 Genesys Logic, Inc. hub
Bus 002 Device 002: ID 05e3:0616 Genesys Logic, Inc. hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0b05:180a ASUSTek Computer, Inc. 
Bus 001 Device 007: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 006: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 005: ID 1b1c:0c07 Corsair 
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

SCSI Devices

[0:0:0:0]    disk    SanDisk  Ultra Fit        1.00  /dev/sda 
[3:0:0:0]    disk    ATA      SanDisk SDSSDXPS T0RL  /dev/sdb 
[4:0:0:0]    disk    ATA      SanDisk SDSSDXPS T0RL  /dev/sdc 
[5:0:0:0]    disk    ATA      WDC WD30EFRX-68E 0A82  /dev/sdd 
[6:0:0:0]    disk    ATA      WDC WD30EFRX-68E 0A82  /dev/sde 
[9:0:0:0]    disk    ATA      WDC WD40EFRX-68W 0A82  /dev/sdf 
[10:0:0:0]   disk    ATA      WDC WD40EFRX-68W 0A82  /dev/sdg 
[11:0:0:0]   disk    ATA      WDC WD30EFRX-68E 0A82  /dev/sdh 
[12:0:0:0]   disk    ATA      WDC WD30EFRX-68E 0A82  /dev/sdi 

 

I am currently using the excellent Hotplug USB for VMs Plug-In (https://lime-technology.com/forum/index.php?topic=47240.0) as a work around for being able to plug in my game controller without having to restart my Windows 10 VM.  I would rather just pass a controller to my VM, and have the hot plugging handled natively.

 

I have tried the PCIe ACS Override, stubbing my syslinux.cfg, adding stuff to my VM config XML, etc.  I am stumped.

Link to comment

Just FYI: I am having similar trouble on my (non-skylake) build. A cheap SATA controller is passing through my BluRay drive without any issues, and after booting the latest beta for the first time the controller worked with the vm. Once.

 

I have the ACS override enabled, am passing through my GTX 660 Ti and have stubbed both a SATA and my USB3 controller.

 

I could give more detailed info if I had the time, just wanted to let you know you are not alone.

 

With the hotplug plugin I can at least reliably add USB devices from the webinterface..

Link to comment

Edit: Needed to look further.

You should be able to get the 00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31) or the 03:00.0 USB controller: VIA Technologies, Inc. Device 3483 (rev ff) controller.

 

Is this the ones you're trying?

The add-on card and sound card still apply to what I'm talking about below.

 

 

 

Without the ACS patch working for Skylake builds (one user says it does work for him, but he's unfortunately not the majority of cases I've read) considering the grouping, there is NO way this is going to work.. (not trying to be mean)  :D .

 

The issue is that what you want to pass is all in group 7, all this stuff:

/sys/kernel/iommu_groups/7/devices/0000:00:1c.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.2
/sys/kernel/iommu_groups/7/devices/0000:00:1c.4
/sys/kernel/iommu_groups/7/devices/0000:00:1c.6
/sys/kernel/iommu_groups/7/devices/0000:04:00.0
/sys/kernel/iommu_groups/7/devices/0000:05:00.0
/sys/kernel/iommu_groups/7/devices/0000:06:01.0
/sys/kernel/iommu_groups/7/devices/0000:06:02.0
/sys/kernel/iommu_groups/7/devices/0000:06:03.0
/sys/kernel/iommu_groups/7/devices/0000:06:04.0
/sys/kernel/iommu_groups/7/devices/0000:06:05.0
/sys/kernel/iommu_groups/7/devices/0000:06:06.0
/sys/kernel/iommu_groups/7/devices/0000:06:07.0
/sys/kernel/iommu_groups/7/devices/0000:07:00.0
/sys/kernel/iommu_groups/7/devices/0000:08:00.0
/sys/kernel/iommu_groups/7/devices/0000:09:00.0
/sys/kernel/iommu_groups/7/devices/0000:0c:00.0
/sys/kernel/iommu_groups/7/devices/0000:0e:00.0
/sys/kernel/iommu_groups/7/devices/0000:0f:00.0

 

That's a LOT of stuff unfortunately, and to properly pass hardware (anyway you get it; naturally, ACS override) you need to pass everything to each VM, or stub it (not use it). This doesn't apply to root ports in the grouping.

 

Your sound card that failed was also in the same group (9) with your ethernet card, which I assume you don't want to pass as you need it for UnRAID.

Link to comment

Edit: Needed to look further.

You should be able to get the 00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31) or the 03:00.0 USB controller: VIA Technologies, Inc. Device 3483 (rev ff) controller.

 

Is this the ones you're trying?

The add-on card and sound card still apply to what I'm talking about below.

 

 

 

Without the ACS patch working for Skylake builds (one user says it does work for him, but he's unfortunately not the majority of cases I've read) considering the grouping, there is NO way this is going to work.. (not trying to be mean)  :D .

 

[redacted for brevity]

 

That's a LOT of stuff unfortunately, and to properly pass hardware (anyway you get it; naturally, ACS override) you need to pass everything to each VM, or stub it (not use it). This doesn't apply to root ports in the grouping.

 

Your sound card that failed was also in the same group (9) with your ethernet card, which I assume you don't want to pass as you need it for UnRAID.

 

First off, I am appreciative of everyone who took a look.  The VIA Technologies USB card is the main one I tried to get working, but it doesn't recognize devices that are plugged into it 90% of the time.  I think I got it to work as expected one time, and the next time I rebooted - nothing.  I have tried probably 50 times to get that card to work, and I think I am going to give up on it.  I did get the sound card working though.  I am very happy about that.

 

I tried a couple of the 6.2 betas - hoping the kernel got updated for the skylake IOMMU stuff, and that didn't work out either. 

Link to comment

Unfortunately not, they have nothing to do with the issue.

However I'm surprised that you're having issues with the items within their own IOMMU groups. 6.2 by default has IOMMU=PT set (if I'm not defining that perfectly, sorry, on phone). That may help your issue, or if not you can toggle that back to off.

Which version are you currently using, 6.1.9?.

You can enable this also in 6.1.9 by adding it to your syslinux.cfg file.

 

Link to comment

I'm not sure about what it really does, but it doesn't hurt to try it.

 

Could you post the XML of your VM and also the syslinux.cfg? The diagnostic zip would also be nice to have.

 

VM XML

<domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>DBELL-PRIME</name>
  <uuid>cc39aa3c-4039-90c7-3daf-965081b479f8</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='4'/>
    <vcpupin vcpu='3' cpuset='5'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='4' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/vdisks/DBell-Prime/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/ArrayVdisks/DBell-Prime/vdisk2.img'/>
      <backingStore/>
      <target dev='hdd' bus='virtio'/>
      <alias name='virtio-disk3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/Win10_1511_English_x64.iso'/>
      <backingStore/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <alias name='ide0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/virtio-win-0.1.113.iso'/>
      <backingStore/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <alias name='ide0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:a3:e4:6f'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/DBELL-PRIME.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x04d9'/>
        <product id='0xfa50'/>
        <address bus='9' device='2'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0b05'/>
        <product id='0x180a'/>
        <address bus='1' device='3'/>
      </source>
      <alias name='hostdev1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x04d8'/>
        <product id='0x00df'/>
        <address bus='1' device='2'/>
      </source>
      <alias name='hostdev2'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x1b1c'/>
        <product id='0x0c07'/>
        <address bus='1' device='5'/>
      </source>
      <alias name='hostdev3'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
        <address bus='1' device='4'/>
      </source>
      <alias name='hostdev4'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.0,bus=root.1,addr=01.0'/>
  </qemu:commandline>
</domain>

 

SYSLINUX.CFG

default /syslinux/menu.c32
menu title Lime Technology
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append initrd=/bzroot
label unRAID OS Safe Mode (no plugins)
  kernel /bzimage
  append initrd=/bzroot unraidsafemode
label Memtest86+
  kernel /memtest

 

Diagnostics are attached...

 

Thanks saarg!

prime-diagnostics-20160403-2105.zip

Link to comment

I'm not sure about what it really does, but it doesn't hurt to try it.

I've used this term, the wife disagrees!  :o

 

Use it for troubleshooting, basically:

"Sets the IOMMU into passthrough mode for host devices.  This reduces the overhead of the IOMMU for host owned devices, but also removes any protection the IOMMU may have provided again errant DMA from devices.  If you weren't using the IOMMU before, there's nothing lost.  Regardless of passthrough mode, the IOMMU will provide the same degree of isolation for assigned devices."

http://vfio.blogspot.com/2015/05/vfio-gpu-how-to-series-part-3-host.html

 

For difficult cards it is recommended to try this, add to your syslinux.cfg as such:

From this

label unRAID OS (GUI)
  menu default
  kernel /bzimage
  append initrd=/bzroot

change it to this:

label unRAID OS (GUI)
  menu default
  kernel /bzimage
  append iommu=pt initrd=/bzroot

Apply and then reboot your system.

Link to comment

I see that you do not pass through the audio of the graphics card. You should do that also, even if you don't use it. It have caused instability for some people. It's not related to the problem of passing through stuff.

 

I'll look more at this later today after work.

Link to comment

Could you add the below code at the end of the XML file above the </devices> tag?

 

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
      </source>
    </hostdev>

 

Before you add this to the XML, be sure to remove any usb devices connected to the usb ports of the card. Also remove any devices that you have passed through in the VM template that you want to plug in the usb card.

Then you can add the above to the XML.

 

When the VM have started you should install the driver for the USB card. If it's installed automatically, check if there is a newer version available from the producer of the card. After the drivers have installed, you can try to plug in the devices you want connected.

Link to comment

!!!!!!!!!!!!!!!

;D ;D ;D ;D ;D ;D ;D ;D ;D ;D

 

I don't know what happened, when I added...

 

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
      </source>
    </hostdev>

 

... to my VM XML - IT WORKED!!!!!

 

I have done this many times, and I just could not get it to work.  I don't know if I had something plugged into it, something screwy with my card - I just don't know.  All I know I have restarted the VM, and it still works.  I have rebooted my server, and it still works. 

 

THANK YOU ALL WHO CONTRIBUTED TO THIS THREAD!!!!

Link to comment
  • 1 month later...

So I am back again  :-\  :'(

 

So I am having trouble the whole USB thing.  Whenever, I have a power outage, I can't reboot the computer if there is anything plugged into the USB ports of the extra USB card.  So I have to go under the desk to unplug everything just to cut my computer on.  If that is not bad enough, I can't get my VM to recognize my card reliably.  Sometimes it does, and sometimes it doesn't.  It take me an hour of hit and miss to get the USB passthrough to work.  Is there a good way of troubleshooting this?  I think I read somewhere that Skylake does not like having extra USB 3 controllers, could that be the problem?

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.