# Compile and install Qualcomm IM SDK plugins

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

This section explains how to compile a Qualcomm IM SDK plugin and install it on the
        device, using the *mlvdetection* plugin as an example.

1. Setup the environment:

        cd $ESDK_ROOT
        source environment-setup-armv8-2a-qcom-linuxCopy to clipboard

        SDK environment now set up; additionally you may now run devtool to perform development tasks.
        Run devtool --help for further details. 
        [/local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gst-ai-classification]$Copy to clipboard
2. Download the Qualcomm IM SDK plugin source code.

        cd $ESDK_ROOT
        devtool modify qcom-gstreamer1.0-plugins-oss-mlvdetectionCopy to clipboard

    Where
                        *qcom-gstreamer1.0-plugins-oss-mlvdetection* is the bitbake recipe that
                    downloads the source code for the
                    plugin.

        NOTE: Starting bitbake server...
        Loading cache: 100% |######################################| Time: 0:00:00
        Loaded 9816 entries from dependency cache.
        Parsing recipes: 100% |####################################| Time: 0:00:01
        Parsing of 6700 .bb  files complete (6678 cached, 22 parsed). 9838 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-gstreamer1.0-plugins-oss-mlvdetection
        INFO: Recipe qcom-gstreamer1.0-plugins-oss-mlvdetection now setup to build from /local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gstreamer1.0-plugins-oss-mlvdetectionCopy to clipboard

    The
                    plugin source code is downloaded to
                        $ESDK\_ROOT/workspace/sources/qcom-gstreamer1.0-plugins-oss-mlvdetection

        [/local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gstreamer1.0-plugins-oss-mlvdetection]$ ls
        CMakeLists.txt    config.h.in    mlvdetection.h    modules
        [/local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gstreamer1.0-plugins-oss-mlvdetection]$Copy to clipboard
3. After customizing, use the following commands to rebuild the plugin.

        devtool build qcom-gstreamer1.0-plugins-oss-mlvdetectionCopy to clipboard

        NOTE: Starting bitbake server...
        Loading cache: 100% |################################################| Time: 0:00:00
        Loaded 9816 entries from dependency cache.
        Parsing recipes: 100% |##############################################| Time: 0:00:01
        Parsing of 6700 .bb  files complete (6678 cached, 22 parsed). 9838 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 264 Local 0 Mirrors 0 Missed 264 Current 255 (0% match, 49% complete)
        Removing 1 stale sstate objects for arch qcs6490_rb3gen2_vision_kit: 100% |################################################| Time: 0:00:12
        Removing 1 stale sstate objects for arch armv8-2a: 100% |##################################################################| Time: 0:00:16
        NOTE: Executing Tasks
        NOTE: qcom-gstreamer1.0-plugins-oss-mlvdetection: compiling from external source tree /local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gstreamer1.0-plugins-oss-mlvdetection
        NOTE: Task Summary: Attempted 1836 tasks of which 1827 didn't need to be rerun and all succeeded.Copy to clipboard
4. Generate the plugin installer (.ipk) to install the application on the device.

        devtool package qcom-gstreamer1.0-plugins-oss-mlvdetectionCopy to clipboard

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

        ls $ESDK_ROOT/tmp/deploy/ipk/armv8-2a | grep qcom-gstreamer1.0-plugins-oss-mlvdetectionCopy to clipboard

        qcom-gstreamer1.0-plugins-oss-mlvdetection_1.0-r0_armv8-2a.ipk
        qcom-gstreamer1.0-plugins-oss-mlvdetection_dbg_1.0-r0_armv8-2a.ipk
        qcom-gstreamer1.0-plugins-oss-mlvdetection_dev_1.0-r0_armv8-2a.ipk
        qcom-gstreamer1.0-plugins-oss-mlvdetection_src_1.0-r0_armv8-2a.ipk
        [/local/mnt/workspace/QIMSDK_ESDK_6490/workspace/sources/qcom-gstreamer1.0-plugins-oss-mlvdetection]$Copy to clipboard
5. Setup an SSH connection with the device by following the steps [here](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-254/how_to.html#use-ssh). Once connected, the RB3Gen2 device
                is accessible through its configured IP address.
6. Copy the
                    qcom-gstreamer1.0-plugins-oss-mlvdetection\_1.0-r0\_armv8-2a.ipk
                to the RB3Gen2 device to install the compiled reference apps.
7. 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-gstreamer1.0-plugins-oss-mlvdetection_1.0-r0_armv8-2a.ipk root@<IP addr of the target device>:/optCopy 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-gstreamer1.0-plugins-oss-mlvdetection_1.0-r0_armv8-2a.ipkCopy to clipboard

Verify
                    that IPK installation is successful as shown
                    below:

        Installing qcom-gstreamer1.0-plugins-oss-mlvdetection (1.0) on root
        Configuring qcom-gstreamer1.0-plugins-oss-mlvdetection.Copy to clipboard

Last Published: Jan 21, 2026

[Previous Topic
Compile and install reference apps](https://docs.qualcomm.com/bundle/publicresource/80-70015-15B/topics/compile-reference-apps-esdk.md) [Next Topic
Creating your own application](https://docs.qualcomm.com/bundle/publicresource/80-70015-15B/topics/esdk-create-own-app.md)