Linux SDK Installation

The Nayax EMV Core SDK supports a wide range of Linux-based platforms. Each delivery includes optimized binaries for specific CPU architectures and library versions.

Supported Platforms

The following table has all supported Linux platforms:

Target NameDescriptionBitsPIECPU ABIMin KernelGLIBClibCurl
x86_64Ubuntu 64-bit64YesAMD643.2.02.347.81.0
armhfARM32 GCC "hard float"32YesARM v7-A3.2.02.347.81.0
armhf_7.5Linaro 7.5 toolchain32NoARM v7-A3.2.02.177.86.0
armv8aPoky Linux (Yocto)64YesARM AArch645.15.02.388.4.0
aarch64-nuvotonNuvoton (Buildroot)64NoARM AArch645.10.02.287.79.1
arm-injBuildroot32YesARM v7-A VE--7.83.1
ql_oe_mdm9607Quectel MDM960732NoARM v7-A2.6.322.177.44.0
cortexa53-pokyPoky Linux64YesARM AArch643.14.02.347.82.0
openwrtOpen-source firmware32NoMIPS--8.0.1
aarch64-gnu-13.2GNU toolchain 13.264-ARM AArch643.7.02.348.9.0

Package Contents

Each platform folder contains four primary components:

  • otiKiosk: The primary EMV-Core service executable.
  • otiKioskDemo: The client Test Application executable.
  • kiosk-client-library-xxx.zip: Eclipse project containing the C source code and sample app.
  • otikiosk-xxx.zip: Package for remote updates via TMS (using the CON_PROG command).

You can see a folder structure sample below:

Linux/
└── x86_64/
    ├── otiKiosk/            # EMV-Core Service
    ├── otiKioskDemo/        # Test App
    ├── Sources/             # Client library & source code
    └── TMS Update/          # Remote update package

Installation

The EMV Core SDK for Linux provides a set of APIs to control payment processes over Unix domain sockets or TCP. It supports multiple architectures, including x86_64 and various ARM platforms.

Prerequisites and Environment

  • System Dependencies: Requires libcurl for secured internet access with TLS 1.2 or higher.
  • Permissions: The user running the service must have read/write access to the executable folder and the reader device (e.g., /dev/hidrawX for USB or /dev/ttyXXX for Serial).
  • Architecture: Ensure you are using the correct binary for your target platform (e.g., Ubuntu x86_64, armhf, or armv8a).

Installation Steps

Follow these steps to install the SDK on Linux:

  1. Copy the EMV-Core binary (otiKiosk) to the target device. Note that the file must not be renamed.
  2. Build the sample application:
    • Install build essentials: sudo apt-get install build-essential automake.
    • Extract the source code zip file (e.g., Emv-Core-client-x86_64-1.4-97.zip).
    • Run the following commands in the source folder:
      autoreconf -fi
      ./configure
      make
      [cite_start]```[cite: 1871, 1872, 1873].
  3. Run the applications:
    • Terminal 1: Start the EMV Core service with sudo ./otiKiosk.
    • Terminal 2: Start the test application with sudo ./otiKioskDemo.
📘

Communication Configuration

By default, the SDK uses Internal (Unix domain) sockets, creating socket_cmd and socket_events in the application’s /var folder.

If you prefer TCP communication, set the configuration option KIOSK_USE_TCP_SOCKETS=1. This will use ports 10000 for commands and 10001 for events.