From 93751372ea472019f19e655ce00b8e70b169b20d Mon Sep 17 00:00:00 2001 From: Ganesh Khose Date: Wed, 17 Jun 2026 10:58:35 +0530 Subject: [PATCH 01/10] camxlib-hamoa: update to the 1.0.27 revision jpeg corruption issue due to format mismatch Signed-off-by: Ganesh Khose (cherry picked from commit 1e75c524236be2e6b4abf7d86e7e6ad0c9a6b642) --- .../recipes-multimedia/camx/camxlib-hamoa_1.0.26.bb | 9 --------- .../recipes-multimedia/camx/camxlib-hamoa_1.0.27.bb | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-hamoa_1.0.26.bb create mode 100644 dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-hamoa_1.0.27.bb diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-hamoa_1.0.26.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-hamoa_1.0.26.bb deleted file mode 100644 index 35178cdb3..000000000 --- a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-hamoa_1.0.26.bb +++ /dev/null @@ -1,9 +0,0 @@ -PLATFORM = "hamoa" -PBT_BUILD_DATE = "260608" - -require common.inc - -SRC_URI[camxlib.sha256sum] = "de9462268613e3efce2b1103b81ac0b0927cdb957a9791779094114821017656" -SRC_URI[camx.sha256sum] = "dc51e2fb8ba211551b86f22e849a41499aba1460f44d5c2fb6daf6759c0bf0b9" -SRC_URI[chicdk.sha256sum] = "60eb44f2fee434bbe22fe7598771da9c2e5d11ad2d22954fc0d01e216827364c" -SRC_URI[camxcommon.sha256sum] = "08e5e6256b80b9b8a0296977f247810f89dfb456da10618e76a9593ab6a75b78" diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-hamoa_1.0.27.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-hamoa_1.0.27.bb new file mode 100644 index 000000000..99e0e524c --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-hamoa_1.0.27.bb @@ -0,0 +1,9 @@ +PLATFORM = "hamoa" +PBT_BUILD_DATE = "260616" + +require common.inc + +SRC_URI[camxlib.sha256sum] = "fa862d980478564abb2c8efff81e2783cd1269cc4d38cb215f9a1e2d02e23269" +SRC_URI[camx.sha256sum] = "1b59111f0ef43bb96d2fed3e189108d8b6027672268bd03747121d7d6bc0385e" +SRC_URI[chicdk.sha256sum] = "c20d1b44137eb3cf69cda234ece46be1b0b3bc41acf3940eb4000ec49c0efce5" +SRC_URI[camxcommon.sha256sum] = "c1c54b93e1844dc27e5467fef941fa7ba8d41b53417d15526a27c60840630d58" From 1c1e1ba36b99e978a6807c230f3536854ea22652 Mon Sep 17 00:00:00 2001 From: Ganesh Khose Date: Wed, 17 Jun 2026 10:59:44 +0530 Subject: [PATCH 02/10] camxlib-talos: Update to the 1.0.27 revision - jpeg corruption issue due to format mismatch - Enable Electronic Image Stabilization (EIS) and Lens Distortion Correction (LDC) support for Talos. - Update recipe to include EGL and GLES dependencies, and conditionally add OpenCL support based on DISTRO_FEATURES. Signed-off-by: Ganesh Khose (cherry picked from commit e3e9ae8978202b9338b68c0ae0a9d28ce85a8a90) --- .../recipes-multimedia/camx/camxlib-talos_1.0.26.bb | 9 --------- .../recipes-multimedia/camx/camxlib-talos_1.0.27.bb | 11 +++++++++++ 2 files changed, 11 insertions(+), 9 deletions(-) delete mode 100644 dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.26.bb create mode 100644 dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.27.bb diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.26.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.26.bb deleted file mode 100644 index 06f80e127..000000000 --- a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.26.bb +++ /dev/null @@ -1,9 +0,0 @@ -PLATFORM = "talos" -PBT_BUILD_DATE = "260608" - -require common.inc - -SRC_URI[camxlib.sha256sum] = "71b6fa32d429a9811e3ab77b5d68b53184b13f1b0627f2830d2fe876524f1844" -SRC_URI[camx.sha256sum] = "bfaf94dfc0efb09379d137d8fd50942ef4ac57f309e0d394d18a0e96c5d78420" -SRC_URI[chicdk.sha256sum] = "157620217e819a84b04c8181e0b8b7e8ea580fd10f84dd6fe91eb8b5a89059e2" -SRC_URI[camxcommon.sha256sum] = "80a9d45aa4008aadde7b8e49e6f5523eb60d87c3fd14c2accd85ea9239bcac98" diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.27.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.27.bb new file mode 100644 index 000000000..a7bcb5a0e --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.27.bb @@ -0,0 +1,11 @@ +PLATFORM = "talos" +PBT_BUILD_DATE = "260616" + +require common.inc + +SRC_URI[camxlib.sha256sum] = "3bba0daa67089e529b807961101e920d12109dfbc585901f8db979716094ec5a" +SRC_URI[camx.sha256sum] = "bab2573930951360e58eca159eec8c5777043eb6c1c57725dffae499a75475df" +SRC_URI[chicdk.sha256sum] = "9b08fe81bc9177826fe5d9aff185de16bdb216cab20304bfea60a8c8a5c2eb48" +SRC_URI[camxcommon.sha256sum] = "9e8a7b595242916962bb018f2dffc3136c399f1bf80b0aecd91f4ac97f6293f9" + +DEPENDS += "virtual/egl virtual/libgles2 ${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'qcom-adreno virtual/libopencl1', '', d)}" From 7598308ad26f4282de8b201c2f9bcee28be9effd Mon Sep 17 00:00:00 2001 From: Ganesh Khose Date: Wed, 17 Jun 2026 11:13:04 +0530 Subject: [PATCH 03/10] camxlib-lemans: update to the 1.0.27 revision - jpeg corruption issue due to format mismatch - Add CAM0B support to enable OV9282 combo mode on Lemans. - Enable Deep Learning based Face Detection on Lemans. - Created a separate package for SKEL files and added INSANE_SKIP for "arch libdir" specifically for that package. - Disable auto-renaming for ${PN}-skel to preserve consistent package naming. Signed-off-by: Ganesh Khose (cherry picked from commit 89934073a88bb76cd9f04eb1de0d58428e9694fa) --- .../camx/camxlib-lemans_1.0.26.bb | 32 ------------ .../camx/camxlib-lemans_1.0.27.bb | 52 +++++++++++++++++++ 2 files changed, 52 insertions(+), 32 deletions(-) delete mode 100644 dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.26.bb create mode 100644 dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.26.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.26.bb deleted file mode 100644 index 16d48b3d5..000000000 --- a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.26.bb +++ /dev/null @@ -1,32 +0,0 @@ -PLATFORM = "lemans" -PBT_BUILD_DATE = "260608" - -require common.inc - -SRC_URI[camxlib.sha256sum] = "1a8b1e8d2ad8d1697b566130bde4f83df500d6ff0479613fdcda70e129d85686" -SRC_URI[camx.sha256sum] = "b5b7e51f30bfd6cdbd56dcda9ceeee50cb1f0519c65e98c3a0fe74a1e77b2cec" -SRC_URI[chicdk.sha256sum] = "765bdbac41ad3b223bd74e289f16b0fa2c12b2fe7a58e0dcf81dc7c653538857" -SRC_URI[camxcommon.sha256sum] = "4897fd152b8858cf93d0b31ba2d8e46842cdcd917a3ed10493bc1fec84de3276" - - - -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'qcom-adreno virtual/libopencl1', '', d)}" - -do_install:append() { - # Copy json only when /etc folder exists in ${S} - if [ -d "${S}/etc" ]; then - install -d ${D}${sysconfdir}/camera/test/NHX/ - cp -r ${S}/etc/camera/test/NHX/*.json ${D}${sysconfdir}/camera/test/NHX/ - fi -} - -RPROVIDES:${PN} = "camxlib-monaco" -PACKAGE_BEFORE_PN += "camx-nhx" -RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'virtual-opencl-icd', '', d)}" - -FILES:camx-nhx = "\ - ${bindir}/nhx.sh \ - ${sysconfdir}/camera/test/NHX/ \ -" - -FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', '${libdir}/camx/${PLATFORM}/*.cl ${libdir}/camx/${PLATFORM}/libmctf_cl_program.bin', '', d)}" diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb new file mode 100644 index 000000000..b0ff6b457 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb @@ -0,0 +1,52 @@ +PLATFORM = "lemans" +PBT_BUILD_DATE = "260616" + +require common.inc + +SRC_URI[camxlib.sha256sum] = "97d494798573681192147acdd87411dbe0413157d820ddaec81d51a9a2c6dadf" +SRC_URI[camx.sha256sum] = "b84903c48932462e4373934c7c10d311b8ad80f5ff822375de3008a3553245fd" +SRC_URI[chicdk.sha256sum] = "e563a96bc45f4685d0b7514400a1a81d07cb1b48c3dc2bef19438a48f2d09986" +SRC_URI[camxcommon.sha256sum] = "91d79a5530f926571e6921bd38b8eb22d7b223867cd2d375d28441e2282c88c1" + +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'qcom-adreno virtual/libopencl1', '', d)}" + +do_install:append() { + # Copy json only when /etc folder exists in ${S} + if [ -d "${S}/etc" ]; then + install -d ${D}${sysconfdir}/camera/test/NHX/ + cp -r ${S}/etc/camera/test/NHX/*.json ${D}${sysconfdir}/camera/test/NHX/ + fi + # copy Deep Learning based binary + cp -r ${S}/usr/share/camx ${D}${datadir} + # copy skel file + cp -r ${S}/usr/share/qcom ${D}${datadir} +} + +RPROVIDES:${PN} = "camxlib-monaco" +PACKAGE_BEFORE_PN += "camx-nhx ${PN}-skel" +RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'virtual-opencl-icd', '', d)}" + +FILES:camx-nhx = "\ + ${bindir}/nhx.sh \ + ${sysconfdir}/camera/test/NHX/ \ +" +FILES:${PN}-skel = "\ + ${datadir}/camx \ + ${datadir}/qcom \ +" +# OpenCL-related camx files +CAMX_OPENCL_FILES = " \ + ${libdir}/camx/${PLATFORM}/*.cl \ + ${libdir}/camx/${PLATFORM}/libmctf_cl_program.bin \ +" +FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', '${CAMX_OPENCL_FILES}', '', d)}" + +# Algo librarires are pre-compiled, pre-stripped. +# Skipping QA checks: 'already-stripped', 'arch', 'libdir' because: +# - Library files are Pre-stripped (already-stripped) +# - skel binaries/library are not AArch64 (arch mismatch) (arch) +# - Files are installed under /usr/share (non-libdir path) (libdir) +INSANE_SKIP:${PN}-skel += " arch libdir already-stripped" + +# Preserve ${PN}-skel naming to avoid ambiguity in package identification. +DEBIAN_NOAUTONAME:${PN}-skel = "1" From af5c32f5192b53a4df3721116d12d0416b736e56 Mon Sep 17 00:00:00 2001 From: Ganesh Khose Date: Wed, 17 Jun 2026 11:19:51 +0530 Subject: [PATCH 04/10] camxlib-kodiak: update to the 1.0.24 revision - Enable Deep Learning based Face Detection in Kodiak. - Add support for 3-frame SHDR (YUV SHDR) pipeline on Kodiak. - Created a separate package for SKEL files and added INSANE_SKIP for "arch libdir" specifically for that package. - Disable auto-renaming for ${PN}-skel to preserve consistent package naming. - Link additional libraries and enable whole archive static linking for few libs required for CamX compilation. Signed-off-by: Ganesh Khose (cherry picked from commit d949840c7c278f87e758d8f97b23321bab775866) --- ...iak_1.0.22.bb => camxlib-kodiak_1.0.24.bb} | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) rename dynamic-layers/openembedded-layer/recipes-multimedia/camx/{camxlib-kodiak_1.0.22.bb => camxlib-kodiak_1.0.24.bb} (86%) diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.22.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb similarity index 86% rename from dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.22.bb rename to dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb index bbf34bdca..e48360bff 100644 --- a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.22.bb +++ b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb @@ -8,15 +8,15 @@ LICENSE = "LICENSE.qcom-2" LIC_FILES_CHKSUM = "file://usr/share/doc/${BPN}/LICENSE.QCOM-2.txt;md5=165287851294f2fb8ac8cbc5e24b02b0 \ file://usr/share/doc/${BPN}/NOTICE;md5=04facc2e07e3d41171a931477be0c690" -PBT_BUILD_DATE = "260515" +PBT_BUILD_DATE = "260617" SRC_URI = " \ https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/${PBT_BUILD_DATE}/prebuilt_yocto/${BPN}_${PV}_armv8-2a.tar.gz;name=camxlib \ https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/${PBT_BUILD_DATE}/prebuilt_yocto/camx-kodiak_${PV}_armv8-2a.tar.gz;name=camx \ https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/${PBT_BUILD_DATE}/prebuilt_yocto/chicdk-kodiak_${PV}_armv8-2a.tar.gz;name=chicdk \ " -SRC_URI[camxlib.sha256sum] = "51cc525d7cf9572b890ea9576fcb1a97fb3d7670f1ff4db368c365fa07dcde60" -SRC_URI[camx.sha256sum] = "2477d93fc5da81806086d252624787b5d6c330cfbfcdcf9373330381179005a0" -SRC_URI[chicdk.sha256sum] = "d328d0889417c28bc2ff88a20a7ddf020e0123db1a05399a977a8490798c9256" +SRC_URI[camxlib.sha256sum] = "25972b1932bb3dc06c73c5261c16ce047645e7ed95162810f4bb243c1816a025" +SRC_URI[camx.sha256sum] = "e83ad33e4c2dc823339ac9512d45a02dfe7f316cb60d34f27aea5637f9c80b0e" +SRC_URI[chicdk.sha256sum] = "8adc152ebdb6d0a105f9b4f8ccaae0bfde9f05058605ebcc07b7057dfcc55c61" S = "${UNPACKDIR}" @@ -36,6 +36,10 @@ do_install:append() { install -d ${D}${datadir}/doc/chicdk-kodiak cp -r ${S}/usr/lib/* ${D}${libdir} + # copy Deep Learning based binary + cp -r ${S}/usr/share/camx ${D}${datadir} + # copy skel file + cp -r ${S}/usr/share/qcom ${D}${datadir} # Install bin files only if /usr/bin exists in ${S} if [ -d "${S}${bindir}" ]; then @@ -65,7 +69,7 @@ do_install:append() { fi } -PACKAGE_BEFORE_PN += "camx-kodiak chicdk-kodiak" +PACKAGE_BEFORE_PN += "camx-kodiak chicdk-kodiak ${PN}-skel" RDEPENDS:${PN} += "chicdk-kodiak" RDEPENDS:${PN}-dev += "camxcommon-headers-dev" RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'virtual-opencl-icd', '', d)} sensinghub qcom-sensors-binaries" @@ -100,6 +104,10 @@ FILES:chicdk-kodiak = "\ ${libdir}/camx/kodiak/hw/com.qti.chi.*${SOLIBS} \ ${bindir}/ \ " +FILES:${PN}-skel = "\ + ${datadir}/camx \ + ${datadir}/qcom \ + " FILES:${PN} = "\ ${libdir}/libcamera_metadata_kodiak*${SOLIBS} \ ${libdir}/camx/kodiak/*${SOLIBS} \ @@ -112,10 +120,14 @@ FILES:${PN}-dev = "\ " FILES:${PN}-staticdev = "${libdir}/camx/kodiak/*.a" -# Preserve ${PN} naming to avoid ambiguity in package identification. +# Preserve ${PN},${PN}-skel naming to avoid ambiguity in package identification. DEBIAN_NOAUTONAME:${PN} = "1" +DEBIAN_NOAUTONAME:${PN}-skel = "1" # Algo librarires are pre-compiled, pre-stripped. -# Skipping QA checks: 'already-stripped' because: +# Skipping QA checks: 'already-stripped', 'arch', 'libdir' because: # - Library files are Pre-stripped (already-stripped) +# - skel binaries/library are not AArch64 (arch mismatch) (arch) +# - Files are installed under /usr/share (non-libdir path) (libdir) INSANE_SKIP:${PN} = "already-stripped" +INSANE_SKIP:${PN}-skel += " arch libdir already-stripped" From a2b5a0ac3aec496bf5ff8a5ff2515217f864dee9 Mon Sep 17 00:00:00 2001 From: Ganesh Khose Date: Wed, 17 Jun 2026 17:16:36 +0530 Subject: [PATCH 05/10] camxcommon-headers: Update to the 1.0.11 revision - Source/header mismatch causes CamX compilation failure. - Update the headers tar to align with the sources. Signed-off-by: Ganesh Khose (cherry picked from commit a8bbce412ac5c7c143d4e6d6dc1afe937e778d1a) --- ...xcommon-headers_1.0.10.bb => camxcommon-headers_1.0.11.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename recipes-multimedia/camx/{camxcommon-headers_1.0.10.bb => camxcommon-headers_1.0.11.bb} (90%) diff --git a/recipes-multimedia/camx/camxcommon-headers_1.0.10.bb b/recipes-multimedia/camx/camxcommon-headers_1.0.11.bb similarity index 90% rename from recipes-multimedia/camx/camxcommon-headers_1.0.10.bb rename to recipes-multimedia/camx/camxcommon-headers_1.0.11.bb index 1fd9efe24..9de35027f 100644 --- a/recipes-multimedia/camx/camxcommon-headers_1.0.10.bb +++ b/recipes-multimedia/camx/camxcommon-headers_1.0.11.bb @@ -5,9 +5,9 @@ DESCRIPTION = "This recipe provides headers for all Qualcomm CamX stacks" LICENSE = "LICENSE.qcom-2" LIC_FILES_CHKSUM = "file://usr/share/doc/${BPN}/LICENSE.QCOM-2.txt;md5=165287851294f2fb8ac8cbc5e24b02b0" -PBT_BUILD_DATE = "260527" +PBT_BUILD_DATE = "260616.1" SRC_URI = "https://qartifactory-edge.qualcomm.com/artifactory/qsc_releases/software/chip/component/camx.qclinux.0.0/${PBT_BUILD_DATE}/prebuilt_yocto/${BPN}_${PV}_armv8-2a.tar.gz" -SRC_URI[sha256sum] = "a5239a438f4a71f17bb6484b37ee3d766e0f847bbcebd2145c906f1ab5a9578c" +SRC_URI[sha256sum] = "8ec30b4ea8ea3c8aaaa6751a96ae244923040238bc331a27db1be302918695a7" S = "${UNPACKDIR}" From 22bd51720720e6b6805cee4b9168721319936df5 Mon Sep 17 00:00:00 2001 From: Ganesh Khose Date: Sun, 21 Jun 2026 19:22:42 +0530 Subject: [PATCH 06/10] camxlib-kodiak: Add ${PN}-skel as runtime dependency Include ${PN}-skel in RDEPENDS:${PN} to ensure required skel package components are pulled in during runtime. Signed-off-by: Ganesh Khose (cherry picked from commit b61162091ff2f807076101d0f7373bbd9b571a29) Signed-off-by: Dmitry Baryshkov --- .../recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb index e48360bff..2a7f3e0d5 100644 --- a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb +++ b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb @@ -70,7 +70,7 @@ do_install:append() { } PACKAGE_BEFORE_PN += "camx-kodiak chicdk-kodiak ${PN}-skel" -RDEPENDS:${PN} += "chicdk-kodiak" +RDEPENDS:${PN} += "chicdk-kodiak ${PN}-skel" RDEPENDS:${PN}-dev += "camxcommon-headers-dev" RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'virtual-opencl-icd', '', d)} sensinghub qcom-sensors-binaries" From 3e462481f26849620a875340863af1d6476a48c1 Mon Sep 17 00:00:00 2001 From: Ganesh Khose Date: Sun, 21 Jun 2026 19:24:15 +0530 Subject: [PATCH 07/10] camxlib-lemans: Add ${PN}-skel as runtime dependency Include ${PN}-skel in RDEPENDS:${PN} to ensure required skel package components are pulled in during runtime. Signed-off-by: Ganesh Khose (cherry picked from commit c056885cab4243a08d4c71276666f8949446ae91) Signed-off-by: Dmitry Baryshkov --- .../recipes-multimedia/camx/camxlib-lemans_1.0.27.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb index b0ff6b457..dac20fd1a 100644 --- a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb +++ b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb @@ -24,6 +24,7 @@ do_install:append() { RPROVIDES:${PN} = "camxlib-monaco" PACKAGE_BEFORE_PN += "camx-nhx ${PN}-skel" +RDEPENDS:${PN} += "${PN}-skel" RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'virtual-opencl-icd', '', d)}" FILES:camx-nhx = "\ From 3719059a0ef223b1280cb3f92769818a05428181 Mon Sep 17 00:00:00 2001 From: Kripalsinh Rana Date: Sun, 21 Jun 2026 14:18:11 +0530 Subject: [PATCH 08/10] camxlib-kodiak: Remove unconditional OpenGL/OpenCL dependencies Remove hard dependency on OpenGL (EGL/GLES2) and OpenCL libraries and make them optional based on DISTRO_FEATURES. This ensures camx builds successfully when opengl/opencl features are disabled and aligns with Yocto best practices for optional GPU/compute components. Signed-off-by: Kripalsinh Rana (cherry picked from commit 80f9c4a7e7ca92777325a8591099e81829eb9f7a) Signed-off-by: Dmitry Baryshkov --- .../camx/camxlib-kodiak_1.0.24.bb | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb index 2a7f3e0d5..8aaa8eb69 100644 --- a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb +++ b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-kodiak_1.0.24.bb @@ -20,8 +20,12 @@ SRC_URI[chicdk.sha256sum] = "8adc152ebdb6d0a105f9b4f8ccaae0bfde9f05058605ebcc07b S = "${UNPACKDIR}" -DEPENDS += "glib-2.0 fastrpc protobuf-camx libxml2 virtual/egl virtual/libgles2 qmi-framework sensinghub qcom-sensors-binaries \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'qcom-adreno virtual/libopencl1', '', d)}" +DEPENDS += "glib-2.0 fastrpc protobuf-camx libxml2 qmi-framework sensinghub qcom-sensors-binaries" + +DEPENDS += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/egl virtual/libgles2', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'virtual/libopencl1', '', d)} \ +" # This package is currently only used and tested on ARMv8 (aarch64) machines. # Therefore, builds for other architectures are not necessary and are explicitly excluded. @@ -36,6 +40,20 @@ do_install:append() { install -d ${D}${datadir}/doc/chicdk-kodiak cp -r ${S}/usr/lib/* ${D}${libdir} + + # Remove OpenCL-dependent libraries when opencl is not enabled. + if ${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'false', 'true', d)}; then + rm -f ${D}${libdir}/camx/kodiak/*.cl + rm -f ${D}${libdir}/camx/kodiak/lib_algo_svhdr* + rm -f ${D}${libdir}/camx/kodiak/camera/components/libshdr3* + rm -f ${D}${libdir}/camx/kodiak/camera/components/libbanding_correction* + fi + + # Remove OpenGL/EGL-dependent libraries when opengl is not enabled. + if ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'false', 'true', d)}; then + rm -f ${D}${libdir}/camx/kodiak/camera/components/libiwarp* + fi + # copy Deep Learning based binary cp -r ${S}/usr/share/camx ${D}${datadir} # copy skel file From b386df1c5172afb796722f086d6777e8a98e952d Mon Sep 17 00:00:00 2001 From: Kripalsinh Rana Date: Sun, 21 Jun 2026 14:19:34 +0530 Subject: [PATCH 09/10] camxlib-lemans: Updated OpenGL/OpenCL dependency handling Introduce DISTRO_FEATURES-based handling for OpenCL and OpenGL (EGL/GLES2) dependencies. Added guard logic to remove OpenCL/OpenGL dependent libs when opengl/opencl distro features are disabled. This ensures camx builds successfully when opengl/opencl features are disabled and aligns with Yocto best practices for optional GPU/compute components. Signed-off-by: Kripalsinh Rana (cherry picked from commit b8b9859e49126186d536a18d9dc645a21a5b7381) Signed-off-by: Dmitry Baryshkov --- .../recipes-multimedia/camx/camxlib-lemans_1.0.27.bb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb index dac20fd1a..e125eb667 100644 --- a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb +++ b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-lemans_1.0.27.bb @@ -8,7 +8,8 @@ SRC_URI[camx.sha256sum] = "b84903c48932462e4373934c7c10d311b8ad80f5ff822375de300 SRC_URI[chicdk.sha256sum] = "e563a96bc45f4685d0b7514400a1a81d07cb1b48c3dc2bef19438a48f2d09986" SRC_URI[camxcommon.sha256sum] = "91d79a5530f926571e6921bd38b8eb22d7b223867cd2d375d28441e2282c88c1" -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'qcom-adreno virtual/libopencl1', '', d)}" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'virtual/libopencl1', '', d)}" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/egl virtual/libgles2', '', d)}" do_install:append() { # Copy json only when /etc folder exists in ${S} @@ -20,6 +21,13 @@ do_install:append() { cp -r ${S}/usr/share/camx ${D}${datadir} # copy skel file cp -r ${S}/usr/share/qcom ${D}${datadir} + + # Remove OpenCL-dependent libraries when opencl is not enabled. + if ${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'false', 'true', d)}; then + rm -f ${D}${libdir}/camx/${PLATFORM}/*.cl + rm -f ${D}${libdir}/camx/${PLATFORM}/libmctf_cl_program.bin + rm -f ${D}${libdir}/camx/${PLATFORM}/libmctfengine_stub* + fi } RPROVIDES:${PN} = "camxlib-monaco" From 176faf324347d940e87bb829faca78232abdd5ab Mon Sep 17 00:00:00 2001 From: Kripalsinh Rana Date: Sun, 21 Jun 2026 14:27:11 +0530 Subject: [PATCH 10/10] camxlib-talos: Updated OpenGL/OpenCL dependency handling Introduce DISTRO_FEATURES-based handling for OpenCL and OpenGL (EGL/GLES2) dependencies. Added guard logic to remove OpenCL/OpenGL dependent libs when opengl/opencl distro features are disabled. This ensures camx builds successfully when opengl/opencl features are disabled and aligns with Yocto best practices for optional GPU/compute components. Signed-off-by: Kripalsinh Rana (cherry picked from commit b4a0152511f891f4a23d9659012b51718fd8a801) Signed-off-by: Dmitry Baryshkov --- .../recipes-multimedia/camx/camxlib-talos_1.0.27.bb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.27.bb b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.27.bb index a7bcb5a0e..d6bfab69a 100644 --- a/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.27.bb +++ b/dynamic-layers/openembedded-layer/recipes-multimedia/camx/camxlib-talos_1.0.27.bb @@ -8,4 +8,11 @@ SRC_URI[camx.sha256sum] = "bab2573930951360e58eca159eec8c5777043eb6c1c57725dffae SRC_URI[chicdk.sha256sum] = "9b08fe81bc9177826fe5d9aff185de16bdb216cab20304bfea60a8c8a5c2eb48" SRC_URI[camxcommon.sha256sum] = "9e8a7b595242916962bb018f2dffc3136c399f1bf80b0aecd91f4ac97f6293f9" -DEPENDS += "virtual/egl virtual/libgles2 ${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'qcom-adreno virtual/libopencl1', '', d)}" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'opencl', 'virtual/libopencl1', '', d)}" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/egl virtual/libgles2', '', d)}" + +do_install:append() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'opengl opencl', 'false', 'true', d)}; then + rm -f ${D}${libdir}/camx/${PLATFORM}/camera/components/libiwarp* + fi +}