* [Buildroot] [PATCH v4 0/2] package/libcamera: bump version to 96fab38
@ 2020-06-16 18:59 Peter Seiderer
2020-06-16 18:59 ` [Buildroot] [PATCH v4 1/2] " Peter Seiderer
2020-06-16 18:59 ` [Buildroot] [PATCH v4 2/2] package/libcamera: add v4l2 compatibility layer option Peter Seiderer
0 siblings, 2 replies; 5+ messages in thread
From: Peter Seiderer @ 2020-06-16 18:59 UTC (permalink / raw)
To: buildroot
Tested on RPi3/RPi4 with linux-5.4.45-v7l kernel and updated
rpi-firmware package, Qt-5.14.2:
First try:
$ qcam -platform linuxfb -c ov5647
0:00:25.696380706] [241] INFO IPAManager ipa_manager.cpp:136 libcamera is not installed. Adding '//src/ipa' to the IPA search path
[0:00:25.712675651] [241] INFO Camera camera_manager.cpp:280 libcamera v0.0.0
[0:00:25.785788355] [243] INFO IPAProxy ipa_proxy.cpp:190 libcamera is not installed. Loading proxy workers from '//src/libcamera/proxy/worker'
[0:00:25.785931355] [243] ERROR IPAProxy ipa_proxy_linux.cpp:59 Failed to get proxy worker path
[0:00:25.786016077] [243] ERROR IPAManager ipa_manager.cpp:296 Failed to load proxy
[0:00:25.786108077] [243] ERROR RPI raspberrypi.cpp:925 Failed to load a suitable IPA library
Camera ov5647 not found
With the following patch libcamera is forced to believe it is running
in a installed environment:
diff --git a/src/libcamera/utils.cpp b/src/libcamera/utils.cpp
index d55338f..4ff9dac 100644
--- a/src/libcamera/utils.cpp
+++ b/src/libcamera/utils.cpp
@@ -346,15 +346,18 @@ details::StringSplitter split(const std::string &str, const std::string &delim)
*/
bool isLibcameraInstalled()
{
+#if 0
/*
* DT_RUNPATH (DT_RPATH when the linker uses old dtags) is removed on
* install.
*/
for (const ElfW(Dyn) *dyn = _DYNAMIC; dyn->d_tag != DT_NULL; ++dyn) {
- if (dyn->d_tag == DT_RUNPATH || dyn->d_tag == DT_RPATH)
+ if (dyn->d_tag == DT_RUNPATH || dyn->d_tag == DT_RPATH) {
+ printf("XXXXX - dyn->d_un.d_ptr: %s\n", (char*)dyn->d_un.d_ptr);
return false;
+ }
}
-
+#endif
return true;
}
Maybe this is because of the buildroot local meson patch ([1]), leading
to an empty (but not absent) RPATH?
With this patch applied, next try:
$ qcam -platform linuxfb -c ov5647
[ 60.656531] random: crng init done
[0:01:00.797904315] [248] INFO Camera camera_manager.cpp:280 libcamera v0.0.0
[0:01:01.248904870] [248] INFO Camera camera.cpp:770 configuring streams: (0) 800x600-0x34325241
[0:01:01.249270722] [249] INFO RPI raspberrypi.cpp:115 Mode: 2592x1944 fmt BG10 Score: 2284 (best 2284)
[0:01:01.249425945] [249] INFO RPI raspberrypi.cpp:115 Mode: 1920x1080 fmt BG10 Score: 2066.67 (best 2066.67)
[0:01:01.249534278] [249] INFO RPI raspberrypi.cpp:115 Mode: 1296x972 fmt BG10 Score: 1717 (best 1717)
[0:01:01.249633315] [249] INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt BG10 Score: 2060 (best 1717)
[0:01:01.249731593] [249] INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt BA81 Score: 3060 (best 1717)
[0:01:01.249828611] [249] INFO RPI raspberrypi.cpp:115 Mode: 2592x1944 fmt pBAA Score: 1784 (best 1717)
[0:01:01.249922500] [249] INFO RPI raspberrypi.cpp:115 Mode: 1920x1080 fmt pBAA Score: 1566.67 (best 1566.67)
[0:01:01.250069815] [249] INFO RPI raspberrypi.cpp:115 Mode: 1296x972 fmt pBAA Score: 1217 (best 1217)
[0:01:01.250169482] [249] INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt pBAA Score: 1560 (best 1217)
[0:01:01.250298593] [249] INFO RPI raspberrypi.cpp:619 Sensor: ov5647 - Selected mode: 1296x972-pBAA
Zero-copy enabled
[0:01:01.319715019] [249] FATAL default raspberrypi.cpp:791 assertion "data->staggeredCtrl_" failed
Backtrace:
/usr/lib/libcamera.so(_ZN9libcamera18PipelineHandlerRPi5startEPNS_6CameraE+0x164) [0xb6eb432c]
/usr/lib/libcamera.so(_ZN9libcamera15BoundMethodArgsIiJPNS_6CameraEEE10invokePackEPNS_19BoundMethodPackBaseE+0x18) [0xb6e7f670]
/usr/lib/libcamera.so(_ZN9libcamera6Object7messageEPNS_7MessageE+0x1c) [0xb6e9eafc]
/usr/lib/libcamera.so(_ZN9libcamera6Thread16dispatchMessagesEv+0xfc) [0xb6ea3f44]
/usr/lib/libcamera.so(_ZN9libcamera19EventDispatcherPoll13processEventsEv+0x14) [0xb6e92d08]
/usr/lib/libcamera.so(_ZN9libcamera6Thread4execEv+0x54) [0xb6ea3e0c]
/usr/lib/libcamera.so(_ZN9libcamera13CameraManager7Private3runEv+0xa8) [0xb6e80f44]
/usr/lib/libstdc++.so.6(+0x9bddc) [0xb6104ddc]
Aborted
Running with LIBCAMERA_LOG_LEVELS=DEBUG gives:
[...]
[0:02:18.061949510] [251] DEBUG IPAModule ipa_module.cpp:330 ipa_rpi.so: IPA module /usr/lib/libcamera/ipa_rpi.so is signed
[...]
[0:02:18.125804232] [252] DEBUG IPAManager ipa_manager.cpp:316 IPA module /usr/lib/libcamera/ipa_rpi.so signature is not valid
[0:02:18.126069417] [252] DEBUG IPAProxy ipa_proxy_linux.cpp:50 initializing dummy proxy: loading IPA from /usr/lib/libcamera/ipa_rpi.so
[...]
This can be avoided with the following patch/hack (disable signature check):
diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp
index 505cf61..3d64898 100644
--- a/src/libcamera/ipa_manager.cpp
+++ b/src/libcamera/ipa_manager.cpp
@@ -301,6 +301,9 @@ std::unique_ptr<IPAProxy> IPAManager::createIPA(PipelineHandler *pipe,
bool IPAManager::isSignatureValid(IPAModule *ipa) const
{
+#if 1
+ return true;
+#else
#if HAVE_IPA_PUBKEY
File file{ ipa->path() };
if (!file.open(File::ReadOnly))
@@ -320,6 +323,7 @@ bool IPAManager::isSignatureValid(IPAModule *ipa) const
#else
return false;
#endif
+#endif
}
} /* namespace libcamera */
Maybe related to the buildroot finalize and/or sanitizing RPATH in target tree
step (and/or strip after install with BR2_ENABLE_DEBUG=y/BR2_STRIP_strip=y
enabled)?
Final run (success):
$ qcam -platform linuxfb -c ov5647
[0:06:20.379361328] [265] INFO Camera camera_manager.cpp:280 libcamera v0.0.0
[0:06:20.490928995] [265] INFO Camera camera.cpp:770 configuring streams: (0) 800x600-0x34325241
[0:06:20.491250069] [266] INFO RPI raspberrypi.cpp:115 Mode: 2592x1944 fmt BG10 Score: 2284 (best 2284)
[0:06:20.491406162] [266] INFO RPI raspberrypi.cpp:115 Mode: 1920x1080 fmt BG10 Score: 2066.67 (best 2066.67)
[0:06:20.491511180] [266] INFO RPI raspberrypi.cpp:115 Mode: 1296x972 fmt BG10 Score: 1717 (best 1717)
[0:06:20.491607439] [266] INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt BG10 Score: 2060 (best 1717)
[0:06:20.491704680] [266] INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt BA81 Score: 3060 (best 1717)
[0:06:20.491800495] [266] INFO RPI raspberrypi.cpp:115 Mode: 2592x1944 fmt pBAA Score: 1784 (best 1717)
[0:06:20.491893162] [266] INFO RPI raspberrypi.cpp:115 Mode: 1920x1080 fmt pBAA Score: 1566.67 (best 1566.67)
[0:06:20.491988439] [266] INFO RPI raspberrypi.cpp:115 Mode: 1296x972 fmt pBAA Score: 1217 (best 1217)
[0:06:20.492080773] [266] INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt pBAA Score: 1560 (best 1217)
[0:06:20.492207291] [266] INFO RPI raspberrypi.cpp:619 Sensor: ov5647 - Selected mode: 1296x972-pBAA
[0:06:20.494765217] [266] INFO RPI_S_W staggered_ctrl.cpp:36 Init ctrl 0x00980911 with delay 2
[0:06:20.494887717] [266] INFO RPI_S_W staggered_ctrl.cpp:36 Init ctrl 0x009e0903 with delay 2
[0:06:20.494973365] [266] ERROR V4L2 v4l2_device.cpp:287 /dev/video0[cap]: Control 0x00980915 not found
Zero-copy enabled
[ 380.670935] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020700000
[ 380.680776] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020800000
[ 380.690605] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020900000
[ 380.700408] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020a00000
[ 380.712664] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001ed50000
[ 380.722464] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001ed54000
[ 380.732327] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001ed58000
[ 380.742145] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001ed5c000
[ 380.754943] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001f700000
[ 380.767326] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001ff00000
[0:06:20.782425402] [266] INFO RPI raspb[ 380.790404] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020100000
errypi.cpp:1461 Dropping frame at the request of the IPA
[0:06:20.807450587] [266] INFO R[ 380.815266] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020300000
PI raspberrypi.cpp:1461 Dropping frame at the request of the IPA
[0:06:20.833070754] [266] INFO RPI raspb[ 380.841383] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020500000
errypi.cpp:1461 Dropping frame at the request of the IPA
[0:06:20.858214865] [266] INFO RPI raspberrypi.cpp:1461 Dropping frame at the request of the IPA
[0:06:20.871768532] [266] INFO RPI raspberrypi.cpp:1461 Dropping frame at the request of the IPA
[0:06:20.884721476] [266] INFO RPI raspberrypi.cpp:1461 Dropping frame at the request of the IPA
seq: 000006 bytesused: 1920000 timestamp: 380874300000 fps: 0.00
[ 380.939540] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001f900000
[ 380.974173] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001fb00000
[ 381.008864] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001fd00000
seq: 000007 bytesused: 1920000 timestamp: 380908989000 fps: 28.83
seq: 000008 bytesused: 1920000 timestamp: 380943681000 fps: 28.83
seq: 000009 bytesused: 1920000 timestamp: 380978370000 fps: 28.83
seq: 000010 bytesused: 1920000 timestamp: 381013062000 fps: 28.83
seq: 000011 bytesused: 1920000 timestamp: 381047752000 fps: 28.83
seq: 000012 bytesused: 1920000 timestamp: 381082441000 fps: 28.83
seq: 000013 bytesused: 1920000 timestamp: 381117130000 fps: 28.83
seq: 000014 bytesused: 1920000 timestamp: 381151822000 fps: 28.83
seq: 000015 bytesused: 1920000 timestamp: 381186512000 fps: 28.83
seq: 000016 bytesused: 1920000 timestamp: 381221200000 fps: 28.83
seq: 000017 bytesused: 1920000 timestamp: 381255891000 fps: 28.83
Regards,
Peter
[1] https://git.buildroot.net/buildroot/tree/package/meson/0001-Only-fix-RPATH-if-install_rpath-is-not-empty.patch
Notes:
- customized config.txt (RPi4):
gpu_mem=128
dtoverlay=miniuart-bt
dtoverlay=ov5647
core_freq_min=250
dtoverlay=vc4-fkms-v3d
Peter Seiderer (2):
package/libcamera: bump version to 96fab38
package/libcamera: add v4l2 compatibility layer option
package/libcamera/Config.in | 63 +++++++++++++++++++++++++---
package/libcamera/libcamera.hash | 15 +++++--
package/libcamera/libcamera.mk | 72 +++++++++++++++++++++++++++++---
3 files changed, 135 insertions(+), 15 deletions(-)
--
2.27.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v4 1/2] package/libcamera: bump version to 96fab38
2020-06-16 18:59 [Buildroot] [PATCH v4 0/2] package/libcamera: bump version to 96fab38 Peter Seiderer
@ 2020-06-16 18:59 ` Peter Seiderer
2020-06-18 20:11 ` Yann E. MORIN
2020-06-16 18:59 ` [Buildroot] [PATCH v4 2/2] package/libcamera: add v4l2 compatibility layer option Peter Seiderer
1 sibling, 1 reply; 5+ messages in thread
From: Peter Seiderer @ 2020-06-16 18:59 UTC (permalink / raw)
To: buildroot
- add host dependencies: openssl, pkgconf, python3-pyyaml
- add dependencies: gnutls
- changed from mandatory to optional dependency: udev
- add dedicated pipeline configure options
- add optional dependencies: boost, gstreamer1/gst1-plugins-base,
qt5base, tiff
- update license info (Apache-2.0 omitted - applies only for android code)
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
Changes v1 -> v2:
- re-add LIBCAMERA_LICENSE_FILES list (Kieran Bingham)
- fix typo in commit message (Kieran Bingham)
- add Reviewed-by from Kieran Bingham
Changes v2 -> v3:
- add dedicated pipeline configure options to reduce default
dependencies (boost)
- fix another typo in commit message (Kieran Bingham)
- bump version to 96fab38
Changes v3 -> v4:
- use menuconfig
- force at least one default pipeline (uvcvideo)
- remove repetitive libcamera from options/help text
- remove spurios empty line
- add reviewd-by from Kieran
---
package/libcamera/Config.in | 58 ++++++++++++++++++++++++---
package/libcamera/libcamera.hash | 15 +++++--
package/libcamera/libcamera.mk | 67 +++++++++++++++++++++++++++++---
3 files changed, 125 insertions(+), 15 deletions(-)
diff --git a/package/libcamera/Config.in b/package/libcamera/Config.in
index 0b3540a657..56ca5aaf18 100644
--- a/package/libcamera/Config.in
+++ b/package/libcamera/Config.in
@@ -1,10 +1,12 @@
-config BR2_PACKAGE_LIBCAMERA
+menuconfig BR2_PACKAGE_LIBCAMERA
bool "libcamera"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
- # C++11 + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316
- depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
- depends on BR2_PACKAGE_HAS_UDEV
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14
+ depends on !BR2_STATIC_LIBS # gnutls
+ depends on BR2_USE_WCHAR # gnutls
+ select BR2_PACKAGE_GNUTLS
+ select BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO if !BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
help
libcamera provides a software stack to support
complex devices that need heavy hardware image
@@ -12,6 +14,50 @@ config BR2_PACKAGE_LIBCAMERA
http://www.libcamera.org/
-comment "libcamera needs udev and a toolchain w/ C++, threads, gcc >= 5"
+if BR2_PACKAGE_LIBCAMERA
+
+config BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ bool
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3
+ bool "ipu3 pipeline"
+ select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ help
+ Pipeline for Intel IPU3.
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI
+ bool "raspberrypi pipeline"
+ depends on BR2_USE_WCHAR # boost (already enforced for gnutls)
+ select BR2_PACKAGE_BOOST
+ select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ help
+ Pipeline for Raspberry Pi devices.
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1
+ bool "rkisp1 pipeline"
+ select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ help
+ Pipeline for Rockchip ISP1.
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE
+ bool "simple pipeline"
+ select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ help
+ Pipeline for simple pipelines.
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO
+ bool "uvcvideo pipeline"
+ help
+ Pipeline for uvcvideo devices.
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC
+ bool "vimc pipeline"
+ select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ help
+ Pipeline for the vimc device.
+
+endif # BR2_PACKAGE_LIBCAMERA
+
+comment "libcamera needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 5"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
- !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_PACKAGE_HAS_UDEV
+ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || BR2_STATIC_LIBS || !BR2_USE_WCHAR
diff --git a/package/libcamera/libcamera.hash b/package/libcamera/libcamera.hash
index 6f721d87ee..907764de63 100644
--- a/package/libcamera/libcamera.hash
+++ b/package/libcamera/libcamera.hash
@@ -1,3 +1,12 @@
-sha256 cbaa7e06059717f71b57f9c20135c86d5f121d9aab10bfc20513ba5d04478756 libcamera-448393f77ec9e37cb807e8e8d35c1a4877d253d4.tar.gz
-sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 licenses/gnu-gpl-2.0.txt
-sha256 592987e8510228d546540b84a22444bde98e48d03078d3b2eefcd889bec5ce8c licenses/gnu-lgpl-2.1.txt
+sha256 6995be9d707ba3bcbe7a79bad894484561ee686f68b6523943ada7c0f6607e86 libcamera-96fab38e02792a109c0d35ca2154e95a7b4c8fcb.tar.gz
+
+# license files
+sha256 fd38b2c053c0cce46d9c5ef3545a6e34d157a240ba99c9b8dca5d37a8147da6c LICENSES/BSD-2-Clause.txt
+sha256 e11af671c491efac2f94c1d752bea92f4308ca2450c7d11e582e4b48c40e4de1 LICENSES/BSD-3-Clause.txt
+sha256 6a573fb2f9082662978cf21fb153096df0a1981deaea7dbc10a11046fe005d9f LICENSES/CC0-1.0.txt
+sha256 ec3732087acf8c52429a020d6bba362ff578705bdb53365a21744485ec15b0e6 LICENSES/CC-BY-SA-4.0.txt
+sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSES/GPL-2.0-only.txt
+sha256 606aa26338f69ce178f1cbc648b7574aec4b5bbaeb20f4df36ff49010cb8fbbd LICENSES/GPL-2.0-or-later.txt
+sha256 1ccf09bf2f598308df4bed9cd8e9657dc5cd0973d2800318f2e241486e2edf3f LICENSES/LGPL-2.1-or-later.txt
+sha256 3f9e477523febab58de8b716ccfbcf02e6ef1c8e7728953905e8558637abe2a9 LICENSES/Linux-syscall-note.txt
+sha256 8f25018489d6fe0dec34a352314c38dc146247b7de65735790f4398a92afa84b LICENSES/MIT.txt
diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
index d209a38df3..c7513d2e68 100644
--- a/package/libcamera/libcamera.mk
+++ b/package/libcamera/libcamera.mk
@@ -5,14 +5,69 @@
################################################################################
LIBCAMERA_SITE = https://git.linuxtv.org/libcamera.git
-LIBCAMERA_VERSION = 448393f77ec9e37cb807e8e8d35c1a4877d253d4
+LIBCAMERA_VERSION = 96fab38e02792a109c0d35ca2154e95a7b4c8fcb
LIBCAMERA_SITE_METHOD = git
-LIBCAMERA_DEPENDENCIES = udev
-LIBCAMERA_CONF_OPTS = -Dtest=false -Ddocumentation=false
+LIBCAMERA_DEPENDENCIES = \
+ host-openssl \
+ host-pkgconf \
+ host-python3-pyyaml \
+ gnutls
+LIBCAMERA_CONF_OPTS = \
+ -Dandroid=false \
+ -Ddocumentation=false \
+ -Dtest=false \
+ -Dv4l2=false
LIBCAMERA_INSTALL_STAGING = yes
-LIBCAMERA_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (utils)
+LIBCAMERA_LICENSE = \
+ LGPL-2.1+ (library), \
+ GPL-2.0+ (utils), \
+ MIT (qcam/assets/feathericons), \
+ BSD-2-Clause (raspberrypi), \
+ GPL-2.0 with Linux-syscall-note or BSD-3-Clause (linux kernel headers), \
+ CC0-1.0 (meson build system), \
+ CC-BY-SA-4.0 (doc)
LIBCAMERA_LICENSE_FILES = \
- licenses/gnu-gpl-2.0.txt \
- licenses/gnu-lgpl-2.1.txt
+ LICENSES/LGPL-2.1-or-later.txt \
+ LICENSES/GPL-2.0-or-later.txt \
+ LICENSES/MIT.txt \
+ LICENSES/BSD-2-Clause.txt \
+ LICENSES/GPL-2.0-only.txt \
+ LICENSES/Linux-syscall-note.txt \
+ LICENSES/BSD-3-Clause.txt \
+ LICENSES/CC0-1.0.txt \
+ LICENSES/CC-BY-SA-4.0.txt
+
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3) += ipu3
+ifeq ($(BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI),y)
+LIBCAMERA_PIPELINES-y += raspberrypi
+LIBCAMERA_DEPENDENCIES += boost
+endif
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1) += rkisp1
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE) += simple
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO) += uvcvideo
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC) += vimc
+
+LIBCAMERA_CONF_OPTS += -Dpipelines=$(subst $(space),$(comma),$(LIBCAMERA_PIPELINES-y))
+
+# gstreamer-video-1.0, gstreamer-allocators-1.0
+ifeq ($(BR2_PACKAGE_GSTREAMER1)$(BR2_PACKAGE_GST1_PLUGINS_BASE),yy)
+LIBCAMERA_CONF_OPTS += -Dgstreamer=enabled
+LIBCAMERA_DEPENDENCIES += gstreamer1 gst1-plugins-base
+endif
+
+ifeq ($(BR2_PACKAGE_QT5BASE)$(BR2_PACKAGE_QT5BASE_GUI)$(BR2_PACKAGE_QT5BASE_WIDGETS),yyy)
+LIBCAMERA_DEPENDENCIES += qt5base
+ifeq ($(BR2_PACKAGE_QT5TOOLS)$(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS),yy)
+LIBCAMERA_DEPENDENCIES += qt5tools
+endif
+endif
+
+ifeq ($(BR2_PACKAGE_TIFF),y)
+LIBCAMERA_DEPENDENCIES += tiff
+endif
+
+ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
+LIBCAMERA_DEPENDENCIES += udev
+endif
$(eval $(meson-package))
--
2.27.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v4 2/2] package/libcamera: add v4l2 compatibility layer option
2020-06-16 18:59 [Buildroot] [PATCH v4 0/2] package/libcamera: bump version to 96fab38 Peter Seiderer
2020-06-16 18:59 ` [Buildroot] [PATCH v4 1/2] " Peter Seiderer
@ 2020-06-16 18:59 ` Peter Seiderer
2020-06-18 20:21 ` Yann E. MORIN
1 sibling, 1 reply; 5+ messages in thread
From: Peter Seiderer @ 2020-06-16 18:59 UTC (permalink / raw)
To: buildroot
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v3 -> v4:
- new patch
---
package/libcamera/Config.in | 5 +++++
package/libcamera/libcamera.mk | 9 +++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/package/libcamera/Config.in b/package/libcamera/Config.in
index 56ca5aaf18..960d78b82e 100644
--- a/package/libcamera/Config.in
+++ b/package/libcamera/Config.in
@@ -16,6 +16,11 @@ menuconfig BR2_PACKAGE_LIBCAMERA
if BR2_PACKAGE_LIBCAMERA
+config BR2_PACKAGE_LIBCAMERA_V4L2
+ bool "libcamera v4l2 compatibility layer"
+ help
+ libcamera v4l2 compatibility layer
+
config BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
bool
diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
index c7513d2e68..1633becf04 100644
--- a/package/libcamera/libcamera.mk
+++ b/package/libcamera/libcamera.mk
@@ -15,8 +15,7 @@ LIBCAMERA_DEPENDENCIES = \
LIBCAMERA_CONF_OPTS = \
-Dandroid=false \
-Ddocumentation=false \
- -Dtest=false \
- -Dv4l2=false
+ -Dtest=false
LIBCAMERA_INSTALL_STAGING = yes
LIBCAMERA_LICENSE = \
LGPL-2.1+ (library), \
@@ -37,6 +36,12 @@ LIBCAMERA_LICENSE_FILES = \
LICENSES/CC0-1.0.txt \
LICENSES/CC-BY-SA-4.0.txt
+ifeq ($(BR2_PACKAGE_LIBCAMERA_V4L2),y)
+LIBCAMERA_CONF_OPTS = -Dv4l2=true
+else
+LIBCAMERA_CONF_OPTS = -Dv4l2=false
+endif
+
LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3) += ipu3
ifeq ($(BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI),y)
LIBCAMERA_PIPELINES-y += raspberrypi
--
2.27.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v4 1/2] package/libcamera: bump version to 96fab38
2020-06-16 18:59 ` [Buildroot] [PATCH v4 1/2] " Peter Seiderer
@ 2020-06-18 20:11 ` Yann E. MORIN
0 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2020-06-18 20:11 UTC (permalink / raw)
To: buildroot
Peter, All,
On 2020-06-16 20:59 +0200, Peter Seiderer spake thusly:
> - add host dependencies: openssl, pkgconf, python3-pyyaml
> - add dependencies: gnutls
> - changed from mandatory to optional dependency: udev
> - add dedicated pipeline configure options
> - add optional dependencies: boost, gstreamer1/gst1-plugins-base,
> qt5base, tiff
> - update license info (Apache-2.0 omitted - applies only for android code)
>
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Applied to master, after simplifying the qt5 widgets and qt5 linguist
conditions. Thanks!
Regards,
Yann E. MORIN.
> ---
> Changes v1 -> v2:
> - re-add LIBCAMERA_LICENSE_FILES list (Kieran Bingham)
> - fix typo in commit message (Kieran Bingham)
> - add Reviewed-by from Kieran Bingham
>
> Changes v2 -> v3:
> - add dedicated pipeline configure options to reduce default
> dependencies (boost)
> - fix another typo in commit message (Kieran Bingham)
> - bump version to 96fab38
>
> Changes v3 -> v4:
> - use menuconfig
> - force at least one default pipeline (uvcvideo)
> - remove repetitive libcamera from options/help text
> - remove spurios empty line
> - add reviewd-by from Kieran
> ---
> package/libcamera/Config.in | 58 ++++++++++++++++++++++++---
> package/libcamera/libcamera.hash | 15 +++++--
> package/libcamera/libcamera.mk | 67 +++++++++++++++++++++++++++++---
> 3 files changed, 125 insertions(+), 15 deletions(-)
>
> diff --git a/package/libcamera/Config.in b/package/libcamera/Config.in
> index 0b3540a657..56ca5aaf18 100644
> --- a/package/libcamera/Config.in
> +++ b/package/libcamera/Config.in
> @@ -1,10 +1,12 @@
> -config BR2_PACKAGE_LIBCAMERA
> +menuconfig BR2_PACKAGE_LIBCAMERA
> bool "libcamera"
> depends on BR2_INSTALL_LIBSTDCPP
> depends on BR2_TOOLCHAIN_HAS_THREADS
> - # C++11 + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316
> - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
> - depends on BR2_PACKAGE_HAS_UDEV
> + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14
> + depends on !BR2_STATIC_LIBS # gnutls
> + depends on BR2_USE_WCHAR # gnutls
> + select BR2_PACKAGE_GNUTLS
> + select BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO if !BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
> help
> libcamera provides a software stack to support
> complex devices that need heavy hardware image
> @@ -12,6 +14,50 @@ config BR2_PACKAGE_LIBCAMERA
>
> http://www.libcamera.org/
>
> -comment "libcamera needs udev and a toolchain w/ C++, threads, gcc >= 5"
> +if BR2_PACKAGE_LIBCAMERA
> +
> +config BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
> + bool
> +
> +config BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3
> + bool "ipu3 pipeline"
> + select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
> + help
> + Pipeline for Intel IPU3.
> +
> +config BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI
> + bool "raspberrypi pipeline"
> + depends on BR2_USE_WCHAR # boost (already enforced for gnutls)
> + select BR2_PACKAGE_BOOST
> + select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
> + help
> + Pipeline for Raspberry Pi devices.
> +
> +config BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1
> + bool "rkisp1 pipeline"
> + select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
> + help
> + Pipeline for Rockchip ISP1.
> +
> +config BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE
> + bool "simple pipeline"
> + select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
> + help
> + Pipeline for simple pipelines.
> +
> +config BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO
> + bool "uvcvideo pipeline"
> + help
> + Pipeline for uvcvideo devices.
> +
> +config BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC
> + bool "vimc pipeline"
> + select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
> + help
> + Pipeline for the vimc device.
> +
> +endif # BR2_PACKAGE_LIBCAMERA
> +
> +comment "libcamera needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 5"
> depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
> - !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_PACKAGE_HAS_UDEV
> + !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || BR2_STATIC_LIBS || !BR2_USE_WCHAR
> diff --git a/package/libcamera/libcamera.hash b/package/libcamera/libcamera.hash
> index 6f721d87ee..907764de63 100644
> --- a/package/libcamera/libcamera.hash
> +++ b/package/libcamera/libcamera.hash
> @@ -1,3 +1,12 @@
> -sha256 cbaa7e06059717f71b57f9c20135c86d5f121d9aab10bfc20513ba5d04478756 libcamera-448393f77ec9e37cb807e8e8d35c1a4877d253d4.tar.gz
> -sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 licenses/gnu-gpl-2.0.txt
> -sha256 592987e8510228d546540b84a22444bde98e48d03078d3b2eefcd889bec5ce8c licenses/gnu-lgpl-2.1.txt
> +sha256 6995be9d707ba3bcbe7a79bad894484561ee686f68b6523943ada7c0f6607e86 libcamera-96fab38e02792a109c0d35ca2154e95a7b4c8fcb.tar.gz
> +
> +# license files
> +sha256 fd38b2c053c0cce46d9c5ef3545a6e34d157a240ba99c9b8dca5d37a8147da6c LICENSES/BSD-2-Clause.txt
> +sha256 e11af671c491efac2f94c1d752bea92f4308ca2450c7d11e582e4b48c40e4de1 LICENSES/BSD-3-Clause.txt
> +sha256 6a573fb2f9082662978cf21fb153096df0a1981deaea7dbc10a11046fe005d9f LICENSES/CC0-1.0.txt
> +sha256 ec3732087acf8c52429a020d6bba362ff578705bdb53365a21744485ec15b0e6 LICENSES/CC-BY-SA-4.0.txt
> +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSES/GPL-2.0-only.txt
> +sha256 606aa26338f69ce178f1cbc648b7574aec4b5bbaeb20f4df36ff49010cb8fbbd LICENSES/GPL-2.0-or-later.txt
> +sha256 1ccf09bf2f598308df4bed9cd8e9657dc5cd0973d2800318f2e241486e2edf3f LICENSES/LGPL-2.1-or-later.txt
> +sha256 3f9e477523febab58de8b716ccfbcf02e6ef1c8e7728953905e8558637abe2a9 LICENSES/Linux-syscall-note.txt
> +sha256 8f25018489d6fe0dec34a352314c38dc146247b7de65735790f4398a92afa84b LICENSES/MIT.txt
> diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
> index d209a38df3..c7513d2e68 100644
> --- a/package/libcamera/libcamera.mk
> +++ b/package/libcamera/libcamera.mk
> @@ -5,14 +5,69 @@
> ################################################################################
>
> LIBCAMERA_SITE = https://git.linuxtv.org/libcamera.git
> -LIBCAMERA_VERSION = 448393f77ec9e37cb807e8e8d35c1a4877d253d4
> +LIBCAMERA_VERSION = 96fab38e02792a109c0d35ca2154e95a7b4c8fcb
> LIBCAMERA_SITE_METHOD = git
> -LIBCAMERA_DEPENDENCIES = udev
> -LIBCAMERA_CONF_OPTS = -Dtest=false -Ddocumentation=false
> +LIBCAMERA_DEPENDENCIES = \
> + host-openssl \
> + host-pkgconf \
> + host-python3-pyyaml \
> + gnutls
> +LIBCAMERA_CONF_OPTS = \
> + -Dandroid=false \
> + -Ddocumentation=false \
> + -Dtest=false \
> + -Dv4l2=false
> LIBCAMERA_INSTALL_STAGING = yes
> -LIBCAMERA_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (utils)
> +LIBCAMERA_LICENSE = \
> + LGPL-2.1+ (library), \
> + GPL-2.0+ (utils), \
> + MIT (qcam/assets/feathericons), \
> + BSD-2-Clause (raspberrypi), \
> + GPL-2.0 with Linux-syscall-note or BSD-3-Clause (linux kernel headers), \
> + CC0-1.0 (meson build system), \
> + CC-BY-SA-4.0 (doc)
> LIBCAMERA_LICENSE_FILES = \
> - licenses/gnu-gpl-2.0.txt \
> - licenses/gnu-lgpl-2.1.txt
> + LICENSES/LGPL-2.1-or-later.txt \
> + LICENSES/GPL-2.0-or-later.txt \
> + LICENSES/MIT.txt \
> + LICENSES/BSD-2-Clause.txt \
> + LICENSES/GPL-2.0-only.txt \
> + LICENSES/Linux-syscall-note.txt \
> + LICENSES/BSD-3-Clause.txt \
> + LICENSES/CC0-1.0.txt \
> + LICENSES/CC-BY-SA-4.0.txt
> +
> +LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3) += ipu3
> +ifeq ($(BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI),y)
> +LIBCAMERA_PIPELINES-y += raspberrypi
> +LIBCAMERA_DEPENDENCIES += boost
> +endif
> +LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1) += rkisp1
> +LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE) += simple
> +LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO) += uvcvideo
> +LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC) += vimc
> +
> +LIBCAMERA_CONF_OPTS += -Dpipelines=$(subst $(space),$(comma),$(LIBCAMERA_PIPELINES-y))
> +
> +# gstreamer-video-1.0, gstreamer-allocators-1.0
> +ifeq ($(BR2_PACKAGE_GSTREAMER1)$(BR2_PACKAGE_GST1_PLUGINS_BASE),yy)
> +LIBCAMERA_CONF_OPTS += -Dgstreamer=enabled
> +LIBCAMERA_DEPENDENCIES += gstreamer1 gst1-plugins-base
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT5BASE)$(BR2_PACKAGE_QT5BASE_GUI)$(BR2_PACKAGE_QT5BASE_WIDGETS),yyy)
> +LIBCAMERA_DEPENDENCIES += qt5base
> +ifeq ($(BR2_PACKAGE_QT5TOOLS)$(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS),yy)
> +LIBCAMERA_DEPENDENCIES += qt5tools
> +endif
> +endif
> +
> +ifeq ($(BR2_PACKAGE_TIFF),y)
> +LIBCAMERA_DEPENDENCIES += tiff
> +endif
> +
> +ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
> +LIBCAMERA_DEPENDENCIES += udev
> +endif
>
> $(eval $(meson-package))
> --
> 2.27.0
>
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH v4 2/2] package/libcamera: add v4l2 compatibility layer option
2020-06-16 18:59 ` [Buildroot] [PATCH v4 2/2] package/libcamera: add v4l2 compatibility layer option Peter Seiderer
@ 2020-06-18 20:21 ` Yann E. MORIN
0 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2020-06-18 20:21 UTC (permalink / raw)
To: buildroot
Peter, All,
On 2020-06-16 20:59 +0200, Peter Seiderer spake thusly:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Applied to master, thanks.
Regards,
Yann E. MORIN.
> ---
> Changes v3 -> v4:
> - new patch
> ---
> package/libcamera/Config.in | 5 +++++
> package/libcamera/libcamera.mk | 9 +++++++--
> 2 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/package/libcamera/Config.in b/package/libcamera/Config.in
> index 56ca5aaf18..960d78b82e 100644
> --- a/package/libcamera/Config.in
> +++ b/package/libcamera/Config.in
> @@ -16,6 +16,11 @@ menuconfig BR2_PACKAGE_LIBCAMERA
>
> if BR2_PACKAGE_LIBCAMERA
>
> +config BR2_PACKAGE_LIBCAMERA_V4L2
> + bool "libcamera v4l2 compatibility layer"
> + help
> + libcamera v4l2 compatibility layer
> +
> config BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
> bool
>
> diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
> index c7513d2e68..1633becf04 100644
> --- a/package/libcamera/libcamera.mk
> +++ b/package/libcamera/libcamera.mk
> @@ -15,8 +15,7 @@ LIBCAMERA_DEPENDENCIES = \
> LIBCAMERA_CONF_OPTS = \
> -Dandroid=false \
> -Ddocumentation=false \
> - -Dtest=false \
> - -Dv4l2=false
> + -Dtest=false
> LIBCAMERA_INSTALL_STAGING = yes
> LIBCAMERA_LICENSE = \
> LGPL-2.1+ (library), \
> @@ -37,6 +36,12 @@ LIBCAMERA_LICENSE_FILES = \
> LICENSES/CC0-1.0.txt \
> LICENSES/CC-BY-SA-4.0.txt
>
> +ifeq ($(BR2_PACKAGE_LIBCAMERA_V4L2),y)
> +LIBCAMERA_CONF_OPTS = -Dv4l2=true
> +else
> +LIBCAMERA_CONF_OPTS = -Dv4l2=false
> +endif
> +
> LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3) += ipu3
> ifeq ($(BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI),y)
> LIBCAMERA_PIPELINES-y += raspberrypi
> --
> 2.27.0
>
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-06-18 20:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-16 18:59 [Buildroot] [PATCH v4 0/2] package/libcamera: bump version to 96fab38 Peter Seiderer
2020-06-16 18:59 ` [Buildroot] [PATCH v4 1/2] " Peter Seiderer
2020-06-18 20:11 ` Yann E. MORIN
2020-06-16 18:59 ` [Buildroot] [PATCH v4 2/2] package/libcamera: add v4l2 compatibility layer option Peter Seiderer
2020-06-18 20:21 ` Yann E. MORIN
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox