qairt-sdk: upgrade 2.47.0 -> 2.50.0 and add Hamoa, Purwa, Shikra support - #3128
Conversation
The URL is accessible and we are able to fetch zip successfully. is the failure because of the timeout? |
Dmitry Baryshkov (lumag)
left a comment
There was a problem hiding this comment.
Also, why does that library depend on systemd?
| PLATFORM_DIR = "${@platform_dir(d)}" | ||
|
|
||
| # libGenieService.so has a hard DT_NEEDED on libsystemd.so.0 and cannot | ||
| # function without it. Restrict the recipe to systemd-based distros. |
There was a problem hiding this comment.
Add DEPENDS on systemd too.
| cp -r ${S}/lib/hexagon-v66/unsigned/* ${D}${datadir}/qcom/shikra/Qualcomm/Shikra-CQS-EVK/dsp/cdsp | ||
| cp -r ${S}/lib/hexagon-v68/unsigned/* ${D}${datadir}/qcom/qcm6490/Thundercomm/RB3gen2/dsp/cdsp | ||
| cp -r ${S}/lib/hexagon-v73/unsigned/* ${D}${datadir}/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp | ||
| cp -r ${S}/lib/hexagon-v73/unsigned/* ${D}${datadir}/qcom/x1e80100/Qualcomm/Hamoa-IoT-EVK/dsp/cdsp |
There was a problem hiding this comment.
Why do you force multiple copies of the libraries into the rootfs? Use symlinks between the libs.
There was a problem hiding this comment.
May be hexagon version specific folders would be more meaningful, along with a target to hexagon version map.
Since it involves many changes, for now, added symlinks to avoid copies.
| # file-rdeps resolver may still fail to match the versioned symbol | ||
| # libsystemd.so.0(LIBSYSTEMD_209)(64bit) when systemd is not in the current | ||
| # build's pkgdata. Suppress the check; the RDEPENDS below covers it. | ||
| INSANE_SKIP:${PN} += "file-rdeps" |
There was a problem hiding this comment.
No random check suppressions. For the hexagon binaries it was a correct workaround since it concerned a foreign-arch libs with the actual libraries being provided by the DSP itself. In this case, no. Use DEPENDS to let OE / rpm find correct runtime dependencies.
There was a problem hiding this comment.
Earlier, I thought adding DEPENDS would bring unnecessary build time dependencies. But since it is helping to resolve the runtime dependencies automatically, these skip checks can be avoided. Updated accordingly.
| FILES:${PN}-hexagon-v75 += "${datadir}/qcom/qcs8300/Qualcomm/QCS8300-RIDE/dsp/cdsp" | ||
|
|
||
| RDEPENDS:${PN} += "fastrpc" | ||
| RDEPENDS:${PN} += "fastrpc systemd" |
There was a problem hiding this comment.
Why is it in RDEPENDS?
There was a problem hiding this comment.
I didn't notice there is a separate package for libsystemd. Now, this is automatically handled by OE after DEPENDS on systemd.
It's possible that this could be the problem; could you please test the following? --- a/recipes-ml/qairt/qairt-sdk_2.50.0.260828.bb
+++ b/recipes-ml/qairt/qairt-sdk_2.50.0.260828.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.4 GB
+# Tt'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] = "a346ea0e2c8631b46d57261a4969994cd9cc34124a8355bbc7b08b2c8bd859a5" |
afe3105 to
7f09965
Compare
| # libGenieService.so has a hard DT_NEEDED on libsystemd.so.0 and cannot | ||
| # function without it. Restrict the recipe to systemd-based distros. | ||
| inherit features_check | ||
| REQUIRED_DISTRO_FEATURES = "systemd" |
There was a problem hiding this comment.
With systemd in DEPENDS this snip is no more required.
7f09965 to
6ad9a1f
Compare
|
Larger 2.50 hexagon-v73 payload pushes initramfs-kerneltest-image over INITRAMFS_MAXSIZE on iq-9075-evk and qcs9100-ride-sx, that will need a bump. |
... and it needs to be a part of this PR (just an explanation for Raja Ganapathi Busam (@Raja-Ganapathi-Busam) ). |
Current limit for INITRAMFS_MAXSIZE is When compared "image" folder from recipe workspace between 2.47.0 and 2.50.0, noticed an increase of can we increase it to will it work for 1GB RAM device (db410c)? |
I'd rather question, why do we need QAIRT SDK Hexagon libaries in those initramfs images. |
This I need to understand. How QAIRT SDK is getting packed to initramfs image. How to disable it. |
The qairt-sdk-hexagon-vXX is in MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS of the following machines: Regarding the size occupied, we have: Finally, I just need to understand why qairt-sdk is installed. |
|
This is a lot, we probably don't need / want qairt in the initrds, so we will have to find another way. |
|
Raja Ganapathi Busam (@Raja-Ganapathi-Busam) can you please try this extra snip? |
QAIRT was added to machine recommends to follow similar approach as FastRPC, as part of the first enablement PR. |
Let me try this. |
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.
Exclude qairt-sdk-hexagon-vXX packages from initramfs-kerneltest-image.
Signed-off-by: Raja Ganapathi Busam <rbusam@qti.qualcomm.com>
6ad9a1f to
93de503
Compare
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. Restrict the recipe to systemd-based distros via REQUIRED_DISTRO_FEATURES = "systemd" since the library cannot function without it. Also add INSANE_SKIP:${PN} += "file-rdeps" to suppress the file-based dependency resolver for the libsystemd.so.0 versioned symbol, consistent with how all Hexagon sub-packages are already handled.
Add Hexagon DSP library support for three new platforms following the same install path conventions established by qcom-fastcv-binaries: