# Compile and install a Qualcomm IM SDK plugin 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-70022-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 ## Next steps - [Qualcomm Linux build guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-254/build_landing_page.html) - [Build multimedia applications](https://docs.qualcomm.com/doc/80-70022-51/topic/application-development.html#application-development) - [Create a sample application](https://docs.qualcomm.com/doc/80-70022-51/topic/content-develop-your-first-application.html#content-develop-your-first-application) - [Customize an existing sample application](https://docs.qualcomm.com/doc/80-70022-51/topic/customize-sample-applications.html#customize-sample-applications) - [Develop custom plugins](https://docs.qualcomm.com/doc/80-70022-51/topic/create-your-imsdk-plugin.html#create-your-imsdk-plugin) - [Troubleshooting guide](https://docs.qualcomm.com/doc/80-70022-51/topic/troubleshooting.html#troubleshooting) - *class* tabincludedirective - Set up your environment and install the Qualcomm IM SDK plugin to integrate its multimedia capabilities into your applications. ## Prerequisites > > > Before you begin, ensure the following: > > > > > > > > > - You have access to a Qualcomm development kit running Ubuntu Linux. > > - You have administrative privileges (sudo access) for installing packages. > > - Internet connectivity for downloading packages and source code. ## Steps to compile and install 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 && apt-add-repository ppa:ubuntu-qcom-iot/qcom-ppa && apt-get install qcom-adreno-dev && 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.06200 > 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 ## Next steps - [Build multimedia applications](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-51/application-development.html) - [Create a sample application](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-51/content-develop-your-first-application.html) - [Customize an existing sample application](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-51/customize-sample-applications.html) Last Published: Jan 04, 2026 [Previous Topic Customize an existing sample application with the Qualcomm IM SDK](https://docs.qualcomm.com/bundle/publicresource/80-70022-51/topics/customize-sample-applications.md) [Next Topic Develop a custom plugin for the Qualcomm IM SDK](https://docs.qualcomm.com/bundle/publicresource/80-70022-51/topics/create-your-imsdk-plugin.md)