I was required to auto map a USB DoK to a KVM VM (specific VM, mind you!), as a result of connecting this device to the host. I’ve looked it up on the Internet, and the closest I could get there was this link. It was almost a complete solution, but it had a few bugs, so I will re-describe the whole process, with the fixes I’ve added to the process and udev rules file. While this guide is rather old, it did solve my requirement, which was to map a specific set of devices (“known USB devices”) to the VM, and not any and every USB device (or even – USB DoK) connected to the system.
In my example, I’ve used SanDisk Corp. Ultra Fit, which its USB identifier is 0781:5583, as can be seen using ‘lsusb’ command:
[root@localhost ~]# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 020: ID 0781:5583 SanDisk Corp. Ultra Fit
My VM is called “centos7.0” in this example. I am using integrated KVM+QEMU+LIBVIRT on a generic CentOS 7.5 system.
Preparation
You will need to prepare two files:
USB definitions file (for easier config of libvirt)
UDEV rules file (which will be triggered by add/remove operation, and will call the USB definitions file)
USB Definitions file
I’ve placed it in /opt/autousb/hostdev-0781:5583.xml , and it holds the following (mind the USB device identifiers!)
I’ve created a file /etc/udev/rules.d/90-libvirt-usb.rules with the content below. Note that the device identifiers are there, but in the “remove” section they appear differently. Remove leading zero(s) and change the string. This is caused because on removal, the device does not report all its properties to the OS. Also – you cannot connect more than three (3) such devices to a VM, so when you fail to detach three devices (following a consecutive insert/remove operations, for example), you will not be able to attach a fourth time.
Weird behavior of my Orinoco_pci wireless network interface. On my home 802.11b network, I get performance of about 600KB/s, instead of 1.1MB/s, which should be the approximate speed to expect to. Not only that, but browsing to external websites and the likes (I compare using wget), I get speeds of <7KB/s, and sometimes decreasing to…
Well, this is rather common. Network-free seeding is being performed through using a tape device. What happens if you do not have a tape device? We have the poor-man’s huge TB disks (SATA for the people) connected to simple PC systems, but no tape… We perform network-free seeding into disk. There is a utility called…
While searching the web for how to perform PCI-Passthrough on XenServers, we mostly get info about previous versions. Since I have just completed setting up PCI-Passthrough on XenServer version 6. 5 (with recent update 8, just to give you some notion of the exact time frame), I am sharing it here. Hardware: Cisco UCS blades,…
Owning a laptop, you try to get the best out of it. you want it to be the strongest it can, you want it to be fast, reliable, useful, and cunning. My Fujitsu is cunning, I can say. Not a day passes without me hearing someone saying "Wow, it is so small". I didn’t get…
I’ve had the "pleasure" of reconfiguring Linux Vservers (virtual servers, kernel level, etc), to add additional IP addresses to each. Although this setup is old, and I wouldn’t dare change it to anything else (not on a production server, running 3 vservers, each running 400 hosted sites, etc), so I’ve checked the scripts, and so…
I was missing some bleeding-edge packages, and while I was able to find the RPM packages, I was unable to find the repo path. So, thanks to this post, I was able to use it. This will probably break my Linux, so I will use it in a test environment first.The repo file would look…
One Comment