UVC Webcam buffer request error on colibri i.MX6ULL with yocto Linux 5.4.77 (dunfell)

Dear community,

we ran into an issue using USB webcams on the Yocto built Linux 5.4.77: the v4l2-compliance test reports buffer-ioctls errors. Correspondingly, video capturing with gstreamers v4l2src does not work. It is worth noting, that the same hardware worked fine with the zeus based image (http://git.toradex.com/toradex-bsp-platform.git -b LinuxImage4.0). Please find detailed information regarding system setup, hardware, and error messages below. I will be glad to provide any additional info if required.

As always, any help is highly appreciated.

System Setup:

repo init -u https://git.toradex.com/toradex-manifest.git -b dunfell-5.x.y -m tdxref/default.xml
...

settings:

MACHINE ?= "colibri-imx6ull"
DISTRO = "poky-tiny"

the image is built as a fitImage, adding gstreamer software packages and v4l-utils.The used device tree is ‘wifi-aster’. The linux-toradex Kernel is configured to support USB video devices:

CONFIG_USB_VIDEO_CLASS=y
CONFIG_USB_GSPCA=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VIDEO_MUX=y
CONFIG_SOC_CAMERA=y
CONFIG_VIDEO_MXC_CAPTURE=y
CONFIG_VIDEO_MXC_CSI_CAMERA=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_IMX_VDOA=y
CONFIG_VIDEO_CODA=y
CRYPTO_DEV_FSL_CAAM_RNG_API=y
CONFIG_CMA_SIZE_MBYTES=256

Camera devices

We have tested the following webcams:

  • Creative VF0700
  • ELP ELP-USBFHD04H-L180

The error is the same for both devices.

Error message

Running v4l2-compliance -T -d /dev/video0:

v4l2-compliance SHA: not available, 32 bits

                VIDIOC_G_SELECTION returned -1 (Invalid argument)
Compliance test for uvcvideo device /dev/video0:

Driver Info:
        Driver name      : uvcvideo
        Card type        : VF0700 Live! Cam Chat HD: VF070
        Bus info         : usb-ci_hdrc.0-1
        Driver version   : 5.4.77
        Capabilities     : 0x84a00001
                Video Capture
                Metadata 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:
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
        test second /dev/video0 open: OK
        test VIDIOC_QUERYCAP: OK
                VIDIOC_S_PRIORITY returned -1 (Resource busy)
        test VIDIOC_G/S_PRIORITY: OK
        test for unlimited opens: OK

                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
Debug ioctls:
                VIDIOC_DBG_G_REGISTER returned -1 (Not a tty)
        test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
                VIDIOC_LOG_STATUS returned -1 (Not a tty)
        test VIDIOC_LOG_STATUS: OK (Not Supported)

Input ioctls:
                VIDIOC_G_STD returned -1 (Not a tty)
                VIDIOC_G_TUNER returned -1 (Not a tty)
        test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
                VIDIOC_G_FREQUENCY returned -1 (Not a tty)
                VIDIOC_S_FREQUENCY returned -1 (Not a tty)
        test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
                VIDIOC_S_HW_FREQ_SEEK returned -1 (Not a tty)
        test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
                VIDIOC_ENUMAUDIO returned -1 (Not a tty)
        test VIDIOC_ENUMAUDIO: OK (Not Supported)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_ENUMINPUT returned -1 (Invalid argument)
                VIDIOC_S_INPUT returned -1 (Invalid argument)
        test VIDIOC_G/S/ENUMINPUT: OK
                VIDIOC_G_AUDIO returned -1 (Not a tty)
                VIDIOC_S_AUDIO returned -1 (Not a tty)
        test VIDIOC_G/S_AUDIO: OK (Not Supported)
        Inputs: 1 Audio Inputs: 0 Tuners: 0

Output ioctls:
                VIDIOC_G_MODULATOR returned -1 (Not a tty)
        test VIDIOC_G/S_MODULATOR: OK (Not Supported)
                VIDIOC_G_FREQUENCY returned -1 (Not a tty)
                VIDIOC_S_FREQUENCY returned -1 (Not a tty)
        test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
                VIDIOC_ENUMAUDOUT returned -1 (Not a tty)
        test VIDIOC_ENUMAUDOUT: OK (Not Supported)
                VIDIOC_G_OUTPUT returned -1 (Not a tty)
                VIDIOC_ENUMOUTPUT returned -1 (Not a tty)
                VIDIOC_S_OUTPUT returned -1 (Not a tty)
        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:
                VIDIOC_G_STD returned -1 (Not a tty)
                VIDIOC_S_STD returned -1 (Not a tty)
                VIDIOC_S_STD returned -1 (Not a tty)
                VIDIOC_ENUMSTD returned -1 (Not a tty)
                VIDIOC_QUERYSTD returned -1 (Not a tty)
        test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
                VIDIOC_G_DV_TIMINGS returned -1 (Not a tty)
                VIDIOC_ENUM_DV_TIMINGS returned -1 (Not a tty)
                VIDIOC_QUERY_DV_TIMINGS returned -1 (Not a tty)
        test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
                VIDIOC_DV_TIMINGS_CAP returned -1 (Not a tty)
        test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
                VIDIOC_G_EDID returned -1 (Not a tty)
                VIDIOC_S_EDID returned -1 (Not a tty)
        test VIDIOC_G/S_EDID: OK (Not Supported)

Control ioctls (Input 0):
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                fail: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-controls.cpp(216): missing control class for class 00980000
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                fail: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-controls.cpp(253): missing control class for class 009a0000
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERYMENU returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
                VIDIOC_QUERY_EXT_CTRL returned -1 (Invalid argument)
        test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: FAIL
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid a[   86.009362] uvcvideo: Failed to query (SET_CUR) UVC control 10 on unit 2: -32 (exp. 2).
rgument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                V[   86.024106] uvcvideo: Failed to query (SET_CUR) UVC control 10 on unit 2: -32 (exp. 2).
IDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
                VIDIOC_QUERYCTRL returned -1 (Invalid argument)
        test VIDIOC_QUERYCTRL: OK
                VIDIOC_S_CTRL returned -1 (Result not representable)
                VIDIOC_S_CTRL returned -1 (Result not representable)
                VIDIOC_S_CTRL returned -1 (Invalid argument)
                fail: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-controls.cpp(445): s_ctrl returned an error (22)
        test VIDIOC_G/S_CTRL: FAIL
                VIDIOC_S_EXT_CTRLS returned -1 (Invalid argument)
                fail: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-controls.cpp(695): s_ext_ctrls returned an error (22)
        test VIDIOC_G/S/TRY_EXT_CTRLS: FAIL
                VIDIOC_DQEVENT returned -1 (Not a tty)
                fail: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-controls.cpp(844): couldn't get event for control 'Brightness'
        test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
                VIDIOC_G_JPEGCOMP returned -1 (Not a tty)
                VIDIOC_S_JPEGCOMP returned -1 (Not a tty)
        test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
        Standard Controls: 12 Private Controls: 0

Format ioctls (Input 0):
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMESIZES returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMESIZES returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FMT returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMESIZES returned -1 (Invalid argument)
                VIDIOC_ENUM_FRAMEINTERVALS returned -1 (Invalid argument)
        test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
                VIDIOC_G_PARM returned -1 (Invalid argument)
                VIDIOC_S_PARM returned -1 (Invalid argument)
                warn: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-formats.cpp(1327): S_PARM is supported but doesn't report V4L2_CAP
_TIMEPERFRAME
                fail: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-formats.cpp(1222): reserved not zeroed
        test VIDIOC_G/S_PARM: FAIL
                VIDIOC_G_FBUF returned -1 (Not a tty)
        test VIDIOC_G_FBUF: OK (Not Supported)
                VIDI[   86.411239] uvcvideo: Failed to query (SET_CUR) UVC control 10 on unit 2: -32 (exp. 2).
OC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid ar[   86.429357] uvcvideo: Failed to query (SET_CUR) UVC control 10 on unit 2: -32 (exp. 2).
gument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
                VIDIOC_G_FMT returned -1 (Invalid argument)
        test VIDIOC_G_FMT: OK
                VIDIOC_TRY_FMT returned -1 (Invalid argument)
        test VIDIOC_TRY_FMT: OK
                VIDIOC_S_FMT returned -1 (Invalid argument)
                VIDIOC_S_FMT returned -1 (Resource busy)
                warn: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-formats.cpp(976): Could not set fmt2
        test VIDIOC_S_FMT: OK
                VIDIOC_G_SLICED_VBI_CAP returned -1 (Not a tty)
        test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
                VIDIOC_CROPCAP returned -1 (Invalid argument)
                VIDIOC_G_CROP returned -1 (Invalid argument)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_S_SELECTION returned -1 (Not a tty)
        test Cropping: OK (Not Supported)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_S_SELECTION returned -1 (Not a tty)
        test Composing: OK (Not Supported)
                VIDIOC_S_SELECTION returned -1 (Not a tty)
                VIDIOC_S_SELECTION returned -1 (Not a tty)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_S_SELECTION returned -1 (Not a tty)
                VIDIOC_S_SELECTION returned -1 (Not a tty)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
        test Scaling: OK (Not Supported)

Codec ioctls (Input 0):
                VIDIOC_ENCODER_CMD returned -1 (Not a tty)
        test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
                VIDIOC_G_ENC_INDEX returned -1 (Not a tty)
        test VIDIOC_G_ENC_INDEX: OK (Not Supported)
                VIDIOC_DECODER_CMD returned -1 (Not a tty)
        test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)

Buffer ioctls (Input 0):
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_REQBUFS returned -1 (Invalid argument)
                VIDIOC_REQBUFS returned -1 (Invalid argument)
                VIDIOC_QUERYBUF returned -1 (Not a tty)
                fail: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-buffers.cpp(610): q.reqbufs(node, 1)
        test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: FAIL
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_EXPBUF returned -1 (Resource busy)
                fail: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-buffers.cpp(747): VIDIOC_EXPBUF is supported, but the V4L2_MEMORY_
MMAP support is missing or malfunctioning.
                fail: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-buffers.cpp(748): 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)
                fail: ../../../v4l-utils-1.18.1/utils/v4l2-compliance/v4l2-test-buffers.cpp(1833): ret != EINVAL && ret != EBADR && ret != ENOTTY
        test Requests: FAIL
                VIDIOC_G_SELECTION returned -1 (Invalid argument)

                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_S_EXT_CTRLS returned -1 (Invalid argument)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
                VIDIOC_S_EXT_CTRLS returned -1 (Invalid argument)
                VIDIOC_G_SELECTION returned -1 (Invalid argument)
Total for uvcvideo device /dev/video0: 44, Succeeded: 37, Failed: 7, Warnings: 2

HI @developer

Thanks for writing to the Toradex Community!

Bsp 4.0 is not supported. Could you install one of regular Bsp 3.0 or Bsp 5.1 image and check if you still see the issue there?

Thanks and best regards,
Jaski

Dear @jaski.tx,
thanks for your reply. Actually we are targeting the Bsp 5.1, using which the described issue occurs.
(We use the ‘dunfell-5.x.y’ branch of the ‘toradex-manifest’ repo, which is tagged as 5.1.0. Please correct me if it is wrong)

The Tag is correct. Could you use the regular Linux Reference Multimedia Image and check if the issue is present there?

Thanks for the hint. After some testing with various setups and image types, it appears that v4l and gstreamer face some issues if musl is used (which is default for poky-tiny). Switching to glibc resolved the problem.

Perfect that it works. Thanks for the feedback.