Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions config
Original file line number Diff line number Diff line change
Expand Up @@ -117,13 +117,6 @@ CONFIG_GRM2K=n
#
#
#
# [ADI LINUX SCRIPTS]
# ADI Scripts for Linux images: semi-random collection of small shell scripts which run on various Linux images (on various platforms) which talk to a varity of different ADI boards and parts
# Github: https://github.com/analogdevicesinc/linux_image_ADI-scripts
CONFIG_LINUX_SCRIPTS=n
#
#
#
# [RASPBERRY PI BOOT FILES]
# Contains boot files for Raspberry PI installed from the ADI Package Repository.
CONFIG_RPI_BOOT_FILES=y
Expand Down
2 changes: 1 addition & 1 deletion docs/build-flow.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ Example:

.. code-block:: bash

CONTAINER_ID=$(docker inspect --format="{{.Id}}" debian_bookworm_rootfs_container)
CONTAINER_ID=$(docker inspect --format="{{.Id}}" debian_trixie_rootfs_container)
sudo docker cp $CONTAINER_ID:armhf_rootfs .

Docker Container Configuration
Expand Down
71 changes: 6 additions & 65 deletions docs/configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ These options control the fundamental aspects of your Kuiper image:
- ``armhf``
- Target architecture: ``armhf`` (32-bit) or ``arm64`` (64-bit)
* - ``DEBIAN_VERSION``
- ``bookworm``
- Debian version to use (e.g., ``bookworm``, ``bullseye``). Other
versions may have missing functionalities or unsupported tools
- ``trixie``
- Debian version to use (e.g., ``trixie``, ``bookworm``, ``bullseye``).
Versions other than the default may have limited support

----

Expand Down Expand Up @@ -94,7 +94,8 @@ Desktop Environment
ADI Libraries and Tools
-----------------------

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

.. list-table::
:header-rows: 1
Expand All @@ -106,60 +107,21 @@ These options control which ADI libraries and tools are included in the image:
* - ``CONFIG_LIBIIO``
- ``n``
- Install Libiio library (``y``/``n``)
* - ``CONFIG_LIBIIO_CMAKE_ARGS``
- *(see config file)*
- CMake build arguments for Libiio
* - ``BRANCH_LIBIIO``
- ``libiio-v0``
- Git branch to use for Libiio
* - ``CONFIG_PYADI``
- ``n``
- Install Pyadi library (``y``/``n``). Requires Libiio
* - ``BRANCH_PYADI``
- ``main``
- Git branch to use for Pyadi
* - ``CONFIG_LIBM2K``
- ``n``
- Install Libm2k library (``y``/``n``). Requires Libiio
* - ``CONFIG_LIBM2K_CMAKE_ARGS``
- *(see config file)*
- CMake build arguments for Libm2k
* - ``BRANCH_LIBM2K``
- ``main``
- Git branch to use for Libm2k
* - ``CONFIG_LIBAD9166_IIO``
- ``n``
- Install Libad9166 library (``y``/``n``). Requires Libiio
* - ``CONFIG_LIBAD9166_IIO_CMAKE_ARGS``
- *(see config file)*
- CMake build arguments for Libad9166
* - ``BRANCH_LIBAD9166_IIO``
- ``libad9166-iio-v0``
- Git branch to use for Libad9166
* - ``CONFIG_LIBAD9361_IIO``
- ``n``
- Install Libad9361 library (``y``/``n``). Requires Libiio
* - ``CONFIG_LIBAD9361_IIO_CMAKE_ARGS``
- *(see config file)*
- CMake build arguments for Libad9361
* - ``BRANCH_LIBAD9361_IIO``
- ``libad9361-iio-v0``
- Git branch to use for Libad9361
* - ``CONFIG_GRM2K``
- ``n``
- Install GRM2K (``y``/``n``). Requires Libiio, Libm2k, and Gnuradio
* - ``CONFIG_GRM2K_CMAKE_ARGS``
- *(see config file)*
- CMake build arguments for GRM2K
* - ``BRANCH_GRM2K``
- ``main``
- Git branch to use for GRM2K
* - ``CONFIG_LINUX_SCRIPTS``
- ``n``
- Install ADI Linux scripts (``y``/``n``)
* - ``BRANCH_LINUX_SCRIPTS``
- ``kuiper2.0``
- Git branch to use for Linux scripts

----

Expand All @@ -177,41 +139,20 @@ These options control which ADI applications are included in the image:
- Description
* - ``CONFIG_IIO_OSCILLOSCOPE``
- ``n``
- Install IIO Oscilloscope (``y``/``n``). Requires Libiio,
- Install IIO Oscilloscope (``y``/``n``). Requires Libiio,
Libad9166_IIO, and Libad9361_IIO
* - ``CONFIG_IIO_OSCILLOSCOPE_CMAKE_ARGS``
- *(see config file)*
- CMake build arguments for IIO Oscilloscope
* - ``BRANCH_IIO_OSCILLOSCOPE``
- ``v0.18-main``
- Git branch to use for IIO Oscilloscope
* - ``CONFIG_IIO_FM_RADIO``
- ``n``
- Install IIO FM Radio (``y``/``n``)
* - ``BRANCH_IIO_FM_RADIO``
- ``main``
- Git branch to use for IIO FM Radio
* - ``CONFIG_FRU_TOOLS``
- ``n``
- Install FRU tools (``y``/``n``)
* - ``BRANCH_FRU_TOOLS``
- ``main``
- Git branch to use for FRU tools
* - ``CONFIG_JESD_EYE_SCAN_GTK``
- ``n``
- Install JESD Eye Scan GTK (``y``/``n``)
* - ``CONFIG_JESD_EYE_SCAN_GTK_CMAKE_ARGS``
- *(see config file)*
- CMake build arguments for JESD Eye Scan GTK
* - ``BRANCH_JESD_EYE_SCAN_GTK``
- ``main``
- Git branch to use for JESD Eye Scan GTK
* - ``CONFIG_COLORIMETER``
- ``n``
- Install Colorimeter (``y``/``n``). Requires Libiio
* - ``BRANCH_COLORIMETER``
- ``main``
- Git branch to use for Colorimeter
* - ``CONFIG_SCOPY``
- ``n``
- Install Scopy (``y``/``n``)
Expand Down
110 changes: 98 additions & 12 deletions docs/customization.rst
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
.. _customization:

Custom Script Integration
=========================
Advanced Customization
======================

Kuiper allows you to run additional scripts during the build process to
customize the resulting image. This feature enables advanced customization
beyond the standard configuration options.
This guide covers advanced customization options for developers and advanced
users who need to extend the build process beyond standard configuration
options.

----

Custom Script Integration
--------------------------

Kuiper allows you to run additional scripts during the build process to
customize the resulting image. This feature enables advanced customization
beyond the standard configuration options.

Using the Example Script
------------------------
~~~~~~~~~~~~~~~~~~~~~~~~

To use the provided example script:

Expand All @@ -20,15 +27,13 @@ To use the provided example script:

EXTRA_SCRIPT=stages/07.extra-tweaks/01.extra-scripts/examples/extra-script-example.sh

2. If you need to pass ``config`` file parameters to the script, uncomment
2. If you need to pass ``config`` file parameters to the script, uncomment
the line where it sources the config file in the example script.

3. Add your custom commands to the example script file.

----

Using Your Own Custom Script
----------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To use your own custom script:

Expand All @@ -39,6 +44,87 @@ To use your own custom script:

3. Make sure your script is executable (``chmod +x your-script.sh``).

Custom scripts are executed in the chroot environment of the target system
during the build process, allowing you to install additional packages, modify
Custom scripts are executed in the chroot environment of the target system
during the build process, allowing you to install additional packages, modify
system files, or perform any other customization.

----

Building from Source
--------------------

By default, ADI libraries are installed from Analog Devices' package
repository. For development, testing unreleased features, or custom builds,
you can build libraries from source by modifying the stage scripts.

How to Enable Source Builds
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Library installation is controlled by stage scripts in ``stages/05.adi-tools/``.
Each script has a ``USE_ADI_REPO`` variable that controls the installation
method:

- ``USE_ADI_REPO=y`` - Install from package repository (default)
- ``USE_ADI_REPO=n`` - Build from source using git

**Example: Building libiio from source**

Edit ``stages/05.adi-tools/01.install-libiio/run.sh`` and set:

.. code-block:: bash

USE_ADI_REPO=n

You can also customize the git branch and CMake arguments:

.. code-block:: bash

BRANCH_LIBIIO=libiio-v0
CONFIG_LIBIIO_CMAKE_ARGS="-DWITH_HWMON=ON \
-DWITH_SERIAL_BACKEND=ON \
-DWITH_MAN=ON \
-DWITH_EXAMPLES=ON \
-DPYTHON_BINDINGS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_COLOR_MAKEFILE=OFF \
-Bbuild -H."

The same pattern applies to other libraries (``libm2k``, ``libad9361-iio``,
``libad9166-iio``, etc.) and applications (``iio-oscilloscope``,
``jesd-eye-scan-gtk``, ``gr-m2k``, etc.). Each has corresponding ``BRANCH_``
and ``CMAKE_ARGS`` variables in their respective stage scripts.

Library Dependencies
~~~~~~~~~~~~~~~~~~~~

When building from source, dependencies must be satisfied. Enable required
dependencies in the ``config`` file:

.. list-table::
:header-rows: 1
:class: bold-header

* - Library/Application
- Required Dependencies
* - ``CONFIG_PYADI``
- ``CONFIG_LIBIIO``
* - ``CONFIG_LIBM2K``
- ``CONFIG_LIBIIO``
* - ``CONFIG_LIBAD9166_IIO``
- ``CONFIG_LIBIIO``
* - ``CONFIG_LIBAD9361_IIO``
- ``CONFIG_LIBIIO``
* - ``CONFIG_IIO_OSCILLOSCOPE``
- ``CONFIG_LIBIIO``, ``CONFIG_LIBAD9166_IIO``, ``CONFIG_LIBAD9361_IIO``
* - ``CONFIG_COLORIMETER``
- ``CONFIG_LIBIIO``
* - ``CONFIG_JESD_EYE_SCAN_GTK``
- ``CONFIG_LIBIIO``
* - ``CONFIG_GRM2K``
- ``CONFIG_LIBIIO``, ``CONFIG_LIBM2K``, ``CONFIG_GNURADIO``

.. note::

Dependencies are handled automatically when using package installation
(the default). Manual dependency management is only needed when building
from source.
4 changes: 2 additions & 2 deletions docs/hardware-configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@ Platform-Specific Manual Steps

If required boot files are missing from your Kuiper image, install
them using the ADI package repository. See the :doc:`Repositories
<repositories>` section for detailed instructions.
<package-management>` section for detailed instructions.

AMD/Xilinx Platforms
....................
Expand Down Expand Up @@ -589,7 +589,7 @@ Device tree manipulation utility
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To manage the Device Tree using the ``dtoverlay`` command-line tool, first
enable the :ref:`repositories rpi`, then install the ``raspi-utils-dt``
enable the :ref:`package-management-rpi`, then install the ``raspi-utils-dt``
package:

.. shell::
Expand Down
30 changes: 10 additions & 20 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,26 +22,16 @@ system configuration.
Quick Start
-----------

Get up and running with Kuiper:
Get up and running with Kuiper in two simple steps:

#. :doc:`Check prerequisites <prerequisites>` (Ubuntu 22.04 + Docker for
building)
#. Get Kuiper image:

- **Quick option**: Download pre-built from :git-kuiper:`GitHub
Actions <actions/workflows/kuiper2_0-build.yml?query=branch:main+>`
- **Custom option**: Clone repository and build your own

.. code-block:: bash

git clone --depth 1 https://github.com/analogdevicesinc/kuiper
cd kuiper
sudo ./build-docker.sh

For detailed instructions, see the :doc:`Quick Start <quick-start>` section.
#. Download a tested release image (Basic or Full) from
`ADI Kuiper Releases <RELEASE_LINK_PLACEHOLDER>`_

#. :doc:`Write the image to an SD card and boot your device <use-kuiper-image>`

For other options including latest development builds or custom builds, see
the :doc:`Quick Start <quick-start>` guide.

----

What's Included
Expand All @@ -51,7 +41,7 @@ Kuiper provides a configurable development environment tailored for ADI
hardware:

**Core System**
Debian Bookworm base with optimized configurations for ARM devices
Debian Trixie base with optimized configurations for ARM devices

**ADI Libraries (Optional)**
libiio, pyadi-iio, libm2k, libad9361, libad9166 for hardware communication
Expand Down Expand Up @@ -85,7 +75,7 @@ Basic Image (Default)

**What's included:**

- Debian Bookworm base system with essential utilities
- Debian Trixie base system with essential utilities
- Boot files for Raspberry Pi, Xilinx, and Intel platforms
- User account setup (analog/analog) with sudo access
- Network configuration and SSH access
Expand Down Expand Up @@ -171,9 +161,9 @@ Documentation
:maxdepth: 2
:caption: Advanced Topics

stage-reference
package-management
customization
repositories
stage-reference

.. toctree::
:maxdepth: 2
Expand Down
Loading
Loading