From 57586dc368d12128fbdac85454cdd282e5baf728 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Mon, 29 Jan 2024 11:33:57 +0100 Subject: [PATCH 1/2] packagegroup-fsl-isp: drop the basler-camera-dev package This pulls in all other dev packages. It looks like the unversioned shared object is not (no longer?) needed, i.e. the driver points to the versioned object. | readelf --dynamic opt/imx8-isp/bin/daA3840_30mc.drv | ... | 0x000000000000000e (SONAME) Library soname: [libdaA3840_30mc.so.1] (/usr/lib/libdaA3840_30mc.so is the only file in the -dev package.) Signed-off-by: Max Krummenacher (cherry picked from commit e654f812e6509680a026e473c7f4c71527b64346) --- recipes-fsl/packagegroups/packagegroup-fsl-isp.bb | 1 - 1 file changed, 1 deletion(-) diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb b/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb index 415587a82..09eac053b 100644 --- a/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb +++ b/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb @@ -8,7 +8,6 @@ ISP_PKGS ?= "" ISP_PKGS:mx8mp-nxp-bsp = " \ isp-imx \ basler-camera \ - basler-camera-dev \ kernel-module-isp-vvcam \ " RDEPENDS:${PN} = " \ From 0f51e578bd3b8747d4fa93e5a4c5d90845b02819 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Sun, 19 Jan 2025 16:21:49 +0100 Subject: [PATCH 2/2] ixp-imx: update to 4.2.2.24.4 Make tuningext a packageconfig as it no longer builds with latest master (walnascar): isp-imx contains the 3rd party cpp-netlib package. Compiling that package against boost 1.87 results in build errors. boost 1.87 is provided with latest master (walnascar). Compare also with meta-oe commit a46de2745b30 ("cpp-netlib: Skip recipe, not buildable with boost >= 1.87") Drop patch. Fix now present in package sources. Add jsoncpp to DEPENDS as the package no longer compiles its own version thereoff and dynamically links against the OE provided one. Sync CMake options with upstream recipe. The binary blobs provided now link against libtinyxml2.so.10. Drop the fix. The binary blobs provided still link against libjsoncpp.so.25, but OE provides libjsoncpp.so.26. Fixup the binaries. The package now provides a Makefile with a install task. Use that. Signed-off-by: Max Krummenacher (cherry picked from commit 37959b89dce54596bc515dda39c6ca1a8bf5df47) Enabled package config tuningext which compiles in scarthgap. Drop binary blob fixup as they link correctly against the provided libjsoncpp.so.25 in scarthgap. Signed-off-by: Max Krummenacher --- ...tlib-parsers.ipp-add-missing-include.patch | 44 -------- recipes-bsp/isp-imx/isp-imx_4.2.2.24.0.bb | 105 ------------------ recipes-bsp/isp-imx/isp-imx_4.2.2.24.4.bb | 88 +++++++++++++++ 3 files changed, 88 insertions(+), 149 deletions(-) delete mode 100644 recipes-bsp/isp-imx/isp-imx/0001-cpp-netlib-parsers.ipp-add-missing-include.patch delete mode 100644 recipes-bsp/isp-imx/isp-imx_4.2.2.24.0.bb create mode 100644 recipes-bsp/isp-imx/isp-imx_4.2.2.24.4.bb diff --git a/recipes-bsp/isp-imx/isp-imx/0001-cpp-netlib-parsers.ipp-add-missing-include.patch b/recipes-bsp/isp-imx/isp-imx/0001-cpp-netlib-parsers.ipp-add-missing-include.patch deleted file mode 100644 index 3f04000cf..000000000 --- a/recipes-bsp/isp-imx/isp-imx/0001-cpp-netlib-parsers.ipp-add-missing-include.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 15aae364fb52df30e4a49e73e2048fdc633e6868 Mon Sep 17 00:00:00 2001 -From: Max Krummenacher -Date: Sun, 8 Oct 2023 09:15:54 -0300 -Subject: [PATCH] cpp-netlib: parsers.ipp: add missing include - -With the update to boost from 1.82.0 -> 1.83.0 we now get compiler errors: - -| .../isp-imx/4.2.2.22.0/isp-imx-4.2.2.22.0/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp:58:3: error: 'u8_to_u32_iterator' was not declared in this scope - -Add the missing explicit include. Before the file was indirectly included from qi.hpp: - -| In file included from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/regex/pending/unicode_iterator.hpp:27, -| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/support/utf8.hpp:15, -| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/support/info.hpp:17, -| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/domain.hpp:16, -| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/meta_compiler.hpp:15, -| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/action/action.hpp:14, -| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi/action.hpp:14, -| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/home/qi.hpp:14, -| from .../isp-imx/4.2.2.22.0/recipe-sysroot/usr/include/boost/spirit/include/qi.hpp:16, -| from .../isp-imx/4.2.2.22.0/isp-imx-4.2.2.22.0/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp:5, - -Upstream-Status: Pending - -Signed-off-by: Max Krummenacher ---- - .../boost/network/protocol/http/server/impl/parsers.ipp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp b/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp -index c31e60e..2b83fbe 100755 ---- a/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp -+++ b/utils3rd/3rd/cpp-netlib/boost/network/protocol/http/server/impl/parsers.ipp -@@ -13,6 +13,7 @@ - #include - #include - #include -+#include - - #ifdef BOOST_NETWORK_NO_LIB - #ifndef BOOST_NETWORK_INLINE --- -2.35.3 - diff --git a/recipes-bsp/isp-imx/isp-imx_4.2.2.24.0.bb b/recipes-bsp/isp-imx/isp-imx_4.2.2.24.0.bb deleted file mode 100644 index 9e0f02656..000000000 --- a/recipes-bsp/isp-imx/isp-imx_4.2.2.24.0.bb +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 2020-2023 NXP - -DESCRIPTION = "i.MX Verisilicon Software ISP" -LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://COPYING;md5=2827219e81f28aba7c6a569f7c437fa7" -DEPENDS = "boost libdrm virtual/libg2d libtinyxml2 patchelf-native" - -SRC_URI = " \ - ${FSL_MIRROR}/${BP}.bin;fsl-eula=true \ - file://0001-cpp-netlib-parsers.ipp-add-missing-include.patch \ -" - -SRC_URI[sha256sum] = "34b23f5b9f0856a8f5722e339a7ad4ccf4d99614788598306ff8b20093c1e846" - -inherit fsl-eula-unpack cmake systemd use-imx-headers - -# Build the sub-folder appshell -OECMAKE_SOURCEPATH = "${S}/appshell" - -# Use make instead of ninja -OECMAKE_GENERATOR = "Unix Makefiles" - -# Workaround for linking issues seen with gold linker -LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" - -SYSTEMD_SERVICE:${PN} = "imx8-isp.service" - -EXTRA_OECMAKE += " \ - -DSDKTARGETSYSROOT=${STAGING_DIR_HOST} \ - -DCMAKE_BUILD_TYPE=release \ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ - -DCMAKE_INSTALL_LIBDIR=${libdir} \ - -DISP_VERSION=ISP8000NANO_V1802 \ - -DPLATFORM=ARM64 \ - -DAPPMODE=V4L2 \ - -DTUNINGEXT=1 \ - -DQTLESS=1 \ - -DFULL_SRC_COMPILE=1 \ - -DWITH_DRM=1 \ - -DWITH_DWE=1 \ - -DSERVER_LESS=1 \ - -DSUBDEV_V4L2=1 \ - -DENABLE_IRQ=1 \ - -DPARTITION_BUILD=0 \ - -D3A_SRC_BUILD=0 \ - -DIMX_G2D=ON \ - -Wno-dev \ -" - -do_configure:prepend () { - # FIXME: Should be rebuild. - patchelf --replace-needed libtinyxml2.so.9 libtinyxml2.so.10 ${S}/units/cam_device/proprietories/lib/libcam_device.so - patchelf --replace-needed libtinyxml2.so.9 libtinyxml2.so.10 ${S}/mediacontrol/lib/arm-64/fpga/libcam_device.so -} - -do_install() { - # FIXME: provided by the basler-camera package, do not install them here additionally - rm -f ${S}/dewarp/dewarp_config//daA3840_30mc*.json - - install -d ${D}/${libdir} - install -d ${D}/${includedir} - install -d ${D}/opt/imx8-isp/bin - install -d ${D}/opt/imx8-isp/bin/dewarp_config - - cp -r ${B}/generated/release/bin/*_test ${D}/opt/imx8-isp/bin - cp -r ${B}/generated/release/bin/*.xml ${D}/opt/imx8-isp/bin - cp -r ${B}/generated/release/bin/*.drv ${D}/opt/imx8-isp/bin - cp -r ${B}/generated/release/bin/tuningext ${D}/opt/imx8-isp/bin - cp -r ${B}/generated/release/bin/isp_media_server ${D}/opt/imx8-isp/bin - cp -r ${B}/generated/release/bin/vvext ${D}/opt/imx8-isp/bin - - cp -r ${B}/generated/release/lib/*.so* ${D}/${libdir} - cp -r ${B}/generated/release/include/* ${D}/${includedir} - - cp -r ${S}/dewarp/dewarp_config/ ${D}/opt/imx8-isp/bin - cp ${S}/imx/run.sh ${D}/opt/imx8-isp/bin - cp ${S}/imx/start_isp.sh ${D}/opt/imx8-isp/bin - - chmod +x ${D}/opt/imx8-isp/bin/run.sh - chmod +x ${D}/opt/imx8-isp/bin/start_isp.sh - - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${S}/imx/imx8-isp.service ${D}${systemd_system_unitdir} - fi -} - -# The build contains a mix of versioned and unversioned libraries, so -# the default packaging configuration needs some modification so that -# unversioned .so libraries go to the main package and versioned .so -# symlinks go to -dev. -FILES_SOLIBSDEV = "" -FILES:${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}" -FILES:${PN}-dev += "${FILES_SOLIBS_VERSIONED}" -FILES_SOLIBS_VERSIONED = " \ - ${libdir}/libcppnetlib-client-connections.so \ - ${libdir}/libcppnetlib-server-parsers.so \ - ${libdir}/libcppnetlib-uri.so \ - ${libdir}/libjsoncpp.so \ - ${libdir}/libos08a20.so \ -" - -RDEPENDS:${PN} = "libdrm" - -COMPATIBLE_MACHINE = "(mx8mp-nxp-bsp)" diff --git a/recipes-bsp/isp-imx/isp-imx_4.2.2.24.4.bb b/recipes-bsp/isp-imx/isp-imx_4.2.2.24.4.bb new file mode 100644 index 000000000..c8dc1402f --- /dev/null +++ b/recipes-bsp/isp-imx/isp-imx_4.2.2.24.4.bb @@ -0,0 +1,88 @@ +# Copyright 2020-2023 NXP + +DESCRIPTION = "i.MX Verisilicon Software ISP" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837" +DEPENDS = "boost libdrm virtual/libg2d libtinyxml2 jsoncpp patchelf-native" + +SRC_URI = " \ + ${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true \ +" +IMX_SRCREV_ABBREV = "8527c7b" +S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}" + +SRC_URI[sha256sum] = "481e49e9da6d7783d6c28385bb68463eac7b9e9fef6ea958950260a8ad6b1e4c" + +inherit fsl-eula-unpack cmake systemd use-imx-headers + +PACKAGECONFIG = "tuningext" +# Note: building with tuningext fails with boost 1.87. +# (update to 1.87 with walnascar) +PACKAGECONFIG[tuningext] = "-DTUNINGEXT=1,-DTUNINGEXT=0" + +# Build the sub-folder appshell +OECMAKE_SOURCEPATH = "${S}/appshell" + +# Use make instead of ninja +OECMAKE_GENERATOR = "Unix Makefiles" + +# Workaround for linking issues seen with gold linker +LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" + +SYSTEMD_SERVICE:${PN} = "imx8-isp.service" + +EXTRA_OECMAKE += " \ + -DSDKTARGETSYSROOT=${STAGING_DIR_HOST} \ + -DCMAKE_BUILD_TYPE=release \ + -DISP_VERSION=ISP8000NANO_V1802 \ + -DPLATFORM=ARM64 \ + -DQTLESS=1 \ + -DFULL_SRC_COMPILE=1 \ + -DWITH_DRM=1 \ + -DWITH_DWE=1 \ + -DSUBDEV_V4L2=1 \ + -DPARTITION_BUILD=0 \ + -D3A_SRC_BUILD=0 \ + -DIMX_G2D=ON \ + -Wno-dev \ +" + +do_install() { + # FIXME: provided by the basler-camera package, do not install them here additionally + rm -f ${S}/dewarp/dewarp_config//daA3840_30mc*.json + + # The Makefile unconditionally installs tuningext even if it is not built + if ${@bb.utils.contains('PACKAGECONFIG','tuningext','false','true',d)}; then + touch ${B}/generated/release/bin/tuningext + fi + + oe_runmake -f ${S}/Makefile install INSTALL_DIR=${D} SOURCE_DIR=${S} + + if ${@bb.utils.contains('PACKAGECONFIG','tuningext','false','true',d)}; then + rm ${D}/opt/imx8-isp/bin/tuningext + fi + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${S}/imx/imx8-isp.service ${D}${systemd_system_unitdir} + fi + +} + +# The build contains a mix of versioned and unversioned libraries, so +# the default packaging configuration needs some modification so that +# unversioned .so libraries go to the main package and versioned .so +# symlinks go to -dev. +FILES_SOLIBSDEV = "" +FILES:${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}" +FILES:${PN}-dev += "${FILES_SOLIBS_VERSIONED}" +FILES_SOLIBS_VERSIONED = " \ + ${libdir}/libcppnetlib-client-connections.so \ + ${libdir}/libcppnetlib-server-parsers.so \ + ${libdir}/libcppnetlib-uri.so \ + ${libdir}/libos08a20.so \ +" + +RDEPENDS:${PN} = "libdrm" + +COMPATIBLE_MACHINE = "(mx8mp-nxp-bsp)"