我有 3 个调制解调器,它们具有相同的Vendor ID
和Product ID
(12d1:1001)。我需要设置一个 USB 设备转发到客户系统 (Ubuntu)。
这是我虚拟机配置中的内容:
<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>
它可以正常工作,直到系统因设备 ID(即Device 013
part)更改而重新启动。我的问题是如何将这些设备绑定到不使用Device ID
part 的虚拟机?这是我的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
非常感谢您的回答!
答案1
Qemu 本身支持通过物理端口直通设备。您可以找出前面板上的第二个端口具有哪个地址,并告诉 qemu 转发每个设备,而无需将驱动程序接触到虚拟机。但到目前为止,libvirt 还不支持此功能。它也不支持作为 virsh 的 qemu-consol 命令。
另一种可能性是将 PCI 卡传递到设备所连接的虚拟机。因此,将两张 PCI 卡传输到机器上会有所不同。大多数情况下,不可能转移主板上安装的 USB 设备的控制权。它们与主机系统的其他必需设备一起位于一个 PCI 组中。只有同一组的设备才能一起传输。