症状:
在虚拟机设置种设置了USB设备自动重新连接;USB设备在虚拟机重启后后断开连接无法自动重新连接在vmware.log:USB: Connecting device <device identifier> failed: 17
原因:
默认情况下,Workstation会忽略USB人机接口设备(HID),例如鼠标和键盘。这样设计目的是为防止虚拟机独占键鼠使您无法控制主机设备。因此Workstation会忽略HID,虚拟机无法自动连接它们。
解决方案:
设置Workstation将HID视为智能卡,然后自动连接设备。具体方法:
编辑Workstation虚拟机设置文件来识别设备:打开.vmx文件进行编辑。将此行添加到.vmx文件中:
usb.generic.allowHID = "TRUE"
打开虚拟机电源。当虚拟机启动时,它会检测连接到主机的所有USB设备,即使它们未连接到虚拟机。
操作系统启动后,关闭虚拟机电源。确保Workstation准确连接HID USB设备,通过日志文件找到HID设备的VID和PID:
打开vmware.log文件。搜索设备制造商的称,记下VID和PID和值。日志内容大致如下(VID为0x05AC,PID为0x8240)
vmx | USB: Found device [name:Apple\ IR\ Receiver vid:05ac pid:8240 path:13/7/2 speed:full family:hid]
关闭vmware.log文件。针对不同系统和平台配置Workstation以识别设备:
Workstation 7.1.5及更高版本
将usb quirks 添加到虚拟机配置(.vmx)文件中。有关更多信息,请参阅Tips for editing a .vmx file (1714):
在文本编辑器中打开.vmx文件添加此行,将< vid>和< pid>替换为您之前找到的值:usb.quirks.device0 = "0x<vid>:0x<pid> allow"
示例:对于步骤2中找到的Apple设备,此行为:
usb.quirks.device0 = "0x05ac:0x8240 allow"
保存并关闭.vmx文件。Workstation 7.1.4及更早版本
配置虚拟机的USB Arbitrator 设置:
打开settings.ini文件。文件的位置因主机操作系统而异:
Windows Vista and 7: C:\ ProgramData \ VMware \ VMware USB Arbitration Windows XP: C:\ Documents and Settings \ All Users \ Application Data \ VMware \ USB Arbitration Service \Linux: 在/ usr / bin中/ VMWare的usbarbitrator。
注意:如果该settings.ini文件不存在,则必须创建该文件。要创建文件:
.txt使用记事本创建一个空文件将空txt文件另存为settings.ini文件添加此行,将< vid>和< pid>替换为您之前找到的值:
usb.quirks.device0 = "0x<vid>:0x<pid> smart-card"
示例:对于步骤2中找到的Apple设备,此行为:
usb.quirks.device0 = "0x05ac:0x8240 smart-card"
将此行添加settings.ini 到自动连接设备时,将< vid>和< 替换pid>为步骤2中所示的值:usb.autoconnect.device0 = "0x<vid>:0x<pid>"
示例:对于步骤2中找到的Apple设备,此行为:
usb.autoconnect.device0 = "0x05ac:0x8240"
保存并关闭该settings.ini文件。以上参考连接https://kb.vmware.com/s/article/2000350