Microcosm Logo

Dinkey & Dinkey Pro/FD Knowledge Base
Browse By Category:
 
Look Up Error Number:
 
Search:
 

Glossary   |   Contact Us


Dongles in a Virtual Machine Environment

Views: 1048
Rating: 141
Rate It:

In the vast majority of cases Dinkey Dongles will work correctly under a Virtual Machine environment.

In this article we will give some guidance on how to use Dinkey Dongles with some of the most popular virtual machines and also highlight some of the problems we have discovered.

Most of the problems are due to a lack of proper support for USB devices or getting the virtual machine to capture the Dinkey Dongle device.

For FD Plus and FD Net dongles there is an extra consideration. A standard protection check for these devices (in a VM) will return error 578 as we cannot work out the drive letter associated with the FD drive. This is because most virtual machines do not preserve the USB device hierarchy. However, from Dinkey Pro/FD SDK version 7.2 we introduced the DONT_RETURN_FD_DRIVE flag which fixes this problem. In this case you will be able to use FD Plus/Net dongles with a VM so long as you do not need to know the drive letter / mount name of the flash disk part of the dongle.

VMWare

If you have to use a virtual machine setup we would recommend you use VMWare because we have encountered the least amount of problems with this setup.

Setup:

  1. If your client OS is Linux then you need to make sure you add USB support: Select the VM and then select the "Summary" tab. Choose Commands | Edit Setting | Hardware
    Then click Add, then USB Controller, and then choose the appropriate controller type for the OS.
  2. You need to capture our Dinkey Dongle device. Ensure the dongle is plugged in (to either the client PC or the ESXi host). In the vSphere client, right click the virtual machine you want to add the dongle to and choose "edit Settings". In the Hardware tab, click "Add". Select "USB Device" from the list of device types and click "Next". Choose "HID dongle" from the list of devices and click "Next" then "Finish". VMWare will then connect the dongle to the guest operating system.

Problems:

We no longer experience problems with VMWare but in the past we had reports of the following problems:

  1. On very rare occasions the client virtual machine will not capture the Dinkey Dongle. In this case restarting the virtual machine fixed the problem.
  2. We had a few reports of our dongle not working if the USB controller is USB 3 (normally this is OK). In these cases using a USB 2 controller fixed the problem.

Notes:

  1. We have noticed no differences if you use VMWare vSphere ESXi (bare metal) or whether you use a host OS.

VirtualBox

Setup:

  1. You need to make sure you install USB support (you do not need USB 2 support, but it is OK to install it).
  2. In Settings, choose USB. Tick "Enable USB Controller" and add device "OEM HID Dongle" (and appropriate flash disk if using Dinkey FD) to the list of "USB Device Filters". In the virtual box the HID Dongle device should have a tick by it.

Problems:

We no longer experience problems with VirtualBox but in the past we had reports of the following problems:

  1. The client OS failing to capture the Dinkey Dongle devices.
  2. Errors communicating with the dongle on old versions of the VM. e.g. error 461.
  3. The protected program crashing while accessing the dongle on old versions of the VM (see Note 1 below)

Notes:

  1. On versions of VirtualBox prior to approximately 4.1.31, a 32-bit protection check running on a 64-bit guest OS could intermittently crash if Hardware Virtualisation was enabled in the BIOS of the computer running VirtualBox. Disbaling Hardware Virtualisation solved the problem. This was apparently a bug in VirtualBox and versions from 4.1.31 on are unaffected.

Microsoft Hyper-V

Versions of Hyper-V before Windows Server 2012 R2 do not support USB controllers. Therefore no USB devices are recognised (except for the keyboard and mouse).

Hyper-V for Windows Server 2012 R2 claims to support USB-passthrough (in enhanced session mode). However, support for USB devices appears to be very limited and none of our devices are recognised by the virtual machine.

A work-around is to use a Remote Desktop Connection or a USB-over-network solution that can share USB ports across the network.

Virtual PC

Some limited USB exists but USB HID devices are not supported. Therefore Dinkey Pro and Dinkey FD Plus/Net devices are not supported. However, Dinkey FD Lite dongles are supported as are our original Dinkey 1S/2/Net dongles.

Parallels

No reported problems.

Other notes

In most cases now the host computer supports Hardware Virtualisation and so the speed of the protection check is broadly comparable with running natively. However, with some old VMs this is not the case and so a protection check can be a lot slower in a virtual machine environment.

Docker Containers

Containers are similar to Virtual Machines except that they virtualise the necessary environment for a particular application rather than an entire Operating System.

The main problem we have found is that we need to use a system-wide Mutex to control access to the dongle. This Mutex would need to work across all the containers (that need to access the dongle). For example, in a Linux system this would mean you need to enable each of these containers to have access to the system-wide host /tmp directory.

More Help

If this article did not help you to solve your problem, please use the menu at the top of the page to browse or search more articles, or to contact our support team.

Others in this Category
   
articleUsing Application Verifier with My Protected Software Causes Problems
 
articleCompatibility with Microsoft Enhanced Mitigation Experience Toolkit (EMET)
 

© 2019 Microcosm Ltd.

Valid XHTML 1.0 Valid CSS 2.0