Client FAQ

VirtualHere Client - Frequently Asked Questions

Can two clients connect to the same USB device simultaneously?

No

Can the client be run as a service?

Yes

How can i disconnect a user from a device?

Start the client with the -a argument (see below) and then right click on the In-Use device and select Disconnect from User

Can i use the client inside a Docker container?

Yes the Linux Console Client can be used inside a container

What are the VirtualHere Client program arguments?

The VirtualHere Client has several command line arguments, described below. To use these in Windows simply call vhui32.exe <argument> or vhui64.exe <argument>, in OSX you need to call the binary directly i.e /Applications/VirtualHere/VirtualHere.app/Contents/MacOS/VirtualHere <argument>. In Linux the binary is called vhuit64, or vhclientx86_64, or similar

-h Command line help

-l=<path> The file to log all messages to (instead of logging to the System Messages window)

-c The configuration file to use instead of the default one.

-a Start the client in Administrator Mode. This allows the client to disconnect other users from devices remotely.

-d Silently install the VirtualHere client drivers and exit. This argument is useful for performing enterprise installation over a network via e.g Microsoft Systems Management Server. Administrator authority is needed when using this argument.

-x Extract the VirtuaHere drivers. This is useful for manually installing the VirtualHere drivers. e.g in Windows XP Embedded

-i Under windows & OSX (Administrator authority is needed when using this argument.) you can install the client as a service then interact with it via the command line

-b Same as the -i argument (above) but install client as service with auto-find off by default

-u Uninstall the client service Administrator authority is needed when using this argument

-y Uninstall all VirtualHere drivers (if any) installed on the system Administrator authority is needed when using this argument

-t Send a command to the running client

-r=<file> When used with the argument t/x/i/u/d, will redirect the output to the file specified after the = argument. This is useful for parsing results in batch files under Windows.

Where are the VirtualHere Client parameters stored?

The Virtualhere Client stores all its parameters in a single text file:

Windows : c:\Users\Username\AppData\Roaming\vhui.ini
OSX : /Users/Username/Library/Preferences/vhui Preferences
Linux: ~/.vhui

This file is updated automatically by the VirtualHere client when it is running and usually does not need to be modified by the end user. The client will generate a default configuration file when it is first started.

Is there a client API?

Yes

How do i setup SSL support on the client

See here for setting up SSL on the client

Can i customize the client menu?

Yes you can hide menu items in the client by:
1. Exiting the client.
2. Editing the file c:\Users\<Username>\AppData\Roaming\vhui.ini (e.g for windows)
3. Under the [General] section add the line HideMenuItems and specify the exact name of the menu items separated by commas, that should be hidden. e.g


[General]
...
HideMenuItems=Specify Hubs...,Install Client as a Service,ServerMenu^Properties,DeviceMenu^Properties
...

Note if the Menu has the same name, it needs to be qualified with either ServerMenu^ or DeviceMenu^

When trying to use the Linux client it says "USBIP client drivers are not available, you will have to compile/install your own from the linux kernel source" ?

Your Linux kernel needs the USB/IP drivers compiled in. If VirtualHere cannot access this driver it will complain. Most versions of Linux have these drivers already compiled in, however some embedded Linuxes and come cloud vendors don't. You would then need to obtain the Linux kernel source then use make menuconfig and select Drivers->USBIP and check those then make the kernel. That will produce vhci_hcd.ko and usbip-common.ko. Copy these to the lib modules directory on your Linux client. then type modprobe vhci_hcd type lsmod | grep vhci to confirm the driver was loaded into the kernel.