# Compile and install Qualcomm IM SDK plugins Tab Qualcomm Linux Tab Ubuntu - *class* tabincludedirectiv - 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. Set up the environment: cd $ESDK_ROOT Copy to clipboard source environment-setup-armv8-2a-qcom-linux Copy 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 Copy to clipboard devtool modify qcom-gstreamer1.0-plugins-oss-mlvdetection Copy 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-mlvdetection Copy 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-mlvdetection Copy 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-mlvdetection Copy 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- mlvdetection Copy 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. Set up an SSH connection with the device by following the steps provided in [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/how_to.html#use-ssh). When connected, the Dragonwing RB3 Gen 2 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 Dragonwing RB3 Gen 2 device to install the compiled reference apps. 7. Connect to the device through the SSH shell: ssh root@ Copy to clipboard Note If prompted, enter `oelinux123` as the password for the SSH shell. 8. Run the following command on the target device. mount -o remount,rw / exit Copy to clipboard 9. Run the following commands on the host machine: cd $ESDK_ROOT/tmp/deploy/ipk/armv8-2a/ Copy to clipboard scp qcom-gstreamer1.0-plugins-oss-mlvdetection_1.0-r0_armv8-2a.ipk root@:/opt Copy to clipboard 10. Connect to the device through the SSH shell: ssh root@ Copy to clipboard 11. Run the following command on the target device: opkg --force-depends --force-reinstall --force-overwrite install /opt/qcom- gstreamer1.0-plugins-oss-mlvdetection_1.0-r0_armv8-2a.ipk Copy to clipboard 12. Verify that the 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 - *class* tabincludedirective - To download the source code and compile the sample applications, run the following commands on the Qualcomm development kit. 1. Update the user permissions for your session. > > > sudo su > Copy to clipboard 2. Configure Ubuntu package manager to download source code. > > > apt-add-repository -s ppa:ubuntu-qcom-iot/qcom-ppa > Copy to clipboard > > > apt-add-repository ppa:ubuntu-qcom-iot/qcom-ppa > Copy to clipboard > > > apt-get install adreno-dev > Copy to clipboard > > > apt-get install gstreamer1.0-qcom-sample-apps-utils-dev > Copy to clipboard 3. Build the dependencies. > > > apt build-dep gst-plugins-qti-oss > Copy to clipboard 4. Change directory to the home folder. > > > cd /home/ubuntu > Copy to clipboard 5. Download the sources of the QIM Package. > > > apt source gst-plugins-qti-oss > Copy to clipboard 6. Go to the QIM root folder. For example: > > > cd gst-plugins-qti-oss-1.0.r1.05900 > Copy to clipboard 7. Create and go to the build directory. > > > mkdir build; cd build > Copy to clipboard 8. Run CMake to generate the Makefile. > > > cmake > -DCMAKE_INSTALL_PREFIX=/usr > -DCMAKE_BUILD_TYPE=None > -DCMAKE_INSTALL_SYSCONFDIR=/etc > -DCMAKE_INSTALL_LOCALSTATEDIR=/var > -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON > -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF > -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON > -DFETCHCONTENT_FULLY_DISCONNECTED=ON > -DCMAKE_INSTALL_RUNSTATEDIR=/run > -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON > "-GUnix Makefiles" > -DCMAKE_VERBOSE_MAKEFILE=ON > -DCMAKE_INSTALL_LIBDIR=lib/aarch64-linux-gnu > -DGST_VERSION_REQUIRED=1.20.1 > -DSYSROOT_INCDIR=/usr/include > -DSYSROOT_LIBDIR=/usr/lib > -DGST_PLUGINS_QTI_OSS_INSTALL_BINDIR=/usr/bin > -DGST_PLUGINS_QTI_OSS_INSTALL_LIBDIR=/usr/lib/aarch64-linux-gnu > -DGST_PLUGINS_QTI_OSS_INSTALL_INCDIR=/usr/include > -DGST_PLUGINS_QTI_OSS_INSTALL_CONFIG=/etc/configs > -DGST_PLUGINS_QTI_OSS_LICENSE=BSD > -DGST_PLUGINS_QTI_OSS_VERSION=2.0.0 > -DGST_PLUGINS_QTI_OSS_PACKAGE=gstreamer1.0-plugins-qcom-oss > "-DGST_PLUGINS_QTI_OSS_SUMMARY=Qualcomm open-source GStreamer Plug-ins" > -DGST_PLUGINS_QTI_OSS_ORIGIN=http://www.qualcomm.com > -DGST_IMAGE_MAX_WIDTH=5184 > -DGST_IMAGE_MAX_HEIGHT=3880 > -DGST_VIDEO_MAX_WIDTH=5184 > -DGST_VIDEO_MAX_HEIGHT=3880 > -DGST_VIDEO_MAX_FPS=120/1 > -DCAMERA_METADATA_VERSION=1.0 > -DGST_VIDEO_TYPE_SUPPORT=TRUE > -DEIS_MODES_ENABLE=TRUE > -DVHDR_MODES_ENABLE=TRUE > -DFEATURE_OFFLINE_IFE_SUPPORT=TRUE > -DENABLE_VIDEO_ENCODE=TRUE > -DENABLE_VIDEO_DECODE=TRUE > -DENABLE_VIDEO_DISPLAY=TRUE > -DENABLE_VIDEO_ML=TRUE > -DENABLE_VIDEO_AUDIO=TRUE > .. > Copy to clipboard 9. Compile the QIM plugins > > > make -C gst-sample-apps/gst-sample-apps-utils install DESTDIR=../../../utils install > Copy to clipboard > > > make > Copy to clipboard If successful, the compiled library files are present in the build directory. 10. Run the following to install the programs. > > > sudo make install > Copy to clipboard Last Published: Jan 18, 2026 [Previous Topic Customize existing sample applications](https://docs.qualcomm.com/bundle/publicresource/80-70020-51/topics/customize-sample-applications.md) [Next Topic Create your Qualcomm IM SDK plugin](https://docs.qualcomm.com/bundle/publicresource/80-70020-51/topics/create-your-imsdk-plugin.md)