- libusb-1.0 (required for USB communication)
- CMake (build system)
-
Install prerequisites:
# Ubuntu/Debian sudo apt-get install libusb-1.0-0-dev cmake build-essential # macOS brew install libusb cmake
-
Build the project:
mkdir build cd build cmake .. make
-
Install prerequisites:
- CMake (https://cmake.org/download/)
- Visual Studio with C++ support
- libusb (via vcpkg or manual installation)
-
Generate Visual Studio project:
mkdir build cd build cmake ..
Open the generated .sln file in Visual Studio and build.
-
Create udev rules for USB device access:
sudo nano /etc/udev/rules.d/99-synergy-usb.rules
Add the following content (replace VID/PID with your device's values):
SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", ATTR{idProduct}=="YYYY", MODE="0666"
-
Reload udev rules:
sudo udevadm control --reload-rules sudo udevadm trigger
No special setup required if using libusb-win32 or WinUSB drivers.
-
Device Connection
- Connect USB device
- Verify device enumeration:
lsusb # Linux/Mac
-
Application Configuration Required parameters:
- Vendor ID (VID)
- Product ID (PID)
- Bulk IN endpoint
- Bulk OUT endpoint
-
Connection Workflow
- Application initializes USB context
- Discovers device using VID/PID
- Establishes connection using bulk endpoints
- Handles data transfer
-
Permission Issues
- Verify udev rules (Linux)
- Run with elevated privileges if needed
-
Connection Issues
- Check device enumeration
- Verify VID/PID match
- Ensure endpoints are correctly configured
See API Documentation for detailed interface documentation.