{"id":4061,"url":"https://patchwork.libcamera.org/api/1.1/patches/4061/?format=json","web_url":"https://patchwork.libcamera.org/patch/4061/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200616185951.30319-1-ps.report@gmx.net>","date":"2020-06-16T18:59:49","name":"[libcamera-devel,v4,0/2] package/libcamera: bump version to 96fab38","commit_ref":null,"pull_url":null,"state":"not-applicable","archived":false,"hash":"7aec02531f1d9093219ba0a76aa341fb6df2b68a","submitter":{"id":52,"url":"https://patchwork.libcamera.org/api/1.1/people/52/?format=json","name":"Peter Seiderer","email":"ps.report@gmx.net"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/4061/mbox/","series":[],"comments":"https://patchwork.libcamera.org/api/patches/4061/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/4061/checks/","tags":{},"headers":{"Return-Path":"<ps.report@gmx.net>","Received":["from mout.gmx.net (mout.gmx.net [212.227.15.15])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 532C4603C4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 16 Jun 2020 21:01:54 +0200 (CEST)","from localhost.fritz.box ([62.216.209.66]) by mail.gmx.com\n\t(mrgmx005\n\t[212.227.17.190]) with ESMTPSA (Nemesis) id 1MFsUv-1jg42p1ae7-00HNiJ;\n\tTue, 16 Jun 2020 21:01:52 +0200"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"TzesTi0n\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1592334112;\n\tbh=Y2IrZPjbo5YB7GKHeM3ju+Hrt8Uaqys10m6LyqRhSR4=;\n\th=X-UI-Sender-Class:From:To:Cc:Subject:Date;\n\tb=TzesTi0n/NoKRfAZAQA/Pa316TLMGqX0Vl08bQqRRLbgMkwgsYskHo+mjZ1DfkplO\n\tqCLONrMgRq/SjozdVUdUZ80mcHD6EBuK4Y/K/rnlvrQPXD1PY1H89w4TumwUQso6pB\n\tgXMnZAuup8w860pkvlmXuCtYA16nfrm3O5EUWz4o=","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","From":"Peter Seiderer <ps.report@gmx.net>","To":"buildroot@busybox.net","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\t\"Yann E . MORIN\" <yann.morin.1998@free.fr>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Tue, 16 Jun 2020 20:59:49 +0200","Message-Id":"<20200616185951.30319-1-ps.report@gmx.net>","X-Mailer":"git-send-email 2.27.0","MIME-Version":"1.0","Content-Transfer-Encoding":"base64","X-Provags-ID":"V03:K1:6b9ZWxT4jeC9i9T9YGqcUO1SI89/ZOmSGRbE2yFQ0BLYIPOcvOa\n\tV2hM2OQmZa+23NSUoDfbcftFXVYJNSWNxQ+t80XkcWKoeVtQaBY0Sy8Z/o98kD/4NCPKpeO\n\tIVwI+H12LXvyeLzvphOUdxHWE86R8fUZKMNP4C/+jTwWup7AKxJ+Yh0dxXOAvaWa8Q4uJNj\n\t2ILBjIlrH9y7OlC+h1QnQ==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:ACP9ohYadbY=:sAsTLEdaKcZSWDyqC8gNzS\n\tYqCczs1nsqT2MCff3FDLEd5g4TZm2tGtOdn7f9T5SmdJr/5E6Ov8GcRfFsK6e5+jHLaLrjOc/\n\tqSc2v5HbFWR3YhOdykxq5yU3T/121GFjs9PE0JXouGMto+3zqxHXpUZcw6kf0022vuAjZO7Db\n\t8phteUuA+kL61wfC1Zqz/ouoUi07pz3HdzDXxR1+t2iCawwf6GbBOV7XNzEQEFtCq/1YO4OQT\n\tqyOHaYj/kX5GxUcGsWSABudYmiboazHyml1m0NdYPfBHxh7A3r2NaReBO+XYjDR3/NOTxqUJi\n\tZLZ5BmZQIBwiK4dtzXEpc62z+libnhVHWGj+tN1N89LGDb2aQV9xyZMqRR9mq9EXEaC2WY2Mw\n\tz33rw/CogWqdIwBr3D6M32kUFwkLE+rEFzSjRAYXjqPR721Pl8L3hluBLrQfuXOYYYEiu47ax\n\tr8pGREu980Ek84yo2mDBgQJOnsEn1XZWmBHnbowrYMBG2NOkRRwnjVx+K4ptD7J9WnDR21eDy\n\tNX7nER9l3JYpNR3a6fyeKc5sazkcc2lqvYLnfO39PWfyyTN6Bw7tEGPmR+C1jAmPuyDnFEKzm\n\t4GebQL6BthR6Y/7C2zs1uN1IkRTwVBDuz8swPz7nX1It6Mv1dasCJLbLVKAGIF0sHyFfklzSO\n\t32sylkPLF/ZFs/nqncZ7LRFRYXPJTpBz8VwSD5Y4WeYwe2U07nS+xhxzDzSRlSm4ODA4hJYC4\n\tPeg2wq4pkcKwJMaliAMGokpjoSWmGzoynB1w0M/Gu4uQOpiiGN6SlDsQ7xEejDIRoQnFSKE1G\n\tDfIytowBkgkBQ9NALCS81QbnoJYfEg7J+ZiO7NyQg2o2d9U77UjMOMuLcMcPgVhfU9Xr6KU2u\n\t76fHaI8MBbNqqQ+NBZCPbhmj7QSHgKx+28jDV2muH0J57viu97eRacJgCkbzZocB1QpAByiyS\n\tMmNSUFeBzpGMzoRhGEqnaT30qN4cTNE2tKhsk7tRO+ykEHge47Hfin/ymQ5cMzlfGsqUDlFKI\n\t3+cb4YLg8Zl2XzA92rsIaviPNTRvTx/mQuOj/UgMjeodJcbgjg7/9YIaBOlyWJuo4jHC66pDD\n\t8RHQg2N1KbpYi9OkLZuv6IkCLQeFl8JscSdLNy5GPxYJBfAgZruDQdPTDV2WtLrF+KwrBkdmL\n\tJ4K89GnlWLEBan8HGCOmu62x82IpdC0WcQADxyDg3W1mH8uHs7GVbiASDbZmqigAVmmhI=","Subject":"[libcamera-devel] [PATCH v4 0/2] package/libcamera: bump version to\n\t96fab38","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Tue, 16 Jun 2020 19:01:54 -0000"},"content":"Tested on RPi3/RPi4 with linux-5.4.45-v7l kernel and updated\nrpi-firmware package, Qt-5.14.2:\n\nFirst try:\n\n\t$ qcam -platform linuxfb -c ov5647\n0:00:25.696380706] [241]  INFO IPAManager ipa_manager.cpp:136 libcamera is not installed. Adding '//src/ipa' to the IPA search path\n[0:00:25.712675651] [241]  INFO Camera camera_manager.cpp:280 libcamera v0.0.0\n[0:00:25.785788355] [243]  INFO IPAProxy ipa_proxy.cpp:190 libcamera is not installed. Loading proxy workers from '//src/libcamera/proxy/worker'\n[0:00:25.785931355] [243] ERROR IPAProxy ipa_proxy_linux.cpp:59 Failed to get proxy worker path\n[0:00:25.786016077] [243] ERROR IPAManager ipa_manager.cpp:296 Failed to load proxy\n[0:00:25.786108077] [243] ERROR RPI raspberrypi.cpp:925 Failed to load a suitable IPA library\nCamera ov5647 not found\n\nWith the following patch libcamera is forced to believe it is running\nin a installed environment:\n\n\n\nMaybe related to the buildroot finalize and/or sanitizing RPATH in target tree\nstep (and/or strip after install with BR2_ENABLE_DEBUG=y/BR2_STRIP_strip=y\nenabled)?\n\nFinal run (success):\n\n\t$ qcam -platform linuxfb -c ov5647\n[0:06:20.379361328] [265]  INFO Camera camera_manager.cpp:280 libcamera v0.0.0\n[0:06:20.490928995] [265]  INFO Camera camera.cpp:770 configuring streams: (0) 800x600-0x34325241\n[0:06:20.491250069] [266]  INFO RPI raspberrypi.cpp:115 Mode: 2592x1944 fmt BG10 Score: 2284 (best 2284)\n[0:06:20.491406162] [266]  INFO RPI raspberrypi.cpp:115 Mode: 1920x1080 fmt BG10 Score: 2066.67 (best 2066.67)\n[0:06:20.491511180] [266]  INFO RPI raspberrypi.cpp:115 Mode: 1296x972 fmt BG10 Score: 1717 (best 1717)\n[0:06:20.491607439] [266]  INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt BG10 Score: 2060 (best 1717)\n[0:06:20.491704680] [266]  INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt BA81 Score: 3060 (best 1717)\n[0:06:20.491800495] [266]  INFO RPI raspberrypi.cpp:115 Mode: 2592x1944 fmt pBAA Score: 1784 (best 1717)\n[0:06:20.491893162] [266]  INFO RPI raspberrypi.cpp:115 Mode: 1920x1080 fmt pBAA Score: 1566.67 (best 1566.67)\n[0:06:20.491988439] [266]  INFO RPI raspberrypi.cpp:115 Mode: 1296x972 fmt pBAA Score: 1217 (best 1217)\n[0:06:20.492080773] [266]  INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt pBAA Score: 1560 (best 1217)\n[0:06:20.492207291] [266]  INFO RPI raspberrypi.cpp:619 Sensor: ov5647 - Selected mode: 1296x972-pBAA\n[0:06:20.494765217] [266]  INFO RPI_S_W staggered_ctrl.cpp:36 Init ctrl 0x00980911 with delay 2\n[0:06:20.494887717] [266]  INFO RPI_S_W staggered_ctrl.cpp:36 Init ctrl 0x009e0903 with delay 2\n[0:06:20.494973365] [266] ERROR V4L2 v4l2_device.cpp:287 /dev/video0[cap]: Control 0x00980915 not found\nZero-copy enabled\n[  380.670935] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020700000\n[  380.680776] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020800000\n[  380.690605] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020900000\n[  380.700408] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020a00000\n[  380.712664] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001ed50000\n[  380.722464] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001ed54000\n[  380.732327] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001ed58000\n[  380.742145] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001ed5c000\n[  380.754943] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001f700000\n[  380.767326] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001ff00000\n[0:06:20.782425402] [266]  INFO RPI raspb[  380.790404] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020100000\nerrypi.cpp:1461 Dropping frame at the request of the IPA\n[0:06:20.807450587] [266]  INFO R[  380.815266] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020300000\nPI raspberrypi.cpp:1461 Dropping frame at the request of the IPA\n[0:06:20.833070754] [266]  INFO RPI raspb[  380.841383] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x0000000020500000\nerrypi.cpp:1461 Dropping frame at the request of the IPA\n[0:06:20.858214865] [266]  INFO RPI raspberrypi.cpp:1461 Dropping frame at the request of the IPA\n[0:06:20.871768532] [266]  INFO RPI raspberrypi.cpp:1461 Dropping frame at the request of the IPA\n[0:06:20.884721476] [266]  INFO RPI raspberrypi.cpp:1461 Dropping frame at the request of the IPA\nseq: 000006 bytesused: 1920000 timestamp: 380874300000 fps: 0.00\n[  380.939540] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001f900000\n[  380.974173] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001fb00000\n[  381.008864] vc_sm_cma_import_dmabuf_internal: Expecting an uncached alias for dma_addr 0x000000001fd00000\nseq: 000007 bytesused: 1920000 timestamp: 380908989000 fps: 28.83\nseq: 000008 bytesused: 1920000 timestamp: 380943681000 fps: 28.83\nseq: 000009 bytesused: 1920000 timestamp: 380978370000 fps: 28.83\nseq: 000010 bytesused: 1920000 timestamp: 381013062000 fps: 28.83\nseq: 000011 bytesused: 1920000 timestamp: 381047752000 fps: 28.83\nseq: 000012 bytesused: 1920000 timestamp: 381082441000 fps: 28.83\nseq: 000013 bytesused: 1920000 timestamp: 381117130000 fps: 28.83\nseq: 000014 bytesused: 1920000 timestamp: 381151822000 fps: 28.83\nseq: 000015 bytesused: 1920000 timestamp: 381186512000 fps: 28.83\nseq: 000016 bytesused: 1920000 timestamp: 381221200000 fps: 28.83\nseq: 000017 bytesused: 1920000 timestamp: 381255891000 fps: 28.83\n\nRegards,\nPeter\n\n\n[1] https://git.buildroot.net/buildroot/tree/package/meson/0001-Only-fix-RPATH-if-install_rpath-is-not-empty.patch\n\nNotes:\n - customized config.txt (RPi4):\n\n   gpu_mem=128\n   dtoverlay=miniuart-bt\n   dtoverlay=ov5647\n   core_freq_min=250\n   dtoverlay=vc4-fkms-v3d\n\nPeter Seiderer (2):\n  package/libcamera: bump version to 96fab38\n  package/libcamera: add v4l2 compatibility layer option\n\n package/libcamera/Config.in      | 63 +++++++++++++++++++++++++---\n package/libcamera/libcamera.hash | 15 +++++--\n package/libcamera/libcamera.mk   | 72 +++++++++++++++++++++++++++++---\n 3 files changed, 135 insertions(+), 15 deletions(-)","diff":"diff --git a/src/libcamera/utils.cpp b/src/libcamera/utils.cpp\nindex d55338f..4ff9dac 100644\n--- a/src/libcamera/utils.cpp\n+++ b/src/libcamera/utils.cpp\n@@ -346,15 +346,18 @@ details::StringSplitter split(const std::string &str, const std::string &delim)\n  */\n bool isLibcameraInstalled()\n {\n+#if 0\n \t/*\n \t * DT_RUNPATH (DT_RPATH when the linker uses old dtags) is removed on\n \t * install.\n \t */\n \tfor (const ElfW(Dyn) *dyn = _DYNAMIC; dyn->d_tag != DT_NULL; ++dyn) {\n-\t\tif (dyn->d_tag == DT_RUNPATH || dyn->d_tag == DT_RPATH)\n+\t\tif (dyn->d_tag == DT_RUNPATH || dyn->d_tag == DT_RPATH) {\n+\t\t\tprintf(\"XXXXX - dyn->d_un.d_ptr: %s\\n\", (char*)dyn->d_un.d_ptr);\n \t\t\treturn false;\n+\t\t}\n \t}\n-\n+#endif\n \treturn true;\n }\n \n\nMaybe this is because of the buildroot local meson patch ([1]), leading\nto an empty (but not absent) RPATH?\n\nWith this patch applied, next try:\n\n\t$ qcam -platform linuxfb -c ov5647\n[   60.656531] random: crng init done\n[0:01:00.797904315] [248]  INFO Camera camera_manager.cpp:280 libcamera v0.0.0\n[0:01:01.248904870] [248]  INFO Camera camera.cpp:770 configuring streams: (0) 800x600-0x34325241\n[0:01:01.249270722] [249]  INFO RPI raspberrypi.cpp:115 Mode: 2592x1944 fmt BG10 Score: 2284 (best 2284)\n[0:01:01.249425945] [249]  INFO RPI raspberrypi.cpp:115 Mode: 1920x1080 fmt BG10 Score: 2066.67 (best 2066.67)\n[0:01:01.249534278] [249]  INFO RPI raspberrypi.cpp:115 Mode: 1296x972 fmt BG10 Score: 1717 (best 1717)\n[0:01:01.249633315] [249]  INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt BG10 Score: 2060 (best 1717)\n[0:01:01.249731593] [249]  INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt BA81 Score: 3060 (best 1717)\n[0:01:01.249828611] [249]  INFO RPI raspberrypi.cpp:115 Mode: 2592x1944 fmt pBAA Score: 1784 (best 1717)\n[0:01:01.249922500] [249]  INFO RPI raspberrypi.cpp:115 Mode: 1920x1080 fmt pBAA Score: 1566.67 (best 1566.67)\n[0:01:01.250069815] [249]  INFO RPI raspberrypi.cpp:115 Mode: 1296x972 fmt pBAA Score: 1217 (best 1217)\n[0:01:01.250169482] [249]  INFO RPI raspberrypi.cpp:115 Mode: 640x480 fmt pBAA Score: 1560 (best 1217)\n[0:01:01.250298593] [249]  INFO RPI raspberrypi.cpp:619 Sensor: ov5647 - Selected mode: 1296x972-pBAA\nZero-copy enabled\n[0:01:01.319715019] [249] FATAL default raspberrypi.cpp:791 assertion \"data->staggeredCtrl_\" failed\nBacktrace:\n/usr/lib/libcamera.so(_ZN9libcamera18PipelineHandlerRPi5startEPNS_6CameraE+0x164) [0xb6eb432c]\n/usr/lib/libcamera.so(_ZN9libcamera15BoundMethodArgsIiJPNS_6CameraEEE10invokePackEPNS_19BoundMethodPackBaseE+0x18) [0xb6e7f670]\n/usr/lib/libcamera.so(_ZN9libcamera6Object7messageEPNS_7MessageE+0x1c) [0xb6e9eafc]\n/usr/lib/libcamera.so(_ZN9libcamera6Thread16dispatchMessagesEv+0xfc) [0xb6ea3f44]\n/usr/lib/libcamera.so(_ZN9libcamera19EventDispatcherPoll13processEventsEv+0x14) [0xb6e92d08]\n/usr/lib/libcamera.so(_ZN9libcamera6Thread4execEv+0x54) [0xb6ea3e0c]\n/usr/lib/libcamera.so(_ZN9libcamera13CameraManager7Private3runEv+0xa8) [0xb6e80f44]\n/usr/lib/libstdc++.so.6(+0x9bddc) [0xb6104ddc]\nAborted\n\n\nRunning with LIBCAMERA_LOG_LEVELS=DEBUG gives:\n\n[...]\n[0:02:18.061949510] [251] DEBUG IPAModule ipa_module.cpp:330 ipa_rpi.so: IPA module /usr/lib/libcamera/ipa_rpi.so is signed\n[...]\n[0:02:18.125804232] [252] DEBUG IPAManager ipa_manager.cpp:316 IPA module /usr/lib/libcamera/ipa_rpi.so signature is not valid\n[0:02:18.126069417] [252] DEBUG IPAProxy ipa_proxy_linux.cpp:50 initializing dummy proxy: loading IPA from /usr/lib/libcamera/ipa_rpi.so\n[...]\n\nThis can be avoided with the following patch/hack (disable signature check):\n\ndiff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp\nindex 505cf61..3d64898 100644\n--- a/src/libcamera/ipa_manager.cpp\n+++ b/src/libcamera/ipa_manager.cpp\n@@ -301,6 +301,9 @@ std::unique_ptr<IPAProxy> IPAManager::createIPA(PipelineHandler *pipe,\n \n bool IPAManager::isSignatureValid(IPAModule *ipa) const\n {\n+#if 1\n+\treturn true;\n+#else\n #if HAVE_IPA_PUBKEY\n \tFile file{ ipa->path() };\n \tif (!file.open(File::ReadOnly))\n@@ -320,6 +323,7 @@ bool IPAManager::isSignatureValid(IPAModule *ipa) const\n #else\n \treturn false;\n #endif\n+#endif\n }\n \n } /* namespace libcamera */\n","prefixes":["libcamera-devel","v4","0/2"]}