# Compile and install reference apps

Source: [https://docs.qualcomm.com/doc/80-70015-15B/topic/compile-reference-apps-esdk.html](https://docs.qualcomm.com/doc/80-70015-15B/topic/compile-reference-apps-esdk.html)

1. Setup the environment:

        cd $ESDK_ROOT
        source environment-setup-armv8-2a-qcom-linuxCopy to clipboard
2. Download the reference application source code.

        cd $ESDK_ROOT
        devtool modify qcom-gst-ai-classificationCopy 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
        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-classificationCopy to clipboard

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

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-classificationCopy 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-classificationCopy to clipboard
4. Generate the application installer (.ipk) to install the application on the device.

        devtool package qcom-gst-ai-classificationCopy 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-classificationCopy to clipboard

        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. Log in to 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.

    Run the following command on the target
                    device.

        mount -o remount,rw /
        exit Copy to clipboard

    Do the following on the host
                    machine:

        cd $ESDK_ROOT/tmp/deploy/ipk/armv8-2a/
        scp qcom-gst-ai-classification_1.0-r0_armv8-2a.ipk 
        root@<IP address of the target device>:/opt/Copy to clipboard

    Log in to SSH
                    shell:

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

    Do
                    the following on the target
                device:

        opkg --force-depends --force-reinstall --force-overwrite install /opt/qcom-gst-ai-classification_1.0-r0_armv8-2a.ipkCopy to clipboard
7. Verify that IPK 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:**

Enable the display by running the following command.

    export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1Copy to clipboard

Use the following command to run the application

    /usr/bin/gst-ai-classificationCopy to clipboard

Last Published: Jan 21, 2026

[Previous Topic
Compile application, Qualcomm IM SDK](https://docs.qualcomm.com/bundle/publicresource/80-70015-15B/topics/compile-app-esdk.md) [Next Topic
Compile and install Qualcomm IM SDK plugins](https://docs.qualcomm.com/bundle/publicresource/80-70015-15B/topics/esdk-compile-qimsdk-plugins.md)