Back to Nexa Sdk

Linux (Docker) Install

docs/en/run/linux/install.mdx

0.3.163.4 KB
Original Source

import Feedback from "/snippets/page-feedback.mdx";

The Linux Docker path runs through a container image built for Linux ARM64 with NPU access (Dragonwing QCS9075 and similar IoT platforms).

Prerequisites

Install host dependencies

The container reaches the NPU through the host's Qualcomm driver libraries, mounted in via -v /usr/lib:/opt/qcom-lib:ro. Install them on the host before docker run — in two steps.

1. Standard APT packages

Provides libatomic1, libglib2.0-0, and a generic OpenCL ICD loader:

bash
sudo apt update
sudo apt install -y \
  libatomic1 \
  libglib2.0-0 \
  ocl-icd-libopencl1

<Note>ocl-icd-libopencl1 is replaced by qcom-adreno1 in the next step.</Note>

2. Qualcomm driver packages (via ubuntu-qcom-iot PPA)

Provides the Qualcomm-proprietary libraries the NPU needs:

LibraryProvided by
libOpenCL_adreno.so.1, libCB.so.1, libadreno_utils.so.1, libgsl.so.1, libllvm-*.so.1qcom-adreno1
libdmabufheap.so.0.0.0qcom-libdmabufheap (auto-dep of qcom-adreno1)
libpropertyvault.so.0.0.0qcom-property-vault (auto-dep of qcom-adreno1)
libcdsprpc.so.1.0.0qcom-fastrpc1
bash
sudo apt-get install -y qcom-adreno1 qcom-fastrpc1

The PPA (ppa:ubuntu-qcom-iot/qcom-ppa) is pre-configured on the IQ9075 EVK Ubuntu image. qcom-adreno1 automatically pulls in qcom-libdmabufheap and qcom-property-vault.

Pull the image

The image is published to two registries — pick whichever you have access to and set IMAGE accordingly, then pull:

bash
# Option A — Docker Hub (public, no login required):
IMAGE=docker.io/qualcomm/geniex:latest

# Option B — Qualcomm Container Registry:
docker login docker-registry.qualcomm.com -u '$app' -p GB2S6KXMJXTPV8VHNFNS7Q6LVH75LOOBTLT8D723WUX6PSFZMTX95GIQG4EFWH5C021ONZ5763VI9IDHU96Q7VAZJ2830CLX3NPI6STQOJWRYXLLA2ZYTL1S
IMAGE=docker-registry.qualcomm.com/qcom-ai-hub/geniex-cli:latest

docker pull "$IMAGE"
<Note> If `docker login` fails or `docker pull` returns `permission denied ... /var/run/docker.sock`, see [Troubleshooting → Linux](/en/resources/troubleshooting#linux) for the credential and `docker` group fixes. </Note>

Run interactively

Drop into an interactive shell inside the container:

bash
docker run -it --rm --privileged \
  -v "$PWD/data:/data" \
  -v /usr/lib:/opt/qcom-lib:ro \
  "$IMAGE"

Verify

Then run a test command from the container shell:

bash
geniex --help

<Note>The --privileged flag is required for NPU access.</Note>

For server mode, see Local server.

CLI

For the full CLI Docker install guide, see CLI Install — Linux ARM64 (Docker).

Python

For the full Python install guide on native Linux ARM64, see Python Install — Linux ARM64.

The Python SDK can be installed inside the Docker container or directly on the Linux ARM64 host. See the Linux ARM64 tab for native install instructions.

<Feedback/>