Tap2iD VDS for Linux - Integration

Follow these steps to integrate the Linux VDS: install system prerequisites, download the latest release, configure USB udev rules, and build the sample application.

Tap2iD-Linux-VDS on GitHub
Before you start

Prerequisites

Your Linux host must meet these requirements before installing the VDS shared library.

  • OS Ubuntu 20.04.3 LTS or compatible (validated with kernel 5.15.0-113-generic).
  • C++ g++ with C++17 support, plus libstdc++6 and libc6.
  • USB libusb-1.0 for USB device access; user must be a member of plugdev.
  • JSON nlohmann-json for parsing JSON responses from the VDS APIs.
  • 📶 Active internet connection for downloading packages and the VDS release.
01

Install Pre-requisite Packages

This document assumes familiarity working with Ubuntu and package installations. Install the build toolchain and runtime libraries the VDS needs.

1

Update the package index

Refresh apt's local cache so the latest package versions resolve.

2

Install the dependencies

Install libusb, udev tools, the JSON parser, the C++ runtime, and the spdlog/fmt logging libraries.

bash
$ sudo apt update
$ sudo apt install -y libusb-1.0-0-dev usbutils udev nlohmann-json3-dev \
    libstdc++6 libc6 build-essential libspdlog-dev libfmt-dev
If apt fails to find any package, run sudo apt-get update and confirm your sources list includes the standard Ubuntu universe repository.
02

Download the Linux VDS Release

The Linux VDS release is distributed as a .zip archive. Once extracted, the package contains five files.

Filename Description
libvds.so The shared object file containing the VDS implementation.
vds.h The C++ header file containing the methods and enums of VDS.
vdstest.cpp A sample C++ application that demonstrates the API usage of VDS. Uses the nlohmann JSON parser to print output.
Makefile The g++ command to compile the test application.
Readme The steps to build the sample app.
Download the latest release from Tap2iD-Linux-VDS on GitHub. Extract the archive into a working directory before continuing.
03

Configure USB Access Permissions

The Linux VDS communicates with the Tap2iD device over USB. Add a udev rule so non-root users in plugdev can open the device.

1

Open (or create) the udev rules file

Create /etc/udev/rules.d/51-usb-device.rules if it does not exist.

2

Add Tap2iD vendor / product entries

Two product IDs cover the Tap2iD device in both AOA-mode states. Save the file when done.

3

Reload udev rules

Reload udev so the new rule applies without a reboot. Re-plug the Tap2iD device after reload.

bash
$ sudo vi /etc/udev/rules.d/51-usb-device.rules
udev rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="2d00",
GROUP="plugdev", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="2d01",
GROUP="plugdev", TAG+="uaccess"
bash
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
Make sure your Linux user is a member of the plugdev group. Run id to verify; add yourself with sudo usermod -aG plugdev $USER and log out/in if needed.
04

Compile and Run the Sample Application

The release ships with a Makefile that builds vdstest.out from vdstest.cpp and links against the bundled libvds.so.

1

Enter the release directory

Change into the extracted release folder.

2

Build the sample

Run make to compile vdstest.out.

3

Run it

Set LD_LIBRARY_PATH to the current directory so the binary resolves libvds.so at load time.

bash
$ cd CID_LNX_VDS_REL-<version>/
$ make
$ LD_LIBRARY_PATH=. ./vdstest.out
🎉
You're all set
The Linux VDS is installed and the sample is running. Continue to the API Reference for the full C++ API surface.