[CentOS-virt] Hot adding USB devices to guests at a fixed address

Tue Nov 26 12:22:30 UTC 2013
Stephen Harris <lists at spuddy.org>

I have a device I want a guest to see.  I've configured the following:

  % cat /etc/libvirt/HotPlug/owon.xml 
  <hostdev mode='subsystem' type='usb'>
    <source>
      <vendor id='0x5345'/>
      <product id='0x1234'/>
    </source>
  </hostdev>

And then in udev:
  % cat /etc/udev/rules.d/90-owon.rules 
  ACTION=="add", \
    SUBSYSTEM=="usb", \
    SYSFS{idVendor}=="5345", \
    SYSFS{idProduct}=="1234", \
    RUN+="/usr/bin/virsh attach-device XP_VM1 /etc/libvirt/HotPlug/owon.xml"

  ACTION=="remove", \
    SUBSYSTEM=="usb", \
    SYSFS{idVendor}=="5345", \
    SYSFS{idProduct}=="1234", \
    RUN+="/usr/bin/virsh detach-device XP_VM1 /etc/libvirt/HotPlug/owon.xml"

Now this works; I plug the device in and the guest sees it.

The problem is that, each time, it shows up at a different address on
the guest's USB bus.  And, Windows XP being Windows, this means it asks
to load a device driver each and every time (I've never understood why
Windows wants to load a new device driver just because you plug a device
into a different port).

Does anyone know of a way of adding a device so that it's at a known fixed
address inside the guest?

-- 

rgds
Stephen