Configuration

Kuiper-gen’s build process is controlled by settings defined in the config file located in the root of the repository. This file contains bash variables that determine what features to include and how to build the image.


How to Configure

To modify the configuration:

  1. Edit the config file in your preferred text editor

  2. Set option values to y to enable features or n to disable them

  3. Modify other values as needed for your build

  4. Save the file and run the build script

After the build completes, you can find a copy of the used configuration in the root directory (/) of the built image.

You can also set the number of processors or cores you want to use for building by adding NUM_JOBS=[number] to the config file. By default, this uses all available cores ($(nproc)).


System Configuration

These options control the fundamental aspects of your Kuiper image:

Option

Default

Description

TARGET_ARCHITECTURE

armhf

Target architecture: armhf (32-bit) or arm64 (64-bit)

DEBIAN_VERSION

trixie

Debian version to use (e.g., trixie, bookworm, bullseye). Versions other than the default may have limited support


Build Process Options

These options control how the Docker build process behaves:

Option

Default

Description

PRESERVE_CONTAINER

n

Keep the Docker container after building (y/n)

CONTAINER_NAME

debian_<DEBIAN_VERSION>_rootfs_container

Name of the Docker container. Useful for building multiple images in parallel

EXPORT_SOURCES

n

Download source files for all packages in the image (y/n)


Desktop Environment

Option

Default

Description

CONFIG_DESKTOP

n

Install XFCE desktop environment and X11VNC server (y/n)


ADI Libraries and Tools

These options control which ADI libraries and tools are included in the image. Libraries are installed from Analog Devices’ package repository.

Option

Default

Description

CONFIG_LIBIIO

n

Install Libiio library (y/n)

CONFIG_PYADI

n

Install Pyadi library (y/n). Requires Libiio

CONFIG_LIBM2K

n

Install Libm2k library (y/n). Requires Libiio

CONFIG_LIBAD9166_IIO

n

Install Libad9166 library (y/n). Requires Libiio

CONFIG_LIBAD9361_IIO

n

Install Libad9361 library (y/n). Requires Libiio

CONFIG_GRM2K

n

Install GRM2K (y/n). Requires Libiio, Libm2k, and Gnuradio


ADI Applications

These options control which ADI applications are included in the image:

Option

Default

Description

CONFIG_IIO_OSCILLOSCOPE

n

Install IIO Oscilloscope (y/n). Requires Libiio, Libad9166_IIO, and Libad9361_IIO

CONFIG_IIO_FM_RADIO

n

Install IIO FM Radio (y/n)

CONFIG_FRU_TOOLS

n

Install FRU tools (y/n)

CONFIG_JESD_EYE_SCAN_GTK

n

Install JESD Eye Scan GTK (y/n)

CONFIG_COLORIMETER

n

Install Colorimeter (y/n). Requires Libiio

CONFIG_SCOPY

n

Install Scopy (y/n)


Non-ADI Applications

These options control which non-ADI applications are included in the image:

Option

Default

Description

CONFIG_GNURADIO

n

Install GNU Radio (y/n)


Boot Files Configuration

These options control which boot files are included in your image:

Option

Default

Description

CONFIG_RPI_BOOT_FILES

y

Include Raspberry Pi boot files (y/n) - Enabled by default

CONFIG_ARCH_ZYNQ

y

Install Zynq architecture boot files (y/n).

CONFIG_ARCH_ARRIA10

y

Install Arria10 architecture boot files (y/n).

CONFIG_ARCH_CYCLONE5

y

Install Cyclone5 architecture boot files (y/n).

CONFIG_ARCH_ZYNQMP

n

Install ZynqMP architecture boot files (y/n).

CONFIG_ARCH_VERSAL

n

Install Versal architecture boot files (y/n).

Architecture to Hardware Mapping:

Architecture

Hardware Platform Examples

zynq

ZedBoard, ZC702, ZC706, Cora Z7s, ADRV9361-Z7035, ADRV9364-Z7020

arria10

Arria10 SoC Development Kit

cyclone5

Cyclone 5 SoC Kit, DE10-Nano, Arradio board

zynqmp

ZCU102, ADRV9009-ZU11EG, Jupiter SDR

versal

VCK190, VPK180, VHK158


Hardware Targeting Configuration

These options configure your image for specific hardware during the build process:

Option

Default

Description

ADI_EVAL_BOARD

(empty)

Configure which ADI evaluation board project the image will run. When set, the image will be pre-configured for this specific project.

CARRIER

(empty)

Configure which carrier board the image will boot on. Used together with ADI_EVAL_BOARD to create a ready-to-use hardware configuration

Note: Setting ADI_EVAL_BOARD and CARRIER is optional. You can leave these empty and configure your hardware later using the runtime configure-setup.sh script. See Hardware Configuration for details.


Platform-Specific Packages

These options add platform-specific software packages beyond the basic boot files:

Option

Default

Description

INSTALL_RPI_PACKAGES

n

Install Raspberry Pi specific packages (y/n) including: raspi-config, GPIO-related tools (pigpio, python3-gpio, raspi-gpio, python3-rpi.gpio), VideoCore debugging (vcdbg), sense-hat, and sense-emu


Customization

Option

Default

Description

EXTRA_SCRIPT

(empty)

Path to a custom script inside the adi-kuiper-gen directory to run during build for additional customization


Common Configuration Examples

Building a 64-bit image with desktop environment

Listing 2 config file settings
TARGET_ARCHITECTURE=arm64
CONFIG_DESKTOP=y

Including IIO tools and libraries

Listing 3 config file settings
CONFIG_LIBIIO=y
CONFIG_IIO_OSCILLOSCOPE=y  # This will require LIBAD9166_IIO and LIBAD9361_IIO

Building for a specific ADI evaluation board

Listing 4 config file settings
ADI_EVAL_BOARD=ad9361-fmcomms2
CARRIER=zedboard

Building only 64-bit boot files

Listing 5 config file settings
CONFIG_ARCH_ZYNQ=n
CONFIG_ARCH_ARRIA10=n
CONFIG_ARCH_CYCLONE5=n

CONFIG_ARCH_ZYNQMP=y
CONFIG_ARCH_VERSAL=y

Complete development environment with GNU Radio

Listing 6 config file settings
CONFIG_DESKTOP=y
CONFIG_LIBIIO=y
CONFIG_LIBM2K=y
CONFIG_GNURADIO=y
CONFIG_GRM2K=y