VMware Horizon Community
Jarlrmai
Contributor
Contributor
Jump to solution

Advanced USB splitting

I have a composite device a Phillips Speechmike II

It has a microphone, track ball and some function buttons, I think it splits into 3/4 devices the Vids seems to be

VID_0911 PID_149A

it then has

MI_00

MI_03

MI_04

MI_05

I split it and then disallow keyboard/mouse devices which then get handled by the client and the mic works and all is good, however if I split it my software no longer see's the device correctly because it wants to see the keyboard part of the device as a local device.

Is there someway to split it and then only disallow the mouse part of the device so that both the keyboard and the sound are local but the trackball is handled locally as it is not smooth otherwise.

Thanks

Tags (3)
0 Kudos
1 Solution

Accepted Solutions
peterbrown05
VMware Employee
VMware Employee
Jump to solution

Hi,

I may have misunderstood your requirement, but I think you want to leave the trackball local to the client machine, but then forward all other device interfaces?

The software on the guest vm desktop will need to "see" the buttons (for play , record etc) and so i'm sure they will need forwarding.

If my understanding is correct then you can configure as follows:

if configured guest vm agent side it would be:

  • include vid/pid:           o:vid-0911_pid-149a
  • split vid/pid device:     o:vid-0911_pid-149a(exintf:03)

if configured client side it would be just:

  • include vid/pid:           vid-0911_pid-149a
  • split vid/pid device:     vid-0911_pid-149a(exintf:03)

What this does is INCLUDE the whole device (normally mice/keyboards are blocked by default). and then forwards the whole device, except interface 3 (which I believe is your trackball).

if you want to leave another interface local to the client, then you can do it like this:    ...  (exintf:03;exintf:04)

For more information, see my blog post here: https://communities.vmware.com/blogs/horizonViewUSB/2013/03/01/filtering-and-splitting-for-usb-devic...

and also, see What’s New with USB Redirection in VMware View 5.1? | VMware End-User Computing Blog - VMware Blogs for a worked example of splitting.

Let me know how you get on,

cheers

peterB

View solution in original post

0 Kudos
9 Replies
peterbrown05
VMware Employee
VMware Employee
Jump to solution

Hi,

I may have misunderstood your requirement, but I think you want to leave the trackball local to the client machine, but then forward all other device interfaces?

The software on the guest vm desktop will need to "see" the buttons (for play , record etc) and so i'm sure they will need forwarding.

If my understanding is correct then you can configure as follows:

if configured guest vm agent side it would be:

  • include vid/pid:           o:vid-0911_pid-149a
  • split vid/pid device:     o:vid-0911_pid-149a(exintf:03)

if configured client side it would be just:

  • include vid/pid:           vid-0911_pid-149a
  • split vid/pid device:     vid-0911_pid-149a(exintf:03)

What this does is INCLUDE the whole device (normally mice/keyboards are blocked by default). and then forwards the whole device, except interface 3 (which I believe is your trackball).

if you want to leave another interface local to the client, then you can do it like this:    ...  (exintf:03;exintf:04)

For more information, see my blog post here: https://communities.vmware.com/blogs/horizonViewUSB/2013/03/01/filtering-and-splitting-for-usb-devic...

and also, see What’s New with USB Redirection in VMware View 5.1? | VMware End-User Computing Blog - VMware Blogs for a worked example of splitting.

Let me know how you get on,

cheers

peterB

0 Kudos
Jarlrmai
Contributor
Contributor
Jump to solution

Thanks this seems to be working, how did you determine int 3 to be the track ball component?

Also I wonder if you would know the answer to another question?

Sometimes when forwarded the audio device is detected by Windows using a "USB Audio Device" friendly name and not the "SpeechMikeII" name.

0 Kudos
peterbrown05
VMware Employee
VMware Employee
Jump to solution

Hi,

so we have tested with this device many times, so I am quite familiar with it. but, if you look in the view client DEBUG logs when you click on the usb device menu you will see something like the following in the logs:

Filter Result: [UsbDeviceId: 4000001b0911149a] On enumeration of device: 2/4. Name: Philips USB Composite Device

2013-06-20T09:34:32.443+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] IdentifyDeviceFamily(): Not implemented on Windows

2013-06-20T09:34:32.443+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] Device Speed from backend: 02

2013-06-20T09:34:32.443+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Device Speed = Full

2013-06-20T09:34:32.443+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] LookupDeducedFamily(): Called for non vendor specific

2013-06-20T09:34:32.443+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Device Filter got device:

2013-06-20T09:34:32.443+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Device id: Vid-0911_Pid-149a

2013-06-20T09:34:32.443+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Path: bus-1/1/0_port-06

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Config count: 1

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Config num: 0

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Interface count: 5

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Interface [0] - Family(s): audio

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Interface [1] - Family(s): audio,audio-in

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Interface [2] - Family(s): audio,audio-out

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Interface [3] - Family(s): mouse

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: Interface [4] - Family(s): hid

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: [Combined:Phase] Starting 1(a)

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: [Combined:Phase] Finished 1(a)

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: [Combined:Phase] AutoDeviceSplitting blocked. Skipping 1(b)

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: [Combined:Phase] Starting 2

2013-06-20T09:34:32.453+02:00 DEBUG (0D34-0D4C) <vmware-usbd> [vmware-view-usbd] DevFltr: audio-out is blocked using AutoFilter setting. The setting is ignored as there are multiple audio interfaces which shouldnt be split


the key being the Interface[0]...interface[4] and you can see that the interface 3 is the mouse. Note; you should *never* split audio in and audio out - they should either both be on the client or both on the guest.


I'm actually busy writing a deep dive paper on all of this, but not sure when it will be available - soon hopefully!.



As for your observation that the device name changes, then this I believe is a known issue, which I think there is a fix coming out for in a future client release. It doesnt affect operation though - just the UI.


hope this helps,

cheers

peterB

Jarlrmai2
Contributor
Contributor
Jump to solution

Did this friendly name issu ever get worked out to your knowledge.

We have a 3rd party product that seems to failed to detect the mic id the friendly name is USB Audio Device rather than SpeechmikeII

Thanks

0 Kudos
DETHG
Contributor
Contributor
Jump to solution

Hello

Did you end up resolving your USB friendly name issue with your speechmike II? I am having the same issue and struggling to get it fixed. I am even going through support but not getting far at the moment. Any help would be great

0 Kudos
DETHG
Contributor
Contributor
Jump to solution

Hello

The issue described "As for your observation that the device name changes, then this I believe is a known issue, which I think there is a fix coming out for in a future client release. It doesnt affect operation though - just the UI." Do you know if this was acknowledged as a fault and resolved? I have been going through support but still have not found a resolution.

Cheers

0 Kudos
Jarlrmai2
Contributor
Contributor
Jump to solution

No the root issue was never resolved. I was able to get to VMware support but the detail and time taken to comply with the log and trial requests was eating into my timescales and in the end the 3rd party software provider changed their product to work with either friendly name.

I can provide details from the case if you want.

0 Kudos
chengs
VMware Employee
VMware Employee
Jump to solution

The windows update named "Microsoft KB 2990214" might be the cause of this issue. Please try to un-installed that particular update, the issue might not be there any more. Can you please run the following steps in customer's agent VM (considering updated with latest windows updates) :

1. Go to "Installed Updates" page in control panel.

2. Find out the update - Update for Microsoft Windows (KB2990214).

3. Uninstall it.

4. Reboot the agent VM.

5. Reconnect to the agent, redirect the Speechmike. It should come as Speechmike III in audio device list.

6. If the audio device list still shows "USB Audio Device", go to device manager and uninstall the SpeechMike driver. Disconnect and reconnect the Speechmike multiple times and check the name in Audio Device list.

Please let me know the result after the test is complete.

0 Kudos
Jarlrmai2
Contributor
Contributor
Jump to solution

This update was released June 2015 I've had this issue since before that.

0 Kudos