我的 KVM 中有两个 USB 重定向器设备,是使用 virt-manager 创建的:
<redirdev bus="usb" type="spicevmc">
<alias name="redir0"/>
<address type="usb" bus="0" port="2"/>
</redirdev>
<redirdev bus="usb" type="spicevmc">
<alias name="redir1"/>
<address type="usb" bus="0" port="5"/>
</redirdev>
我可以使用这些在运行时重定向 USB 设备,在 virt-manager 中,通过转到虚拟机 > 重定向 USB 设备,然后我可以选择要通过 Spice 通道的主机设备:
如何使用virsh
或其他终端工具执行相同操作?我希望能够将其关闭和打开,基本上是将设备从一个虚拟机移动到另一个虚拟机。
答案1
事实证明,你可以做到。
它对我有用的方式是:识别供应商和产品 ID。您可以在“选择要重定向的 USB 设备”中或使用lsusb
.对我来说,对于 SteelSeries Arctis 7,供应商是 1038,产品是 12ad。
创建一个包含以下内容的 XML 文件,在我的示例中,我将其另存为usb.xml
:
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x1038'/>
<product id='0x12ad'/>
</source>
</hostdev>
现在使用 virsh 附加它:
$ virsh attach-device <VMName> --file usb.xml --current
--current
使其在虚拟机运行时热插拔设备。不幸的是,它不会在“重定向”窗口中显示为已连接,因为它没有使用 Spice 通道,但它仍然可以工作。
用 分离detach-device
。