> ## Documentation Index
> Fetch the complete documentation index at: https://devzone.nayax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Linux SDK 安装

Nayax EMV Core SDK 支持多种基于 Linux 的平台。每个交付版本均包含针对特定 CPU 架构和库版本优化的二进制文件。

<Accordion title="支持的平台" icon="info-circle">
  下表列出了所有受支持的 Linux 平台：

  | 目标名称 | 描述 | 位数 | PIE | CPU ABI | 最低内核版本 | GLIBC | libCurl |
  | :- | :- | :- | :- | :- | :- | :- | :- |
  | **x86\_64** | X86 64 位（Ubuntu） | 64 | 是 | AMD64 | 3.2.0 | 2.34 | 7.81.0 |
  | **armhf** | ARM32 GCC “hard float” | 32 | 是 | ARM v7-A | 3.2.0 | 2.34 | 7.81.0 |
  | **armhf\_7.5** | ARM32 GCC “hard float”（Linaro 7.5） | 32 | 否 | ARM v7-A | 3.2.0 | 2.17 | 7.86.0 |
  | **armv8a** | ARM64 Poky Linux（Yocto） | 64 | 是 | ARM AArch64 | 5.15.0 | 2.38 | 8.4.0 |
  | **aarch64-nuvoton** | 适用于 Nuvoton 的 ARM64（Buildroot） | 64 | 否 | ARM AArch64 | 5.10.0 | 2.28 | 7.79.1 |
  | **arm-inj** | ARM32（Buildroot） | 32 | 是 | ARM v7-A VE | — | — | 7.83.1 |
  | **ql\_oe\_mdm9607** | Quectel MDM9607 OpenEmbedded | 32 | 否 | ARM v7-A | 2.6.32 | 2.17 | 7.44.0 |
  | **cortexa53-poky-linux** | 基于 Poky Linux 的 ARM64 | 64 | 是 | ARM AArch64 | 3.14.0 | 2.34 | 7.82.0 |
  | **cortexa53-hardknott** | 使用 Hardknott 构建的 ARM64 | 64 | 是 | ARM AArch64 | 3.14.0 | 2.33 | 7.75.0 |
  | **openwrt** | 适用于嵌入式 MIPS 的开源固件 | 32 | 否 | MIPS | — | — | 8.0.1 |
  | **nuvoton\_NUC970** | 适用于 Nuvoton NUC970 的 ARM32 | 32 | — | ARM | — | — | 7.52.1 |
  | **openwrt-arm** | 适用于嵌入式 ARM32 的开源固件 | 32 | — | ARM | — | — | 7.82.0 |
  | **aarch64-ndk23** | 使用 Android NDK 的 ARM64 | 64 | 是 | ARM AArch64 | — | — | 7.86.0 |
  | **aarch64-13.2** | 使用 GNU 工具链 13.2 的 ARM64 | 64 | — | ARM AArch64 | 3.7.0 | 2.34 | 8.9.0 |
  | **aarch64-musl** | ARM64 OpenWRT MUSL | 64 | — | ARM AArch64 | — | — | 8.15.0 |
</Accordion>

### 软件包内容

每个平台文件夹均包含四个主要组件：

* **`otiKiosk`**：主要的 EMV Core 服务可执行文件。
* **`otiKioskDemo`**：客户端测试应用程序可执行文件。
* **`kiosk-client-library-xxx.zip`**：包含 C 源代码和示例应用程序的 Eclipse 项目。
* **`otikiosk-xxx.zip`**：用于通过 TMS 进行远程更新的软件包（使用 `CON_PROG` 命令）。

软件包目录结构如下：

```text theme={null}
Linux/
└── x86_64/
    ├── otiKiosk/            # EMV Core Service
    ├── otiKioskDemo/        # Test App
    ├── Sources/             # Client library & source code
    └── TMS Update/          # Remote update package
```

## 安装

适用于 Linux 的 EMV Core SDK 提供了一组 API，用于通过 Unix 域套接字或 TCP 控制支付流程。它支持多种架构，包括 x86\_64 和各种 ARM 平台。

### 先决条件与环境

在部署 SDK 之前，请确认以下要求：

* **系统依赖项**：需要 `libcurl` 以支持 TLS 1.2 或更高版本的安全互联网访问。
* **权限**：运行该服务的用户必须对可执行文件所在文件夹及读卡器设备（例如 USB 对应的 `/dev/hidrawX` 或串口对应的 `/dev/ttyXXX`）具有读写权限。
* **架构**：请确保为目标平台使用正确的二进制文件（例如 Ubuntu x86\_64、armhf 或 armv8a）。

### 安装步骤

1. 将 EMV Core 二进制文件（`otiKiosk`）复制到目标设备。请注意，不得重命名该文件。
2. 构建示例应用程序：
   * 安装构建基础工具：`sudo apt-get install build-essential automake`。
   * 解压源代码压缩文件（例如 `Emv-Core-client-x86_64-1.4-97.zip`）。
   * 在源代码文件夹中运行以下命令：
     ```bash theme={null}
     autoreconf -fi
     ./configure
     make
     ```
3. 运行应用程序：
   * **终端 1**：使用 `sudo ./otiKiosk` 启动 EMV Core 服务。
   * **终端 2**：使用 `sudo ./otiKioskDemo` 启动测试应用程序。

<Note>
  **通信配置**

  默认情况下，SDK 使用内部（Unix 域）套接字，在应用程序的 `/var` 文件夹中创建 `socket_cmd` 和 `socket_events`。

  如果您更倾向使用 TCP 通信，请设置配置选项 `KIOSK_USE_TCP_SOCKETS=1`。这将使用端口 **10000** 传输命令，使用端口 **10001** 传输事件。
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.