From b77af16d6553dd758e366e5e5bcd0c1aba1de34d Mon Sep 17 00:00:00 2001 From: Raja Ganapathi Busam Date: Wed, 16 Sep 2026 01:44:54 +0530 Subject: [PATCH 1/3] initramfs-kerneltest-image: exclude qairt-sdk-hexagon-vXX packages qairt-sdk-hexagon packages are large in size and are not relevant to initramfs image, exclude them. Signed-off-by: Raja Ganapathi Busam --- recipes-test/images/initramfs-kerneltest-image.bb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/recipes-test/images/initramfs-kerneltest-image.bb b/recipes-test/images/initramfs-kerneltest-image.bb index 9dea43c13..57879d4b2 100644 --- a/recipes-test/images/initramfs-kerneltest-image.bb +++ b/recipes-test/images/initramfs-kerneltest-image.bb @@ -1,3 +1,11 @@ require initramfs-test-image.bb PACKAGE_INSTALL += "${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" + +python __anonymous () { + meer = d.getVar('MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS') or '' + for p in meer.split(): + # exclude qairt-sdk-hexagon-vXX + if 'qairt-sdk-hexagon-v' in p: + d.setVar('PACKAGE_INSTALL:remove', p) +} From 54b140366c886a9e8bddb02092ffdfa971a36595 Mon Sep 17 00:00:00 2001 From: Raja Ganapathi Busam Date: Wed, 16 Sep 2026 18:27:01 +0530 Subject: [PATCH 2/3] qairt-sdk: increase wget retries and timeout for SDK download Override FETCHCMD_wget to use 5 retries and a 1000-second timeout when downloading the QAIRT SDK package. The SDK archive is approximately 2.2 GB and may fail with the default wget retry and timeout settings on slower or unstable network connections. Signed-off-by: Raja Ganapathi Busam --- recipes-ml/qairt/qairt-sdk_2.47.0.260601.bb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recipes-ml/qairt/qairt-sdk_2.47.0.260601.bb b/recipes-ml/qairt/qairt-sdk_2.47.0.260601.bb index e19209ff7..8d8b95b59 100644 --- a/recipes-ml/qairt/qairt-sdk_2.47.0.260601.bb +++ b/recipes-ml/qairt/qairt-sdk_2.47.0.260601.bb @@ -11,6 +11,10 @@ LICENSE = "LicenseRef-qcom-ai-stack" LIC_FILES_CHKSUM = "file://LICENSE.pdf;md5=878b885995f453e328edbcd5a1302306" NO_GENERIC_LICENSE[qcom-ai-stack] = "LICENSE.pdf" +# The zip file is quite large ~2.2 GB +# It's better to increase the default tries from 2 and timeout from 100. +FETCHCMD_wget = "wget --tries=5 --timeout=1000" + SRC_URI = "https://softwarecenter.qualcomm.com/api/download/software/sdks/Qualcomm_AI_Runtime_Community/All/${PV}/v${PV}.zip" SRC_URI[sha256sum] = "d3497e110eae82c35a9152a93c0a18bbede402aaf9faa7a97c8079eb0f522b01" From 5dbd3b12b25b724fa9788fde80f856b9c005fbb5 Mon Sep 17 00:00:00 2001 From: Raja Ganapathi Busam Date: Wed, 16 Sep 2026 18:28:47 +0530 Subject: [PATCH 3/3] qairt-sdk: upgrade 2.47.0 -> 2.50.0 and add Hamoa, Purwa, Shikra support Upgrade version from 2.47.0.260601 to 2.50.0.260828 v2.50.0 introduces libGenieService.so which has a hard DT_NEEDED on libsystemd.so.0. Add DEPENDS on systemd. Add Hexagon DSP library support for three new platforms following the same install path conventions established by qcom-fastcv-binaries. Use symlinks to avoid copies of the libraries. - Hamoa IoT EVK (x1e80100): hexagon-v73 binaries installed to ${datadir}/qcom/x1e80100/Qualcomm/Hamoa-IoT-EVK/dsp/cdsp, folded into the existing ${PN}-hexagon-v73 package. - Purwa IoT EVK (x1p42100): shares Hamoa's v73 DSP firmware at runtime; no files are installed, consistent with the hexagon-dsp-binaries and qcom-fastcv-binaries treatment of Purwa. - Shikra CQS-EVK: hexagon-v66 binaries installed to ${datadir}/qcom/shikra/Qualcomm/Shikra-CQS-EVK/dsp/cdsp, folded into the existing ${PN}-hexagon-v66 package alongside QCS615-RIDE. Signed-off-by: Raja Ganapathi Busam --- ...0.260601.bb => qairt-sdk_2.50.0.260828.bb} | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) rename recipes-ml/qairt/{qairt-sdk_2.47.0.260601.bb => qairt-sdk_2.50.0.260828.bb} (82%) diff --git a/recipes-ml/qairt/qairt-sdk_2.47.0.260601.bb b/recipes-ml/qairt/qairt-sdk_2.50.0.260828.bb similarity index 82% rename from recipes-ml/qairt/qairt-sdk_2.47.0.260601.bb rename to recipes-ml/qairt/qairt-sdk_2.50.0.260828.bb index 8d8b95b59..b1abc782f 100644 --- a/recipes-ml/qairt/qairt-sdk_2.47.0.260601.bb +++ b/recipes-ml/qairt/qairt-sdk_2.50.0.260828.bb @@ -16,14 +16,15 @@ NO_GENERIC_LICENSE[qcom-ai-stack] = "LICENSE.pdf" FETCHCMD_wget = "wget --tries=5 --timeout=1000" SRC_URI = "https://softwarecenter.qualcomm.com/api/download/software/sdks/Qualcomm_AI_Runtime_Community/All/${PV}/v${PV}.zip" -SRC_URI[sha256sum] = "d3497e110eae82c35a9152a93c0a18bbede402aaf9faa7a97c8079eb0f522b01" +SRC_URI[sha256sum] = "a346ea0e2c8631b46d57261a4969994cd9cc34124a8355bbc7b08b2c8bd859a5" S = "${UNPACKDIR}/qairt/${PV}" # We need host tools during the build: # - patchelf-native: to patch DT_NEEDED entries in prebuilt .so files # - binutils-native: for readelf to inspect NEEDED -DEPENDS = "patchelf-native binutils-native" +# - systemd: for libsystemd.so.0 dependency of libGenieService.so +DEPENDS = "patchelf-native binutils-native systemd" # The SDK ships multiple toolchain-specific lib directories with names # like "aarch64-oe-linux-gcc8.2", "aarch64-oe-linux-gcc9.3", etc. @@ -63,6 +64,8 @@ do_install() { install -d ${D}${datadir}/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp install -d ${D}${datadir}/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp1 install -d ${D}${datadir}/qcom/qcs8300/Qualcomm/QCS8300-RIDE/dsp/cdsp + install -d ${D}${datadir}/qcom/x1e80100/Qualcomm/Hamoa-IoT-EVK/dsp/cdsp + install -d ${D}${datadir}/qcom/shikra/Qualcomm/Shikra-CQS-EVK/dsp/cdsp install -d ${D}${bindir} cp -r ${S}/include/* ${D}${includedir} @@ -76,6 +79,19 @@ do_install() { cp -r ${S}/lib/hexagon-v73/unsigned/* ${D}${datadir}/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp cp -r ${S}/lib/hexagon-v75/unsigned/* ${D}${datadir}/qcom/qcs8300/Qualcomm/QCS8300-RIDE/dsp/cdsp + # Shikra CQS-EVK uses the same v66 binaries as QCS615-RIDE. + for lib in ${D}${datadir}/qcom/qcs615/Qualcomm/QCS615-RIDE/dsp/cdsp/*; do \ + ln -s ${datadir}/qcom/qcs615/Qualcomm/QCS615-RIDE/dsp/cdsp/$(basename $lib) \ + ${D}${datadir}/qcom/shikra/Qualcomm/Shikra-CQS-EVK/dsp/cdsp/$(basename $lib); \ + done + + # Hamoa IoT EVK uses the same v73 binaries as SA8775P-RIDE. + for lib in ${D}${datadir}/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp/*; do \ + ln -s ${datadir}/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp/$(basename $lib) \ + ${D}${datadir}/qcom/x1e80100/Qualcomm/Hamoa-IoT-EVK/dsp/cdsp/$(basename $lib); \ + done + + # SA8775P-RIDE cdsp1 is an alias for cdsp used by some FastRPC clients. for lib in ${D}${datadir}/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp/*; do \ ln -s ../cdsp/$(basename $lib) \ ${D}${datadir}/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp1/$(basename $lib); \ @@ -120,9 +136,11 @@ PACKAGES += "\ " FILES:${PN}-hexagon-v66 += "${datadir}/qcom/qcs615/Qualcomm/QCS615-RIDE/dsp/cdsp" +FILES:${PN}-hexagon-v66 += "${datadir}/qcom/shikra/Qualcomm/Shikra-CQS-EVK/dsp/cdsp" FILES:${PN}-hexagon-v68 += "${datadir}/qcom/qcm6490/Thundercomm/RB3gen2/dsp/cdsp" FILES:${PN}-hexagon-v73 += "${datadir}/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp" FILES:${PN}-hexagon-v73 += "${datadir}/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp1" +FILES:${PN}-hexagon-v73 += "${datadir}/qcom/x1e80100/Qualcomm/Hamoa-IoT-EVK/dsp/cdsp" FILES:${PN}-hexagon-v75 += "${datadir}/qcom/qcs8300/Qualcomm/QCS8300-RIDE/dsp/cdsp" RDEPENDS:${PN} += "fastrpc" @@ -141,4 +159,5 @@ INSANE_SKIP:${PN}-hexagon-v73 += "arch libdir ldflags file-rdeps" INSANE_SKIP:${PN}-hexagon-v75 += "arch libdir ldflags file-rdeps" # Hexagon libraries include .so symlinks but are runtime artifacts. +INSANE_SKIP:${PN}-hexagon-v66 += "dev-so" INSANE_SKIP:${PN}-hexagon-v73 += "dev-so"