I’m trying to work with the OV5640 camera on sabre board NCIMX7SABRE SCH-28590 REV C
I’ve bought a camera as suggested in https://community.nxp.com/thread/435090
I’ve built the kernel and rootfs starting from
repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-morty -m imx-4.9.11-1.0.0_ga.xml
I made the following change to select imx7d and add :
machine: imx7dsabresd
image: core-image-base
distro: fsl-frambuffer
kernel: linux-fslc-imx (4.1.38)
The device tree is the original.
I’ve also added:
IMAGE_INSTALL_append = "yavta v4l-utils"
from meta-openembedded/meta-oe/recipes-multimedia/
I’ve boot from sdcard.
From the following command the camera seems to be loaded.
root@imx7dsabresd:~# lsmod
Module S ize Used by
ov5640_camera_mipi 16871 1
mx6s_capture 16548 0
mxc_mipi_csi 12919 1
evbug 2130 0
I see two v4l2 devices:
V4L2 Output Device on /dev/video0
V4L2 Capture Device on to /dev/video1 (the ov5640 camera)
But If I run the following yavta cmd I get the error “Unable to start streaming: No buffer space available (105).”,
In sdcard there is more than 1 GB free space.
root@imx7dsabresd:~# yavta /dev/video1 -c1 -n1 -s640x480 -fUYVY -F
Device /dev/video1 opened.------------[ cut here ]------------
Device `i.MX6S_CSI' on `platforWARNING: CPU: 1 PID: 418 at /imx7build/fsl-arm-yocto-bsp/nxp-camera-build/tmp/work-shared/imx7dsabresd/kernel-source/drivers/media/v4l2-core/videobuf2-core.c:1805 vb2_start_streaming+0xe8/0x164()
m:30710000.csi' is a video output
Modules linked in: (without mplanes) device.
Video ov5640_camera_mipi format set: UYVY (59565955) 640x mx6s_capture480 (stride 1280) field none buff mxc_mipi_csier size 614400
Video format: (0 evbug0000000) 640x480 (stride 0) field
none buffer size 614400
1 buffeCPU: 1 PID: 418 Comm: yavta Tainted: G W 4.1.38-fslc+gee67fc7 #12
rs requested.
length: 614400 offHardware name: Freescale i.MX7 Dual (Device Tree)
set: 0 timestamp type/source: mon[<800184e0>] (unwind_backtrace) from [<80013cfc>] (show_stack+0x20/0x24)
o/EoF
Buffer 0/0 mapped at addre[<80013cfc>] (show_stack) from [<8094421c>] (dump_stack+0x80/0x94)
ss 0x76d43000.
[<8094421c>] (dump_stack) from [<8003ac1c>] (warn_slowpath_common+0x94/0xc4)
[<8003ac1c>] (warn_slowpath_common) from [<8003ad08>] (warn_slowpath_null+0x2c/0x34)
[<8003ad08>] (warn_slowpath_null) from [<80602c60>] (vb2_start_streaming+0xe8/0x164)
[<80602c60>] (vb2_start_streaming) from [<80605930>] (vb2_internal_streamon+0x128/0x170)
[<80605930>] (vb2_internal_streamon) from [<806059b8>] (vb2_streamon+0x40/0x60)
[<806059b8>] (vb2_streamon) from [<7f00c614>] (mx6s_vidioc_streamon+0x50/0xa4 [mx6s_capture])
[<7f00c614>] (mx6s_vidioc_streamon [mx6s_capture]) from [<805eddcc>] (v4l_streamon+0x2c/0x30)
[<805eddcc>] (v4l_streamon) from [<805f1404>] (__video_do_ioctl+0x294/0x2f0)
[<805f1404>] (__video_do_ioctl) from [<805f0cec>] (video_usercopy+0x1d0/0x630)
[<805f0cec>] (video_usercopy) from [<805f116c>] (video_ioctl2+0x20/0x24)
[<805f116c>] (video_ioctl2) from [<805ec960>] (v4l2_ioctl+0x124/0x15c)
[<805ec960>] (v4l2_ioctl) from [<801465e0>] (do_vfs_ioctl+0x460/0x618)
[<801465e0>] (do_vfs_ioctl) from [<801467dc>] (SyS_ioctl+0x44/0x6c)
[<801467dc>] (SyS_ioctl) from [<8000fc00>] (ret_fast_syscall+0x0/0x3c)
---[ end trace 5417d473caa1347c ]---
Unable to start streaming: No buffer space available (105).
1 buffers released.
What is going wrong?
Thank in advance
Solved! Go to Solution.
Hi gb400
please try using the following command (assuming the camera is plugged in at boot time)
/unit_tests/mx6s_v4l2_capture.out -d /dev/video1 -m 0
with Demo Images, for example
https://www.nxp.com/webapp/Download?colCode=L4.1.15_1.2.0_iMX7D&appType=license&location=null
or other Demo Images found on
i.MX 6 / i.MX 7 Series Software and Development Tool|NXP
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi gb400
please try using the following command (assuming the camera is plugged in at boot time)
/unit_tests/mx6s_v4l2_capture.out -d /dev/video1 -m 0
with Demo Images, for example
https://www.nxp.com/webapp/Download?colCode=L4.1.15_1.2.0_iMX7D&appType=license&location=null
or other Demo Images found on
i.MX 6 / i.MX 7 Series Software and Development Tool|NXP
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi igorpadykov,
thanks for your reply.
With the demo image you linked me and the mx6s_v4l2_capture tool i've been able to finally capture an image from my ov5640 camera.
Now the next step of my work would be to test the camera with my custom image, based on the core-image-base (or a core-image-minimal as well).
I tried to install in my local.conf the imx-test recipe: the recipe installed in my rootfs the /unit_tests directory in which i can now find most of the test tools, except the mx6s_v4l2_capture.out!
I've also tried to take mx6s_v4l2_capture.out coming from Demo image (you adviced me) but it does not work because of missing libraries.
Any hint on how I can build and run this tool using my image on sabre imx7d?
Any hint will be appreciated,
Thanks!
gb