Xcp-ng usb passthrough

I have made this work, but it was something of a struggle. Below are some notes that I made for my project to pass a USB plotter connection to a VM. Note that your GUIDs will not match what I got (shown below). You do have to get a command line session on the xcp-ng host to execute the xe commands.

How to configure USB Passthrough with XenServer using xe CLI
============================================================

https://support.citrix.com/article/CTX235042

1. Plug the USB devices to the XenServer host

2. Enable passthrough

xe pusb-list
	uuid ( RO)            : 83088b6f-0aae-88b2-8829-0945c437e346
				path ( RO): 5-1
		   vendor-id ( RO): 0fe6
		 vendor-desc ( RO): ICS Advent
		  product-id ( RO): 811e
		product-desc ( RO): Parallel Adapter
			  serial ( RO):
			 version ( RO): 1.10
		 description ( RO): ICS Advent_Parallel Adapter
		 
xe pusb-param-set uuid=83088b6f-0aae-88b2-8829-0945c437e346 passthrough-enabled=true

3. Shut down the target guest VM that you want to pass the USB device through since hot plug is not supported.

4. Attach the USB device to the VM, run the following command:

xe usb-group-list PUSB-uuids=83088b6f-0aae-88b2-8829-0945c437e346
	uuid ( RO)                : 38b38107-d2a2-db30-decd-a2aa76c4a445
			  name-label ( RW): Group of 0fe6 811e USBs
		name-description ( RW):

xe vusb-create usb-group-uuid=38b38107-d2a2-db30-decd-a2aa76c4a445 vm-uuid=0490a094-7a64-5e90-b0e0-bf5d7ec5d3c3
	ebd0f361-3c93-e989-24cb-f3f26a6baa7b
	
5. Start the target guest VM.

xe vm-start uuid=0490a094-7a64-5e90-b0e0-bf5d7ec5d3c3


To detatch:

xe vusb-unplug uuid=<vusb_uuid>		(Unplugs USB from VM)
xe vusb-destroy uuid=<vusb_uuid> 	(Removes the VUSB list from VM)
1 Like