If an IPA module is unsigned or the signature is invalid, the IPA is
isolated and runs in a separate process.
These so-called proxy workers must be installed for each activated
pipeline, even if the corresponding IPA module is not selected. Otherwise,
an out-of-tree IPA module (these are unsigned) cannot be used.
Since there is not an IPA module or associated proxy for every pipeline
(e.g. simple, uvcvideo), an additional list is required.

Signed-off-by: Matthias Fend <matthias.f...@emfend.at>
---
 rules/libcamera.make | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/rules/libcamera.make b/rules/libcamera.make
index 24b71ea7d..12969cafa 100644
--- a/rules/libcamera.make
+++ b/rules/libcamera.make
@@ -60,6 +60,12 @@ LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINE_SIMPLE)     
+= simple
 LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINE_UVCVIDEO)     += uvcvideo
 LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINE_VIMC)         += vimc
 
+LIBCAMERA_IPA_PROXIES-y                                                :=
+LIBCAMERA_IPA_PROXIES-$(PTXCONF_LIBCAMERA_PIPELINE_IPU3)       += ipu3
+LIBCAMERA_IPA_PROXIES-$(PTXCONF_LIBCAMERA_PIPELINE_RASPBERRYPI)        += 
raspberrypi
+LIBCAMERA_IPA_PROXIES-$(PTXCONF_LIBCAMERA_PIPELINE_RKISP1)     += rkisp1
+LIBCAMERA_IPA_PROXIES-$(PTXCONF_LIBCAMERA_PIPELINE_VIMC)       += vimc
+
 LIBCAMERA_CONF_TOOL    := meson
 LIBCAMERA_CONF_OPT     := \
        $(CROSS_MESON_USR) \
@@ -80,9 +86,12 @@ LIBCAMERA_CONF_OPT   := \
 # Target-Install
 # ----------------------------------------------------------------------------
 
-define install_ipa
+define install_ipa_proxy
        @$(call install_copy, libcamera, 0, 0, 0755, -, \
                /usr/libexec/libcamera/$(strip $(1))_ipa_proxy)
+endef
+
+define install_ipa
        @$(call install_alternative_tree, libcamera, 0, 0, \
                /usr/share/libcamera/ipa/$(strip $(1)))
 endef
@@ -113,6 +122,9 @@ $(STATEDIR)/libcamera.targetinstall:
        @$(call install_lib, libcamera, 0, 0, 0644, libcamera)
        @$(call install_lib, libcamera, 0, 0, 0644, libcamera-base)
 
+       @$(foreach proxy,$(LIBCAMERA_IPA_PROXIES-y), \
+               $(call install_ipa_proxy, $(proxy))$(ptx/nl))
+
        @$(foreach ipa,$(LIBCAMERA_IPASC-y), \
                $(call install_ipa, $(ipa))$(ptx/nl))
 
-- 
2.25.1


Reply via email to