Skip to content

Installation

libVIIPER is a shared library (libVIIPER.dll on Windows, libVIIPER.so on Linux) that you link against directly from your application, eliminating the need for a separate server process.

libVIIPER relies on USBIP, so you must have a USBIP-Client implementation available on your system to use the virtual devices.

License

Linking against libVIIPER requires your application to be licensed under the GPL-3.0 (or a compatible license).

Requirements

USBIP

libVIIPER requires the signed usbip-win2 0.9.7.7 x64 release. Use the DS4Windows Install / Repair VIIPER action whenever possible; its package contains this exact verified installer.

Do not substitute another USBIP build

This release is ABI-pinned to 0.9.7.7. Version 0.9.7.8 reproduced kernel pool corruption during controller attachment and is explicitly rejected. The installer verifies the version and live ABI before allowing VIIPER to start.

USBIP-Win2 signing certificate

The upstream 0.9.7.7 installer may add the publicly available USBIP test-signing CA to Trusted Root Certification Authorities. After installation, you may remove the certificate named USBIP with certlm.msc (run as administrator). Do not replace 0.9.7.7 with a newer or OSSign build: VIIPER validates this exact userspace/driver ABI.

Ubuntu/Debian

sudo apt install linux-tools-generic

Ubuntu USBIP Manual

Arch Linux

sudo pacman -S usbip

Arch Wiki: USBIP

Linux Kernel Module Setup

USBIP Client Requirement

USBIP requires the vhci-hcd (Virtual Host Controller Interface) kernel module on Linux for client operations. This includes libVIIPER's auto-attach feature and manual device attachment.

Most Linux distributions include this module but do not load it automatically.

See the USBIP Setup guide for detailed instructions.

Getting libVIIPER

Pre-built Binaries

Download the latest libVIIPER release artifact from the DualSenseClient/VIIPER Releases page. The archive contains:

  • libVIIPER.dll / libVIIPER.so: the shared library
  • libVIIPER.h: the C header
  • libVIIPER.def: Windows import definition (for generating .lib/.dll.a import libraries)

Building from Source

git clone https://github.com/DualSenseClient/VIIPER.git
cd VIIPER
just build-libVIIPER

The output will be in dist/libVIIPER/.

CGO Required

Building libVIIPER requires CGO (CGO_ENABLED=1) and a C compiler (GCC / MSVC / Clang) in PATH. On Windows, mingw-w64 or MSVC is required.

See libVIIPER documentation for integration guides and examples.