Vários dispositivos com id de fornecedor e id de dispositivo iguais no Qemu / LibVirt

2

Eu tenho 3 modems com o mesmo Vendor ID e Product ID (12d1: 1001). Eu preciso configurar um dispositivo USB encaminhando para o sistema convidado (Ubuntu).

Isso é o que eu tenho na configuração da minha máquina virtual:

<hostdev mode='subsystem' type='usb' managed='no'>
    <source>
        <vendor id='0x12d1'/>
        <product id='0x1001'/>
        <address bus='1' device='13'/>
    </source>
</hostdev>
<hostdev mode='subsystem' type='usb' managed='no'>
   <source>
       <vendor id='0x12d1'/>
       <product id='0x1001'/>
       <address bus='1' device='14'/>
   </source>
</hostdev>
<hostdev mode='subsystem' type='usb' managed='no'>
   <source>
      <vendor id='0x12d1'/>
      <product id='0x1001'/>
      <address bus='1' device='15'/>
   </source>
</hostdev>

Ele funciona bem até que o sistema seja reinicializado devido a uma ID de dispositivo (isto é, Device 013 parte) ser alterada. Minha pergunta é como vincular esses dispositivos a uma máquina virtual NÃO usando Device ID part? Este é o meu lsusb :

root@host:~# lsusb
Bus 001 Device 006: ID 046b:ff10 American Megatrends, Inc. Virtual Keyboard and Mouse
Bus 001 Device 004: ID 046b:ff01 American Megatrends, Inc. 
Bus 001 Device 014: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 015: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 013: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 012: ID 050d:0237 Belkin Components F5U237 USB 2.0 7-Port Hub
Bus 001 Device 011: ID 050d:0237 Belkin Components F5U237 USB 2.0 7-Port Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 04d9:1400 Holtek Semiconductor, Inc. PS/2 keyboard + mouse controller
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Muito obrigado por qualquer resposta!

    
por Serhii Matrunchyk 03.09.2016 / 22:50

1 resposta

1

O próprio Qemu suporta o repasse de dispositivos por portas físicas. Você pode identificar qual endereço a segunda porta do seu painel frontal possui e informar ao qemu para encaminhar cada dispositivo sem tocar o driver na VM. Mas esta função não é suportada no libvirt até agora. Também não é suportado como um comando qemu-consol a partir do virsh.

Outra possibilidade seria passar uma placa PCI para a VM, onde o dispositivo está conectado. Então, transferir duas placas PCI para a máquina fará a diferença. Na maioria das vezes é impossível transferir o controle das placas-mãe montadas em dispositivos USB. Eles estão todos em um grupo PCI junto com outros dispositivos obrigatórios para o sistema host. Somente dispositivos de um grupo podem ser transferidos juntos.

    
por Cutton Eye 15.11.2017 / 11:01