| VMware USB Dongle Fix |
PDF version | To automatically connect a particular USB device: 1. Identify and obtain the USB device's vendor ID and product ID as reported by the host operating system. 2. Edit the virtual machine's configuration file (.vmx) to contain an autoConnect entry for the USB device. Caution: Be aware that you may "break" the USB functionality for your virtual machine if you configure conflicting autoconnect settings. Identifying and Obtaining the USB Device's Vendor ID and Product ID On a Linux host, after you connect the USB device, you can find the vendor and product ID in the /proc/bus/usb/devices file. For example: more /proc/bus/usb/devices T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=1.5 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0529 ProdID=0001 Rev= 2.15 S: Manufacturer=AKS S: Product=HASP HL 2.15
Here, 529 is the vendor ID and 1 is the product ID for the HASP HL device. On a Windows host, you may find the vendor and product IDs in the registry. Caution: This procedure involves accessing the registry. Incorrect changes to the registry can leave your system unstable or unable to run. Always back up the registry before you edit it, and exercise caution in making changes to the registry. VMware takes no responsibility for problems that may arise. 1. Open the registry. (Choose Start > Run >regedit.) 2. Search for your USB device's name or brand in the following registry path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\ For example, the following output was a result of searching for a Cruzer Mini USB key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_0781&Pid _7101\00526174 HardwareID: USB\Vid_0781&Pid_7101&Rev_0102 USB\Vid_0781&Pid_7101 LocationInformation: Cruzer Mini Mfg: Compatible USB storage device Here, the vendor ID is 781 and the product ID is 7101. Editing the Virtual Machine's Configuration File The configuration (.vmx) file is normally located in the same directory in which the virtual Machine was created. Make sure the virtual machine is powered off before you edit this file. To autoconnect the HASP HL device from the previous example, add the following line in the.vmx file of the virtual machine:usb.autoConnect.device0 = "0x529:0x1" Or, for the Cruzer Mini device, add: usb.autoConnect.device0 = "0x781:0x7101" Note: Prepend 0x to each value — it must be in hex format. You can specify multiple devices for autoconnect, provided that there are not more than two USB devices available to the host at the same time. Multiple entries for autoConnect are shown in the following example. An ellipsis ( ? ) indicates the omission of an actual vendor or product ID. You need to include a specific value, as shown for device0 and device1. usb.autoConnect.device0 = "0x529:0x1" usb.autoConnect.device1 = "0x781:0x7101" usb.autoConnect.device2 = .... usb.autoConnect.device3 = ....
For more information about using USB devices in Workstation 5, see "Using USB Devices in a Virtual Machine" in the VMware Workstation 5 User's Manual. New Autoconnect Options for Workstation 5.5 In Workstation 5.5, the parameters for autoconnecting USB devices have been expanded to include the USB device name and path, in addition to the already supported PID and VID syntax. Workstation 5.5 also makes extra information available in the vmware.log file, located in the virtual machines?s directory, to make entering these parameters easier. When a device is connected to the host, the virtual machine discovers the device and adds an entry to vmware.log. The virtual machine also discovers all devices attached to the host when the virtual machine is powered on, resumed, or reverted, and adds an entry for each device. For example, consider this vmware.log entry: XXX XX XX:XX:XX: vmx| USB: Found device [name:SomeCompany\ USB device vid:0123 pid:abcd path:1/2/1]
There are four space-separated parameters available: name, vid, pid, and path. The name Parameter The name parameter is the string that describes the USB device. You may add the complete string of the USB device as a parameter, or a partial string if you want to match multiple USB devices for a specific word. Note that the string is not case sensitive and that spaces must be escaped with a backslash ( \ ) as they are in the vmware.log string. To match the whole string from the example, use: usb.autoConnect.device0 = "name:SomeCompany\ USB device" To match all USB devices with "SomeCompany" in their names, use: usb.autoConnect.device0 = "name:SomeCompany" The vid and pid Parameters The vid and pid parameters do the same thing as the previous autoconnect entry. To match the SomeCompany USB device in the above example, use: usb.autoConnect.device0 = "vid:0123 pid:abcd" To match any device that has the Vendor ID (VID) of SomeCompany, use: usb.autoConnect.device0 = "vid:0123" The path Parameter The path parameter in vmware.log provides the path to the specific port on the host where the USB device is attached. Using autoconnect with the path entry binds a specific host port to that virtual machine. If thepath parameter is used exclusively, any device that is attached to that host port automatically connects to that virtual machine. To always connect any device attached to the host port in the above example, use: usb.autoConnect.device0 = "path:1/2/1" You can use the name, vid, pid, and path parameters in any combination. For the autoconnect to succeed, each parameter you enter must match. To autoconnect the USB device in the example when connected to the same host port, use: usb.autoConnect.device0 = "name:SomeCompany\ USB\ device vid:0123 pid:abcd path:1/2/1"
To autoconnect the USB device in the example, regardless of the host port to which it is connected, use: usb.autoConnect.device0 = "name:SomeCompany\ USB\ device vid:0123 pid:abcd"
Example use for USB Aladdin HASP dongle To get the USB Aladdin HASP dongle working within the VM, I had to shutdown the server and add the USB controller to the VM for that server. Since you had already installed the drivers, when I chose to connect it through the removable device menu, it found it right away. If you want the VM to connect to the dongle on power up without having to manually connect it as a removable device, or if it is not being seen by the VM, you need to follow the directions in the attached document to automatically load the dongle on power up and/or force the dongle to be seen. These HASPs have been noted by Vmware to have issues connecting. - Scott Burish
|