症状:
- 在虚拟机设置种设置了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及更高版本
将usbquirks添加到虚拟机配置(.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文件。
















