# 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@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@:/optCopy to clipboard Log in to SSH shell: ssh root@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)