You can set USB configuration properties in the /etc/vmware/config, /usr/lib/vmware/config, and ~/.vmware/config configuration files.

Use the following syntax to set USB configuration properties in the configuration files.

viewusb.property1 = "value1"

With USB configuration properties, you can control whether certain types of devices are redirected. Filtering properties are also available to enable you to include or exclude certain types of devices. For Linux clients version 1.7 and later, and for Windows clients, properties for splitting composite devices are also provided.

Some property values require the VID (vendor ID) and PID (product ID) for a USB device. To find the VID and PID, you can search on the Internet for the product name combined with vid and pid. Alternatively, you can look in the /tmp/vmware-<current_user>/vmware-view-usbd-*.log file after you plug in the USB device to the local system when Horizon Client is running. To set the location of this file, use the view-usbd.log.fileName property in the /etc/vmware/config file, for example:

 view-usbd.log.fileName = "/tmp/usbd.log"
Important: When redirecting audio devices, make sure that the kernel version of your Ubuntu system is 3.2.0-27.43 or later. If you cannot upgrade to this kernel version, you can alternatively disable host access to the audio device. For example, you can add the line " blacklist snd-usb-audio" at the end of the /etc/modprobe.d/blacklist.conf file. If your system does not meet either of these requirements, the client system might crash when Horizon Client attempts to redirect the audio device. By default, audio devices are redirected.

The following table describes the available USB configuration properties.

Table 1. Configuration Properties for USB Redirection
Policy Name and Property Description

Allow Auto Device Splitting

Property:

viewusb.AllowAutoDeviceSplitting

Allow the automatic splitting of composite USB devices.

The default value is undefined, which equates to false.

Exclude Vid/Pid Device From Split

Property:

viewusb.SplitExcludeVidPid

Excludes a composite USB device specified by vendor and product IDs from splitting. The format of the setting is vid-xxx1_pid-yyy1[;vid-xxx2_pid-yyy2]...

You must specify ID numbers in hexadecimal. You can use the wildcard character (*) in place of individual digits in an ID.

For example: vid-0781_pid-55**

The default value is undefined.

Split Vid/Pid Device

Property:

viewusb.SplitVidPid

Treats the components of a composite USB device specified by vendor and product IDs as separate devices. The format of the setting is

vid-xxxx_pid-yyyy([exintf:zz[;exintf:ww ]])[;...]

You can use the exintf keyword to exclude components from redirection by specifying their interface number. You must specify ID numbers in hexadecimal, and interface numbers in decimal including any leading zero. You can use the wildcard character (*) in place of individual digits in an ID.

For example: vid-0781_pid-554c(exintf:01;exintf:02)

Note: If the composite device includes components that are automatically excluded, such as mouse and keyboard components, then View does not automatically include the components that you have not explicitly excluded. You must specify a filter policy such as Include Vid/Pid Device to include those components.

The default value is undefined.

Allow Audio Input Devices

Property:

viewusb.AllowAudioIn

Allows audio input devices to be redirected.

The default value is undefined, which equates to false because the Real-Time Audio-Video feature is used for audio input and video devices, and USB redirection is not used for those devices by default.

Allow Audio Output Devices

Property:

viewusb.AllowAudioOut

Allows audio output devices to be redirected.

The default value is undefined, which equates to false.

Allow HID

Property:

viewusb.AllowHID

Allows input devices other than keyboards or mice to be redirected.

The default value is undefined, which equates to true.

Allow HIDBootable

Property:

viewusb.AllowHIDBootable

Allows input devices other than keyboards or mice that are available at boot time (also known as hid-bootable devices) to be redirected.

The default value is undefined, which equates to true.

Allow Device Descriptor Failsafe

Property:

viewusb.AllowDevDescFailsafe

Allows devices to be redirected even if the Horizon Client fails to get the config/device descriptors.

To allow a device even if it fails the config/desc, include it in the Include filters, such IncludeVidPid or IncludePath.

The default value is undefined, which equates to false.

Allow Keyboard and Mouse Devices

Property:

viewusb.AllowKeyboardMouse

Allows keyboards with integrated pointing devices (such as a mouse, trackball, or touch pad) to be redirected.

The default value is undefined, which equates to false.

Allow Smart Cards

Property:

viewusb.AllowSmartcard

Allows smart-card devices to be redirected.

The default value is undefined, which equates to false.

Allow Video Devices

Property:

viewusb.AllowVideo

Allows video devices to be redirected.

The default value is undefined, which equates to false because the Real-Time Audio-Video feature is used for audio input and video devices, and USB redirection is not used for those devices by default.

Disable Remote Configuration Download

Property:

viewusb.DisableRemoteConfig

Disables the use of Horizon Agent settings when performing USB device filtering.

The default value is undefined, which equates to false.

Exclude All Devices

Property:

viewusb.ExcludeAllDevices

Excludes all USB devices from being redirected. If set to true, you can use other policy settings to allow specific devices or families of devices to be redirected. If set to false, you can use other policy settings to prevent specific devices or families of devices from being redirected.

If you set the value of Exclude All Devices to true on Horizon Agent, and this setting is passed to Horizon Client, the Horizon Agent setting overrides the Horizon Client setting.

The default value is undefined, which equates to false.

Exclude Device Family

Property:

viewusb.ExcludeFamily

Excludes families of devices from being redirected. The format of the setting is family_name_1[;family_name_2]...

For example: bluetooth;smart-card

If you have enabled automatic device splitting, View examines the device family of each interface of a composite USB device to decide which interfaces should be excluded. If you have disabled automatic device splitting, View examines the device family of the whole composite USB device.

The default value is undefined.

Exclude Vid/Pid Device

Property:

viewusb.ExcludeVidPid

Excludes devices with specified vendor and product IDs from being redirected. The format of the setting is vid-xxx1_pid-yyy2[;vid-xxx2_pid-yyy2]...

You must specify ID numbers in hexadecimal. You can use the wildcard character (*) in place of individual digits in an ID.

For example: vid-0781_pid-****;vid-0561_pid-554c

The default value is undefined.

Exclude Path

Property:

viewusb.ExcludePath

Exclude devices at specified hub or port paths from being redirected. The format of the setting is bus-x1[/y1]..._port-z1[;bus-x2[/y2]..._port-z2]...

You must specify bus and port numbers in hexadecimal. You cannot use the wildcard character in paths.

For example: bus-1/2/3_port-02;bus-1/1/1/4_port-ff

The default value is undefined.

Include Device Family

Property:

viewusb.IncludeFamily

Includes families of devices that can be redirected. The format of the setting is family_name_1[;family_name_2]...

For example: storage

The default value is undefined.

Include Path

Property:

viewusb.IncludePath

Include devices at a specified hub or port paths that can be redirected. The format of the setting is bus-x1[/y1]..._port-z1[;bus-x2[/y2]..._port-z2]...

You must specify bus and port numbers in hexadecimal. You cannot use the wildcard character in paths.

For example: bus-1/2_port-02;bus-1/7/1/4_port-0f

The default value is undefined.

Include Vid/Pid Device

Property:

viewusb.IncludeVidPid

Includes devices with specified vendor and product IDs that can be redirected. The format of the setting is vid-xxx1_pid-yyy2[;vid-xxx2_pid-yyy2]...

You must specify ID numbers in hexadecimal. You can use the wildcard character (*) in place of individual digits in an ID.

For example: vid-0561_pid-554c

The default value is undefined.

USB Redirection Examples

Each example is followed by a description of the effect on USB redirection.

  • Include most devices within the mouse device family.

    viewusb.IncludeFamily = "mouse" 
    viewusb.ExcludeVidPid = "Vid-0461_Pid-0010;Vid-0461_Pid-4d20"

    The first property in this example tells Horizon Client to allow mouse devices to be redirected to a View desktop. The second property overrides the first and tells Horizon Client to keep two specific mouse devices local and not redirect them.

  • Turn on automatic device splitting, but exclude one particular device from splitting. For another particular device, keep one of its components local and redirect the other components to the remote desktop:

    viewusb.AllowAutoDeviceSplitting = "True"
    viewusb.SplitExcludeVidPid = "Vid-03f0_Pid-2a12"
    viewusb.SplitVidPid = "Vid-0911_Pid-149a(exintf:03)"
    viewusb.IncludeVidPid = "Vid-0911_Pid-149a"

    Composite USB devices consist of a combination of two or more devices, such as a video input device and a storage device. The first property in this example turns on automatic splitting of composite devices. The second property excludes the specified composite USB device (Vid-03f0_Pid-2a12) from splitting.

    The third line tells Horizon Client to treat the components of a different composite device (Vid-0911_Pid-149a) as separate devices but to exclude the following component from being redirected: the component whose interface number is 03. This component is kept local.

    Because this composite device includes a component that is ordinarily excluded by default, such as a mouse or keyboard, the fourth line is necessary so that the other components of the composite device Vid-0911_Pid-149a can be redirected to the View desktop.

    The first three properties are splitting properties. The last property is a filtering property. Filtering properties are processed before splitting properties.

Important: These client configuration properties might be merged with or overridden by corresponding policies set for Horizon Agent on the remote desktop. For information about how USB splitting and filtering properties on the client work in relation to Horizon Agent USB policies, see the topics about using policies to control USB redirection, in the VMware Horizon Console Administration document.