SebbiUltimate Posted July 11, 2020 Posted July 11, 2020 (edited) Scenario: - You want to assign identical devices to each VM - You don't have multiple USB controllers - You cannot identify the USB devices by USB vendor and product id - Amount of VMs could vary and USB device models per type (keyboard, mouse, etc.) could also vary Solution: This script enumerates all running VMs and assigns each VM the configured devices dynamically. If something changes, like amount of running VMs or the attached devices, just run the script again. How to use: 1. Install Python from NerdPack 2. Copy the script to your unraid server as usbattach.py and make it executable (chmod +x usbattach.py) 3. Create a file called usbdevices.cfg in the same directory and fill in the device description per device in each line, if the devices of this type are exhausted you can add another device description with semicolon, for example: Fujitsu Siemens Computers;Holtek Semiconductor, Inc. Keyboard Logitech, Inc. M90/M100 Optical Mouse Generalplus Technology Inc. This means that every VM gets a Fujitsu Keyboard, a Logitech mouse and a Generalplus sound device; if the Fujitsu keyboards are exhausted, the next VM gets a Holtek keyboard assigned. 4. Run the script. (This can be automated e.g. via SSH plink.exe from putty) Download: https://gist.github.com/SebbiUltimate/bcf61efb9be5bbfc5161097e0d998c9a Edited July 19, 2020 by SebbiUltimate 1 Quote
segator Posted September 29, 2020 Posted September 29, 2020 sounds very interesting but not sure if this is what i want. i want to ensure that all the usb's connected to the host are passed through to the running VM that have specific GPU passed through. I of course want to blacklist some devices like the Unraid OS USB drive. If i shutdown the VM and I run another one that have the gpu passed thourgh the script should mount all the usb's to the new VM. is that possible? Quote
SebbiUltimate Posted September 29, 2020 Author Posted September 29, 2020 53 minutes ago, segator said: sounds very interesting but not sure if this is what i want. i want to ensure that all the usb's connected to the host are passed through to the running VM that have specific GPU passed through. I of course want to blacklist some devices like the Unraid OS USB drive. If i shutdown the VM and I run another one that have the gpu passed thourgh the script should mount all the usb's to the new VM. is that possible? Yeah that should work, it maps the devices to all running VMs, so if you shut it down and start another the USB devices should remap to the other VM. Quote
segator Posted September 29, 2020 Posted September 29, 2020 interesting, but this is only for devices in the list(cfg file) right? so if i'm going to plug new devices I need to update the list? another thing I notice is when I unplug the usb cable sometimes the VM got freeze if I first don't unplug via script Quote
SebbiUltimate Posted September 29, 2020 Author Posted September 29, 2020 47 minutes ago, segator said: interesting, but this is only for devices in the list(cfg file) right? so if i'm going to plug new devices I need to update the list? Yes, so the USB stick for Unraid and other devices will stay unless configured Quote
segator Posted September 29, 2020 Posted September 29, 2020 I notice when adding a new usb on a running vm with already usb passed thourgh the script disconect all of them and then reconect. so there are a temporal disconection on already passedtrhough usbs Quote
Recommended Posts
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.