A set of command line tools and a service to make setting up passthrough USB devices easier:
add-custom-usb-policies
- script to store and apply custom USB policies required for specific devicesattach-usb-devices
- script and service to automatically connect USB devices to VMS when XCP-ng boots upplug-usb
- attach a physical USB device to a VM in one commandunplug-usb
- remove a physical USB device from a VM in one command
To set up, copy the files onto your server and run install.sh
to copy everything and set up the service.
You can add any plug-usb
commands you want to run on boot by modifying /usr/bin/attach-usb-devices
.
You can add any custom USB policies you need applied on install or after updates by modifying add-custom-usb-policies
before running install.sh
.
You can also use plug-usb
directly if you want to attach a new device on demand:
# You can use xe vusb-list and xe vm-list to figure out the IDs you need
plug-usb <vusb-uuid> <vm-uuid>
If you want to unplug a device later, you can use unplug-usb
:
unplug-usb <vusb-uuid>
You can list all physical USB devices available and get their UUIDs with xe pusb-list
.
If you customise add-custom-usb-policies
, you can run it again after upgrades to ensure your custom policies are applied again.
This could be useful on a pool master to store VM meta data on a local USB storage device pre and post upgrade backup/recovery
Would like to see how this could be done to expose it as an SR to XCP-ng
Found this: https://support.citrix.com/article/CTX121282/how-to-back-up-virtual-machine-metadata-to-a-usb-device