# Compile and install reference apps

This example demonstrates the steps to build the
`gst-ai-classification` sample application.

The `$ESDK_ROOT/layers/meta-qcom-qim-product-sdk/recipes-gst/gstreamer-sample-apps/`
directory contains the available AI sample applications.

All AI sample applications are named `qcom-gst-ai-*`.

Replace `gst-ai-classification` with the sample app of your choice in
the steps that follow.

1. Setup the environment:

cd $ESDK_ROOT
        Copy to clipboard

source environment-setup-armv8-2a-qcom-linux
        Copy to clipboard
2. Download the reference application source code.

cd $ESDK_ROOT
        Copy to clipboard

devtool modify qcom-gst-ai-classification
        Copy to clipboard

    Where `qcom-gst-ai-classification` is the bitbake recipe that
downloads the source code of the reference applications.

NOTE: Starting bitbake server...
        Loading cache: 100% |######################################| Time: 0:00:00
        Loaded 9814 entries from dependency cache.
        Parsing recipes: 100% |####################################| Time: 0:00:01
        Parsing of 6704 .bb  files complete (6674 cached, 30 parsed). 9842 targets, 842 skipped, 0 masked, 0 errors.
        NOTE: Resolving any missing task queue dependencies
        Initialising tasks: 100% |#################################| Time: 0:00:55
        Sstate summary: Wanted 10 local 0 mirrors 0 Missed 10 Current 10 (0% match, 50% complete)
        NOTE: Executing Tasks
        NOTE: Tasks Summary: Attempted 93 tasks of which 90 didn't need to be rerun and all succeeded.
        INFO: Source tree extracted to /local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gst-ai-classification
        Copy to clipboard

    The reference application source code is downloaded to
`$ESDK_ROOT/workspace/sources/qcom-gst-ai-classification`.

[/local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gst-ai-classification]$ ls
        CMakeLists.txt main.c
        [/local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gst-ai-classification]$
        Copy to clipboard
3. After customizing, use the following commands to rebuild the
reference app.

devtool build qcom-gst-ai-classification
        Copy to clipboard

NOTE: Starting bitbake server...
        Loading cache: 100% |################################################| Time: 0:00:00
        Loaded 9814 entries from dependency cache.
        Parsing recipes: 100% |##############################################| Time: 0:00:01
        Parsing of 6704 .bb  files complete (6674 cached, 30 parsed). 9842 targets, 842 skipped, 0 masked, 0 errors.
        NOTE: Resolving any missing task queue dependencies
        Initialising tasks: 100% |###########################################| Time: 0:00:55
        Checking sstate mirror object availability: 100% |###################| Time: 0:01:06
        Sstate Summary: Wanted 391 Local 0 Mirrors 0 Missed 391 Current 381 (0% match, 49% complete)
        NOTE: Executing Tasks
        NOTE: qcom-gst-ai-classification: compiling from external source tree /local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gst-ai-classification
        Copy to clipboard
4. Generate the application installer (`.ipk`) to install the application on the device.

devtool package qcom-gst-ai-classification
        Copy to clipboard

    Verify that the installable package is present at the following path.

ls $ESDK_ROOT/tmp/deploy/ipk/armv8-2a | grep qcom-gst-ai-classification
        qcom-gst-ai-classification_1.0-r0_armv8-2a.ipk
        qcom-gst-ai-classification_dbg_1.0-r0_armv8-2a.ipk
        qcom-gst-ai-classification_dev_1.0-r0_armv8-2a.ipk
        qcom-gst-ai-classification_src_1.0-r0_armv8-2a.ipk
        [/local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gst-ai-classification]$
        Copy to clipboard
5. Copy the `qcom-gst-ai-classification_1.0-r0_armv8-2a.ipk` to the
RB3Gen2 device to install the compiled reference apps.
6. Connect to the device through the SSH shell:

ssh root@<IP addr of the target device>
        Copy to clipboard

Note

If prompted, enter `oelinux123` as the password for the SSH shell.
7. Run the following command on the target device.

mount -o remount,rw /
        exit
        Copy to clipboard
8. Run the following on the host computer:

cd $ESDK_ROOT/tmp/deploy/ipk/armv8-2a/
        Copy to clipboard

scp qcom-gst-ai-classification_1.0-r0_armv8-2a.ipk root@<IP addressof the target device>:/opt/
        Copy to clipboard
9. Connect to the device through the SSH shell:

ssh root@<IP addr of the target device>
        Copy to clipboard
10. Run the following on the target device:

opkg --force-depends --force-reinstall --force-overwrite install /opt/qcom- gst-ai-classification_1.0-r0_armv8-2a.ipk
        Copy to clipboard
11. Verify that installation is successful as shown below:

Installing qcom-gst-ai-classification (1.0) on root
        Configuring qcom-gst-ai-classification.
        sh-5.1#
        Copy to clipboard

    Now you can run the modified application by starting it from the terminal.

    **For example:**

    1. Enable the display by running the following command:

export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1
            Copy to clipboard
    2. Use the following command to run the application:

/usr/bin/gst-ai-classification
            Copy to clipboard

Last Published: Jan 21, 2026

[Previous Topic
Download and install the Platform eSDK](https://docs.qualcomm.com/bundle/publicresource/80-70017-15B/topics/download-install-platform-esdk.md) [Next Topic
Compile and install Qualcomm IM SDK plugins](https://docs.qualcomm.com/bundle/publicresource/80-70017-15B/topics/compile-install-imsdk-plugins.md)