September 2, 20178 yr I have 3 windows VMs with each passing through 2 USB ports (one mouse, one keyboard). Since all devices are identical, I have to use: <hostdev mode='subsystem' type='usb' managed='yes'> <source> <address bus='3' device='10'/> </source> <address type='usb' bus='0' port='1'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='yes'> <source> <address bus='3' device='11'/> </source> <address type='usb' bus='0' port='2'/> </hostdev> ..to assign all my devices. When I go to add another new USB device (a headset), I add the following: <hostdev mode='subsystem' type='usb' managed='yes'> <source> <address bus='3' device='16'/> </source> <address type='usb' bus='0' port='3'/> </hostdev> and I get "internal error: No free USB ports". If I use the Libvirt Hotplug USB plugin, I get "error: internal error: No free USB ports" so I dont think I'm messing up the XML. I have plenty of free usb ports on the motherboard. Here is lsusb -t output: /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M |__ Port 5: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M |__ Port 3: Dev 15, If 0, Class=Human Interface Device, Driver=usbfs, 1.5M |__ Port 3: Dev 15, If 1, Class=Human Interface Device, Driver=usbfs, 1.5M |__ Port 4: Dev 14, If 2, Class=Human Interface Device, Driver=usbfs, 12M |__ Port 4: Dev 14, If 0, Class=Human Interface Device, Driver=usbfs, 12M |__ Port 4: Dev 14, If 1, Class=Human Interface Device, Driver=usbfs, 12M |__ Port 7: Dev 16, If 0, Class=Audio, Driver=, 12M |__ Port 7: Dev 16, If 3, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 7: Dev 16, If 1, Class=Audio, Driver=, 12M |__ Port 7: Dev 16, If 2, Class=Audio, Driver=, 12M |__ Port 9: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 3: Dev 12, If 1, Class=Human Interface Device, Driver=usbfs, 1.5M |__ Port 3: Dev 12, If 0, Class=Human Interface Device, Driver=usbfs, 1.5M |__ Port 4: Dev 13, If 1, Class=Human Interface Device, Driver=usbfs, 12M |__ Port 4: Dev 13, If 2, Class=Human Interface Device, Driver=usbfs, 12M |__ Port 4: Dev 13, If 0, Class=Human Interface Device, Driver=usbfs, 12M |__ Port 11: Dev 10, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 11: Dev 10, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 12: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 12: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 12: Dev 11, If 2, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 14: Dev 9, If 0, Class=Mass Storage, Driver=usb-storage, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M I've read that libvirt has a limitation of 6 usb per VM, but I'm only use 2 each (although that makes it 6 total before I try adding the headset).
September 2, 20178 yr Personally, id get a pcie usb3 card and pass that through to each vm... less headaches with limitations of passing individual usb ports.
September 2, 20178 yr Author 44 minutes ago, billington.mark said: Personally, id get a pcie usb3 card and pass that through to each vm... less headaches with limitations of passing individual usb ports. I dont have any free PCIe slots to add one, otherwise I would.
September 10, 20178 yr Author I found the solution so figured I'd come back and post it so others seeing the same error dont have to wonder what happened. I went back to where I pulled the code for adding devices when you have more than one with the same name, VM USB Passthrough Multiple Devices with the same Vendor/Product I had to take out the: <address type='usb' bus='0' port='2'/> for each device that I had already added. Unraid will add that part back in and fix it up automagically. Edited September 10, 20178 yr by bigwah
Archived
This topic is now archived and is closed to further replies.