NXP MCU 技术论坛
直播中

胡秋阳

13年用户 1541经验值
私信 关注
[问答]

v4l2-ctl无控制无亮度无曝光是为什么?

大家好,我对 v4l2-ctl 设置有疑问
眼镜:
处理器:IMX8MM,
内核版本:5.10.72 (hardknott yocto)
相机传感器:r MIPI-CSI OS02G10
总线:  V4L2_MBUS_CSI2_DPHY
格式:RAW10 / BG10 ( SBGGR10)  /1920x1080
问题:
OS02G10 的驱动程序已实现类似于 ov5640 的 V4L2 控制基础结构。它使用子设备概念。
V4L2 无法处理已实现的控件,例如:

root@user:~# v4l2-ctl --verbose -L
VIDIOC_QUERYCAP: ok

root@user:~# v4l2-ctl --set-ctrl brightness=192
unknown control 'brightness'
这是一个众所周知的问题,但希望有人能帮助我更快地找到解决方案。
如何解决?

root@user:~# v4l2-ctl --list-devices
i.MX6S_CSI (platform:32e20000.csi_bridge):
        /dev/video0

vsi_v4l2dec (platform:vsi_v4l2dec):
        /dev/video2

vsi_v4l2enc (platform:vsi_v4l2enc):
        /dev/video1

此处的所有其他详细信息:

root@user:~# v4l2-compliance
v4l2-compliance SHA: not available

[  334.897958] unknown pixelformat:'▒▒▒▒'
[  334.902049] mx6s-csi 32e20000.csi_bridge: Fourcc format (0xffffffff) invalid.
[  334.912066] unknown pixelformat:'    '
[  334.918660] mx6s-csi 32e20000.csi_bridge: Fourcc format (0x00000000) invalid.

Compliance test for mx6s-csi device /dev/video0:

Driver Info:
        Driver name      : mx6s-csi
        Card type        : i.MX6S_CSI
        Bus info         : platform:32e20000.csi_bridge
        Driver version   : 5.10.72
        Capabilities     : 0x84200001
                Video Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format

Required ioctls:
        test VIDIOC_QUERYCAP: OK

Allow for multiple opens:
        test second /dev/video0 open: OK
        test VIDIOC_QUERYCAP: OK
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-compliance.cpp(739): prio != match
        test VIDIOC_G/S_PRIORITY: FAIL
        test for unlimited opens: OK
        test invalid ioctls: OK
Debug ioctls:
        test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
        test VIDIOC_LOG_STATUS: OK (Not Supported)
Input ioctls:
        test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
        test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
        test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
        test VIDIOC_ENUMAUDIO: OK (Not Supported)
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-input-output.cpp(385): std == 0
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-input-output.cpp(455): invalid attributes for input 0
        test VIDIOC_G/S/ENUMINPUT: FAIL
        test VIDIOC_G/S_AUDIO: OK (Not Supported)
        Inputs: 0 Audio Inputs: 0 Tuners: 0
Output ioctls:
        test VIDIOC_G/S_MODULATOR: OK (Not Supported)
        test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
        test VIDIOC_ENUMAUDOUT: OK (Not Supported)
        test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
        test VIDIOC_G/S_AUDOUT: OK (Not Supported)
        Outputs: 0 Audio Outputs: 0 Modulators: 0
Input/Output configuration ioctls:
        test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
        test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
        test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
        test VIDIOC_G/S_EDID: OK (Not Supported)
Control ioctls:
        test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
        test VIDIOC_QUERYCTRL: OK (Not Supported)
        test VIDIOC_G/S_CTRL: OK (Not Supported)
        test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
        test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
        test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
        Standard Controls: 0 Private Controls: 0
Format ioctls:
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(312): Video Capture cap set, but no Video Capture formats defined
        test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: FAIL
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(1308): expected EINVAL, but got 19 when getting parms for buftype 1
        test VIDIOC_G/S_PARM: FAIL
        test VIDIOC_G_FBUF: OK (Not Supported)
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(441): fmt.type != type
        test VIDIOC_G_FMT: FAIL
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(716): Video Capture is valid, but no TRY_FMT was implemented
        test VIDIOC_TRY_FMT: FAIL
                warn: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(1099): S_FMT cannot handle an invalid pixelformat.
                warn: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(1100): This may or may not be a problem. For more information see:
                warn: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(1101)
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(1115): S_FMT cannot handle an invalid format

[  335.268377] ------------[ cut here ]------------
[  335.275401] WARNING: CPU: 0 PID: 739 at drivers/media/common/videobuf2/videobuf2-core.c:806 vb2_core_reqbufs+0x140/0x420
[  335.286266] Modules linked in: fsl_jr_uio caam_jr caamkeyblob_desc caamhash_desc caamalg_desc crypto_engine rng_core authenc libdes crct10dif_ce secvio caam error
[  335.286306]  virtio_rpmsg_bus rpmsg_ns imx_rproc imx_rpmsg_tty fuse
[  335.307098] CPU: 0 PID: 739 Comm: v4l2-compliance Not tainted 5.10.72-lts-5.10.y+ge4c14755b1cb #1
[  335.315970] Hardware name: user i.MX8MM Base Board (DT)
[  335.321199] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO BTYPE=--)
[  335.327209] pc : vb2_core_reqbufs+0x140/0x420
[  335.331566] lr : vb2_core_reqbufs+0x108/0x420
[  335.335921] sp : ffff80001c5e3b30
[  335.339235] x29: ffff80001c5e3b30 x28: ffff800011339508
[  335.344549] x27: 00000000c0145608 x26: ffff80001c5e3d68
[  335.349866] x25: ffff80001c5e3d68 x24: ffff00000448c178
[  335.355180] x23: 0000000000000001 x22: ffff80001c5e3d68
[  335.360494] x21: ffff000008b00000 x20: 0000000000000000
[  335.365808] x19: ffff00000448c110 x18: 0000000000000000
[  335.371122] x17: 0000000000000000 x16: 0000000000000000
[  335.376437] x15: 0000000000000000 x14: 0000000000000000
[  335.381751] x13: 0000000000000000 x12: 0000000000000000
[  335.387065] x11: 0000000000000000 x10: 0000000000000000
[  335.392382] x9 : 0000000000000000 x8 : 0000ffff00000001
[  335.397696] x7 : 0000000000000000 x6 : 0000000000000000
[  335.403010] x5 : ffff000004187010 x4 : 0000000000000000
[  335.408323] x3 : 0000000000000001 x2 : ffff80001c5e3b84
[  335.413637] x1 : ffff80001c5e3b8c x0 : ffff80001c5e3b88
[  335.418952] Call trace:
[  335.421401]  vb2_core_reqbufs+0x140/0x420
[  335.425417]  vb2_reqbufs+0x58/0x70
[  335.428823]  mx6s_vidioc_reqbufs+0x40/0x7c
[  335.432921]  v4l_reqbufs+0x4c/0x60
[  335.436322]  __video_do_ioctl+0x180/0x3e4
[  335.440331]  video_usercopy+0x1a0/0x450
[  335.444167]  video_ioctl2+0x18/0x24
[  335.447659]  v4l2_ioctl+0x44/0x64
[  335.450978]  __arm64_sys_ioctl+0xa8/0xf0
[  335.454903]  el0_svc_common.constprop.0+0x78/0x1c4
[  335.459694]  do_el0_svc+0x24/0x8c
[  335.463011]  el0_svc+0x14/0x20
[  335.466067]  el0_sync_handler+0x1a4/0x1b0
[  335.470077]  el0_sync+0x180/0x1c0
[  335.473391] ---[ end trace 70273d2f610c9f9a ]---

        test VIDIOC_S_FMT: FAIL
        test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(1439): doioctl(node, VIDIOC_G_SELECTION, &sel) != EINVAL
        test Cropping: FAIL
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(1439): doioctl(node, VIDIOC_G_SELECTION, &sel) != EINVAL
        test Composing: FAIL
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(1712): doioctl(node, VIDIOC_S_FMT, &fmt)
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-formats.cpp(1861): doioctl(node, VIDIOC_S_FMT, &fmt)
        test Scaling: FAIL
Codec ioctls:
        test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
        test VIDIOC_G_ENC_INDEX: OK (Not Supported)
        test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)

Buffer ioctls:
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-buffers.cpp(612): q.reqbufs(node, 1)
        test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: FAIL
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-buffers.cpp(749): VIDIOC_EXPBUF is supported, but the V4L2_MEMORY_MMAP support is missing or malfunctioning.
                fail: ../../../v4l-utils-1.20.0/utils/v4l2-compliance/v4l2-test-buffers.cpp(750): VIDIOC_EXPBUF is supported, but the V4L2_MEMORY_MMAP support is missing, probably due to earlier failing format tests.
        test VIDIOC_EXPBUF: OK (Not Supported)
        test Requests: OK (Not Supported)

Total for mx6s-csi device /dev/video0: 45, Succeeded: 34, Failed: 11, Warnings: 3

更多回帖

发帖
×
20
完善资料,
赚取积分