我想将以下行从qemu选项翻译成libvirt xml。
-qemu-system-x86_64
-...
-usb -device usb-host,bus=usb-bus.0,hostbus=<bus>,hostport=<port>
这会将物理USB插件添加到虚拟机。对于usb-bus / deviceID,大多数示例都已显示并有详细记录,而不是此解决方案。
修改
工具virsh domxml-from-native qemu-argv MyArgV.sh
具有以下解决方案:
<qemu:commandline>
<qemu:arg value='-device'/>
<qemu:arg value='usb-host,bus=usb-bus.0,hostbus=1,hostport=10'/>
</qemu:commandline>
但这并不是我想要的,因为它绕过了libvirt系统。因此,如果本机工具找不到任何解决方案,是否有一个通用的libvirt解决方案来传递USB端口?
我也尝试过使用virt-manager GUI来添加USB端口,但我无法找到任何这样的存在。
是否可能有一个团体来制作正在运行的qemu机器的快照并立即用libvirt复制它?
我找到了this网页。但是这个描述了如何在VM中组装usb-port层次结构,而不是将主机端口转发到vm。
答案 0 :(得分:1)
不幸的是,它没有记录,但您可以使用以下语法分配基于总线+设备号的USB设备:
<hostdev mode='subsystem' type='usb' managed='no'>
<source>
<address bus='1' device='NNN'/>
</source>
</hostdev>
不幸的是,这里的设备号是/ dev / usb / bus / NNN号,每次插入时它都会改变。但是还没有支持基于hostport选择稳定的设备。
答案 1 :(得分:0)
您还可以通过使用invalidateLater
从USB设备中找到供应商和产品ID,然后使用此信息将USB设备连接到KVM:
lsusb
$ lsusb
...
Bus 002 Device 018: ID 03f0:4217 Hewlett-Packard EWS CM1015
...
在https://rolandtapken.de/blog/2011-04/how-auto-hotplug-usb-devices-libvirt-vms-update-1上找到。
但是,如果将多个此类USB设备连接到主机,则此操作将无效。