Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 8041

Camera board • Re: AR0234: Adding custom camera driver for RPi4B

$
0
0
Hi @6by9,

Thanks for your reply.

I have copied "ar0234.c" and "ar0234-overlay.dts" from your https://github.com/6by9/linux/tree/rpi-6.6.y-ar0234 into latest kernel source version 6.6.78-v8+.

Also build and installed libcamera from your repo https://github.com/6by9/libcamera-old/tree/ar0234
And in config.txt i have added "dtoverlay=ar0234"

But still not able to get my custom camera HW with ar0234 working.
And now i am not getting "unicam fe801000.csi: Failed to start media pipeline: -22" error in dmesg.

should i use the same kernel version from https://github.com/6by9/linux/tree/rpi-6.6.y-ar0234 repo or i have missed something.
Please suggest steps / right command to get image/video from the camera.

Following are output of some test command.

Code:

rpi4@rpi4:~/raybaby/libcamera-old $ LIBCAMERA_LOG_LEVELS=*:DEBUG cam -l[0:03:03.246665447] [1977] DEBUG IPAModule ipa_module.cpp:333 ipa_rpi_pisp.so: IPA module /usr/lib/aarch64-linux-gnu/libcamera/ipa_rpi_pisp.so is signed[0:03:03.246951110] [1977] DEBUG IPAManager ipa_manager.cpp:235 Loaded IPA module '/usr/lib/aarch64-linux-gnu/libcamera/ipa_rpi_pisp.so'[0:03:03.247144181] [1977] DEBUG IPAModule ipa_module.cpp:333 ipa_rpi_vc4.so: IPA module /usr/lib/aarch64-linux-gnu/libcamera/ipa_rpi_vc4.so is signed[0:03:03.247221550] [1977] DEBUG IPAManager ipa_manager.cpp:235 Loaded IPA module '/usr/lib/aarch64-linux-gnu/libcamera/ipa_rpi_vc4.so'[0:03:03.247263475] [1977]  INFO Camera camera_manager.cpp:327 libcamera v0.4.0+53-29156679[0:03:03.247530286] [1980] DEBUG Camera camera_manager.cpp:73 Starting camera manager[0:03:03.259012238] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:230 New media device "rpivid" created from /dev/media3[0:03:03.259100496] [1980] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media3 due to 1 missing dependencies[0:03:03.259436528] [1980] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media3 found[0:03:03.259466861] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:258 Added device /dev/media3: rpivid[0:03:03.259709801] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:230 New media device "bcm2835-codec" created from /dev/media4[0:03:03.259743505] [1980] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media4 due to 5 missing dependencies[0:03:03.261246759] [1980] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media4 found[0:03:03.261311092] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:258 Added device /dev/media4: bcm2835-codec[0:03:03.261551884] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:230 New media device "bcm2835-isp" created from /dev/media1[0:03:03.261582032] [1980] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media1 due to 4 missing dependencies[0:03:03.261791473] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:230 New media device "bcm2835-isp" created from /dev/media2[0:03:03.261819343] [1980] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media2 due to 4 missing dependencies[0:03:03.262946326] [1980] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media1 found[0:03:03.262981640] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:258 Added device /dev/media1: bcm2835-isp[0:03:03.264225139] [1980] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media2 found[0:03:03.264315212] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:258 Added device /dev/media2: bcm2835-isp[0:03:03.264732279] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:230 New media device "unicam" created from /dev/media0[0:03:03.265058052] [1980] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media0 due to 2 missing dependencies[0:03:03.265733875] [1980] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media0 found[0:03:03.265786374] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:258 Added device /dev/media0: unicam[0:03:03.266482049] [1980] DEBUG Camera camera_manager.cpp:140 Found registered pipeline handler 'rpi/vc4'[0:03:03.266564196] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:318 Successful match for media device "unicam"[0:03:03.266622935] [1980] DEBUG DeviceEnumerator device_enumerator.cpp:318 Successful match for media device "bcm2835-isp"[0:03:03.266809414] [1980] DEBUG ClockRec clock_recovery.cpp:69 configure 100 2000 10 50000[0:03:03.266875783] [1980] DEBUG ClockRec clock_recovery.cpp:83 reset[0:03:03.266932412] [1980] DEBUG DmaBufAllocator dma_buf_allocator.cpp:112 Using /dev/dma_heap/linux,cma[0:03:03.266966300] [1980] DEBUG CameraSensor camera_sensor_raw.cpp:210 ar0234 10-0010: unsupported number of sinks (0) or sources (2)[0:03:03.267080928] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Exposure (0x00980911)[0:03:03.267139372] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Horizontal Flip (0x00980914)[0:03:03.267167112] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Vertical Flip (0x00980915)[0:03:03.267195186] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Vertical Blanking (0x009e0901)[0:03:03.267219463] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Horizontal Blanking (0x009e0902)[0:03:03.267244778] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Analogue Gain (0x009e0903)[0:03:03.267269296] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Red Pixel Value (0x009e0904)[0:03:03.267294055] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Green (Red) Pixel Value (0x009e0905)[0:03:03.267319462] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Blue Pixel Value (0x009e0906)[0:03:03.267345628] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Green (Blue) Pixel Value (0x009e0907)[0:03:03.267371553] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Link Frequency (0x009f0901)[0:03:03.267404516] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Pixel Rate (0x009f0902)[0:03:03.267431182] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Test Pattern (0x009f0903)[0:03:03.267465904] [1980] DEBUG V4L2 v4l2_device.cpp:699 'ar0234 10-0010': Control: Digital Gain (0x009f0905)[0:03:03.267588495] [1980] DEBUG CameraSensor camera_sensor_legacy.cpp:339 'ar0234 10-0010': Optional V4L2 control 0x009a0923 not supported[0:03:03.267610772] [1980]  WARN CameraSensor camera_sensor_legacy.cpp:354 'ar0234 10-0010': Recommended V4L2 control 0x009a0922 not supported[0:03:03.267635660] [1980]  WARN CameraSensor camera_sensor_legacy.cpp:426 'ar0234 10-0010': The sensor kernel driver needs to be fixed[0:03:03.267653919] [1980]  WARN CameraSensor camera_sensor_legacy.cpp:428 'ar0234 10-0010': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information[0:03:03.268546813] [1980]  WARN CameraSensorProperties camera_sensor_properties.cpp:473 No static properties available for 'ar0234'[0:03:03.268585979] [1980]  WARN CameraSensorProperties camera_sensor_properties.cpp:475 Please consider updating the camera sensor properties database[0:03:03.268605183] [1980]  WARN CameraSensor camera_sensor_legacy.cpp:594 'ar0234 10-0010': Failed to retrieve the camera location[0:03:03.268621756] [1980]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ar0234 10-0010': Rotation control not available, default to 0 degrees[0:03:03.268645275] [1980] DEBUG CameraSensor camera_sensor.cpp:468 Entity 'ar0234 10-0010' matched by CameraSensorLegacy[0:03:03.275192099] [1980] DEBUG IPAManager ipa_manager.cpp:306 IPA module /usr/lib/aarch64-linux-gnu/libcamera/ipa_rpi_vc4.so signature is valid[0:03:03.275431447] [1980] DEBUG IPAProxy raspberrypi_ipa_proxy.cpp:45 initializing raspberrypi proxy: loading IPA from /usr/lib/aarch64-linux-gnu/libcamera/ipa_rpi_vc4.so[0:03:03.284943245] [1980] ERROR IPAProxy ipa_proxy.cpp:154 Configuration file 'ar0234.json' not found for IPA module 'rpi/vc4'[0:03:03.285146353] [1980] ERROR IPARPI ipa_base.cpp:140 Could not create camera helper for ar0234[0:03:03.285206389] [1980] ERROR RPI pipeline_base.cpp:814 Failed to load a suitable IPA library[0:03:03.285243833] [1980] ERROR RPI vc4.cpp:216 Failed to register camera ar0234 10-0010: -22[0:03:03.285382016] [1980] DEBUG RPI vc4.cpp:189 Unable to acquire a Unicam instance[0:03:03.285434237] [1980] DEBUG Camera camera_manager.cpp:140 Found registered pipeline handler 'rpi/pisp'[0:03:03.285478274] [1980] DEBUG RPI pisp.cpp:890 Unable to acquire a CFE instance[0:03:03.285512421] [1980] DEBUG Camera camera_manager.cpp:140 Found registered pipeline handler 'uvcvideo'Available cameras:
Looking at the error it seems like build libcamera is unable to install properly as it unable to find ar0234.json

Code:

[0:03:03.284943245] [1980] ERROR IPAProxy ipa_proxy.cpp:154 Configuration file 'ar0234.json' not found for IPA module 'rpi/vc4'[0:03:03.285146353] [1980] ERROR IPARPI ipa_base.cpp:140 Could not create camera helper for ar0234[0:03:03.285206389] [1980] ERROR RPI pipeline_base.cpp:814 Failed to load a suitable IPA library[0:03:03.285243833] [1980] ERROR RPI vc4.cpp:216 Failed to register camera ar0234 10-0010: -22
But with gst-launch libcamera is able to find ar0234.json

Code:

rpi4@rpi4:~/raybaby/libcamera-old $ gst-launch-1.0 libcamerasrc ! 'video/x-raw,width=1280,height=720' ! \      glimagesinkSetting pipeline to PAUSED ...[0:03:22.998836551] [1984]  INFO IPAManager ipa_manager.cpp:143 libcamera is not installed. Adding '/home/rpi4/raybaby/libcamera-old/build/src/ipa' to the IPA search path[0:03:23.071125152] [1984]  INFO Camera camera_manager.cpp:284 libcamera v0.0.0+4454-5336e6ea[0:03:23.098546161] [1990]  WARN CameraSensor camera_sensor.cpp:245 'ar0234 10-0010': Recommended V4L2 control 0x009a0922 not supported[0:03:23.098613327] [1990]  WARN CameraSensor camera_sensor.cpp:312 'ar0234 10-0010': The sensor kernel driver needs to be fixed[0:03:23.098632049] [1990]  WARN CameraSensor camera_sensor.cpp:314 'ar0234 10-0010': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information[0:03:23.099389281] [1990]  WARN CameraSensorProperties camera_sensor_properties.cpp:261 No static properties available for 'ar0234'[0:03:23.099434947] [1990]  WARN CameraSensorProperties camera_sensor_properties.cpp:263 Please consider updating the camera sensor properties database[0:03:23.099453984] [1990]  WARN CameraSensor camera_sensor.cpp:460 'ar0234 10-0010': Failed to retrieve the camera location[0:03:23.114984607] [1990]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/rpi4/raybaby/libcamera-old/src/ipa/rpi/vc4/data'[0:03:23.128389846] [1990]  WARN RPiSdn sdn.cpp:39 Using legacy SDN tuning - please consider moving SDN inside rpi.denoise[0:03:23.129738498] [1990]  WARN RPI vc4.cpp:390 Mismatch between Unicam and CamHelper for embedded data usage![0:03:23.130478156] [1990]  INFO RPI vc4.cpp:444 Registered camera /base/soc/i2c0mux/i2c@1/ar0234@10 to Unicam device /dev/media0 and ISP device /dev/media1Pipeline is live and does not need PREROLL ...Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayWayland\)\ gldisplaywayland0";Pipeline is PREROLLED ...Setting pipeline to PLAYING ...New clock: GstSystemClock[0:03:23.145309676] [1993]  INFO Camera camera.cpp:1181 configuring streams: (0) 1280x720-NV21[0:03:23.145770967] [1990]  INFO RPI vc4.cpp:608 Sensor: /base/soc/i2c0mux/i2c@1/ar0234@10 - Selected sensor format: 1280x800-SGRBG10_1X10 - Selected unicam format: 1280x800-pgAA[0:03:24.459518624] [1990]  WARN V4L2 v4l2_videodevice.cpp:2007 /dev/video0[22:cap]: Dequeue timer of 1000000.00us has expired![0:03:24.459612548] [1990] ERROR RPI pipeline_base.cpp:1374 Camera frontend has timed out![0:03:24.459629326] [1990] ERROR RPI pipeline_base.cpp:1375 Please check that your camera sensor connector is attached securely.[0:03:24.459645141] [1990] ERROR RPI pipeline_base.cpp:1376 Alternatively, try another cable and/or sensor./usr/include/c++/12/bits/stl_queue.h:235: std::queue<_Tp, _Sequence>::reference std::queue<_Tp, _Sequence>::front() [with _Tp = std::unique_ptr<RequestWrap>; _Sequence = std::deque<std::unique_ptr<RequestWrap>, std::allocator<std::unique_ptr<RequestWrap> > >; reference = std::unique_ptr<RequestWrap>&]: Assertion '!this->empty()' failed.Aborted

Statistics: Posted by riteshEB — Wed Mar 19, 2025 9:30 am



Viewing all articles
Browse latest Browse all 8041

Trending Articles