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 GitHubPrerequisites
Your Linux host must meet these requirements before installing the VDS shared library.
-
Ubuntu 20.04.3 LTS or compatible (validated with kernel
5.15.0-113-generic). -
g++ with C++17 support, plus
libstdc++6andlibc6. -
libusb-1.0 for USB device access; user must be a member of
plugdev. - nlohmann-json for parsing JSON responses from the VDS APIs.
- Active internet connection for downloading packages and the VDS release.
Install Pre-requisite Packages
This document assumes familiarity working with Ubuntu and package installations. Install the build toolchain and runtime libraries the VDS needs.
Update the package index
Refresh apt's local cache so the latest package versions resolve.
Install the dependencies
Install libusb, udev tools, the JSON parser, the C++ runtime, and the spdlog/fmt logging libraries.
$ 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
sudo apt-get update and confirm your sources list includes the standard Ubuntu universe repository.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. |
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.
Open (or create) the udev rules file
Create /etc/udev/rules.d/51-usb-device.rules if it does not exist.
Add Tap2iD vendor / product entries
Two product IDs cover the Tap2iD device in both AOA-mode states. Save the file when done.
Reload udev rules
Reload udev so the new rule applies without a reboot. Re-plug the Tap2iD device after reload.
$ sudo vi /etc/udev/rules.d/51-usb-device.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"
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
plugdev group. Run id to verify; add yourself with sudo usermod -aG plugdev $USER and log out/in if needed.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.
Enter the release directory
Change into the extracted release folder.
Build the sample
Run make to compile vdstest.out.
Run it
Set LD_LIBRARY_PATH to the current directory so the binary resolves libvds.so at load time.
$ cd CID_LNX_VDS_REL-<version>/
$ make
$ LD_LIBRARY_PATH=. ./vdstest.out