I have a setup with two Logitech Unifying receivers, each receiver has a keyboard bound to it. One of the receiver is to be used by the physical machine to which the devices are connected, the other one has to be passed to a QEMU virtual machine.
I am able to manually unbind one receiver following the instructions in How to use Linux kernel driver bind/unbind interface for USB-HID devices?. This method has some disadvantages:
- I have to determine the device identifier manually by looking at dmesg.
- Each time the virtual machine is closed, and on every reboot, the unbinding process has to be repeated.
I then tried to find kernel module options that prevents the USB driver from binding it at all and found the
quirks option for
usbhid. Unfortunately, this parameter cannot be used since I have two identical receivers with the same vendor and device ID.
The two devices are distinguishable by their separate buses. That is,
lsusb looks like:
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver Bus 002 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Is there a way to prevent
usbhid) from binding a USB device on a certain bus?
The target machine is running Arch Linux 64-bit with a Linux 3.9 kernel.