使用 VMWare Workstation 和 VMWare-KVM 时路由 USB 设备的最佳方法

使用 VMWare Workstation 和 VMWare-KVM 时路由 USB 设备的最佳方法

我正在使用 VMWare Workstation,但为了向我的用户隐藏主机,我想要部署的所有虚拟机都将在 VMware-KVM 中运行。将 USB 设备连接到主机时,不同类别的设备应以不同的方式处理:USB 存储设备应直接连接到主机,但其他 USB 设备(如 USB 串行适配器)应始终连接到客户机。

我注意到的第一件事是 WMare Workstation UI 和 vmware-kvm.exe 处理 USB 重定向的方式有所不同:即使你在 Workstation 设置中设置了 Poprey“USB:将设备连接到主机”,VMware-kvm.exe 也会忽略该设置并将设备连接到具有焦点的设备,即,如果客户机处于全屏状态,它会将其连接到客户机,如果主机处于全屏状态,则它会连接到主机。

我想要的是一种基于规则的行为,例如 VMWare KB 中描述的,不幸的是我无法让它正常工作。

首先,我尝试将以下行添加到我的 VMX 文件中:

usb.generic.autoconnect = "FALSE"
usb.autoConnect.device0 = "0x403:0x1031"
usb.autoConnect.device1 = "0x403:0x1032"

这应该意味着:默认将所有设备连接到主机(autoconnect = false),但应该将以下两行中给出的 PID 和 VID 的设备(它们属于我使用的 USB 串行适配器)连接到客户机。

如果在虚拟机启动期间连接设备(USB 棒与主机保持在一起,串行适配器连接到客户机),这似乎可以工作,但是只要我移除 USB 串行适配器并将其连接到另一个 USB 端口(当机器仍在运行时),它就会连接到主机而不是客户机。

那么,如何才能根据我使用 PID 和 VID 给出的规则强制我的 USB 设备自动连接到主机或客户机?理论上看起来很简单,但在现实生活中对我来说还不起作用。

谢谢您的任何提示!

答案1

查看虚拟机的日志,找到设备的名称。从name: 复制到结束时。按照以下示例将其pid:xxx放入文件中。.vmx

usb.autoConnect.device0 = "name:Cambridge\\ Silicon\\ Radio\\ Bluetooth\\ Adapter vid:0a12 pid:0001"

相关内容