Força a libvirt a passar sempre o mesmo número de dispositivo para o convidado na reconexão do dispositivo USB

2

Eu tenho uma plotadora HP conectada com um cabo USB a um servidor Debian através de um hub USB. No servidor, há um Windows XP virtualizado. Toda vez que eu reinicializo o plotter, um número de dispositivo diferente é atribuído pelo udev ao plotter, o que tem o efeito de alterar a porta da impressora virtual atribuída ao plotter pelo Windows.

Parece que não é possível forçar o udev a usar o mesmo devnum , então eu deveria forçar o libvirth a passar um endereço de barramento fixo.

Atualmente, estou usando o seguinte código com libvirt attach-device :

<hostdev mode='subsystem' type='usb' managed='yes'>
   <source>
      <vendor id='0x0123'/>
      <product id='0x0456'/>
   </source>
</hostdev>

Eu posso escrever uma regra para o udev criar um dispositivo com um nome fixo. Deve ser ótimo se, desse modo, o dispositivo puder ser visto do convidado, como sempre conectado à mesma porta USB. Você sabe se é possível?

Editar:

Estou tentando seguir a sugestão de André. Não tenho certeza do que colocar nos parâmetros hostbus e hostport para o dispositivo # 8.

# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
        |__ Port 2: Dev 3, If 0, Class=HID, Driver=usbfs, 1.5M
        |__ Port 3: Dev 4, If 0, Class=hub, Driver=hub/4p, 480M
            |__ Port 1: Dev 8, If 0, Class=print, Driver=usbfs, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M

Esta foi minha primeira tentativa:

<qemu:commandline>
 <qemu:arg value='-device'/>
 <qemu:arg value='ich9-usb-ehci1,id=passthroughehci'/>

 <qemu:arg value='-device'/>
 <qemu:arg value='usb-host,hostbus=002,hostport=001,bus=passthroughehci.0'/>
</qemu:commandline>

Mas não funcionou.

    
por stenio 27.01.2015 / 19:00

0 respostas