nagmat84 ([personal profile] nagmat84) wrote in [personal profile] hansdegoede 2025-06-06 04:23 pm (UTC)

ERROR: pipeline doesn't want to preroll.

Hans, first of all thank you for your great work. I ported your work to Gentoo and I was finally able to grab a video from the X1C cam with QCam from libcamera. I ported your kernel patches to 6.14.x-getoo and patches for Intel's usbio to Gentoo, I packaged libcamera 0.5.0 for Gentoo and at least the kernel/libcamera part seems to work. Yeah! I wished I could help more, but I am not much of a kernel programmer or embedded developer.

While qcam can grab a video from the OVTI08F4 sensor, GStreamer and Piperwire do not seem to work, in particular no user-land application (Kamoso, Firefox/Chrome, IMs) shows a camera.

gst-device-monitor-1.0 shows

Probing devices...

[0:20:00.491185629] [5667]  INFO Camera camera_manager.cpp:326 libcamera v0.5.0
[0:20:00.511750844] [5669] ERROR V4L2 v4l2_subdevice.cpp:1196 'ov08x40 4-0010': Unable to get rectangle 2 on pad 0/0: Inappropriate ioctl for device
[0:20:00.511779781] [5669]  WARN CameraSensor camera_sensor_legacy.cpp:401 'ov08x40 4-0010': The PixelArraySize property has been defaulted to 3856x2416
[0:20:00.511793232] [5669] ERROR V4L2 v4l2_subdevice.cpp:1196 'ov08x40 4-0010': Unable to get rectangle 1 on pad 0/0: Inappropriate ioctl for device
[0:20:00.511802727] [5669]  WARN CameraSensor camera_sensor_legacy.cpp:412 'ov08x40 4-0010': The PixelArrayActiveAreas property has been defaulted to (0, 0)/3856x2416
[0:20:00.511813631] [5669] ERROR V4L2 v4l2_subdevice.cpp:1196 'ov08x40 4-0010': Unable to get rectangle 0 on pad 0/0: Inappropriate ioctl for device
[0:20:00.511821823] [5669]  WARN CameraSensor camera_sensor_legacy.cpp:420 'ov08x40 4-0010': Failed to retrieve the sensor crop rectangle
[0:20:00.511830041] [5669]  WARN CameraSensor camera_sensor_legacy.cpp:426 'ov08x40 4-0010': The sensor kernel driver needs to be fixed
[0:20:00.511836688] [5669]  WARN CameraSensor camera_sensor_legacy.cpp:428 'ov08x40 4-0010': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[0:20:00.512216657] [5669]  WARN CameraSensorProperties camera_sensor_properties.cpp:463 No static properties available for 'ov08x40'
[0:20:00.512228592] [5669]  WARN CameraSensorProperties camera_sensor_properties.cpp:465 Please consider updating the camera sensor properties database
[0:20:00.512241917] [5669]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov08x40 4-0010': No sensor delays found in static properties. Assuming unverified defaults.
[0:20:00.515100062] [5669]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov08x40.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'
[0:20:00.515153213] [5669] ERROR V4L2 v4l2_subdevice.cpp:1196 'ov08x40 4-0010': Unable to get rectangle 0 on pad 0/0: Inappropriate ioctl for device
[0:20:00.515165374] [5669]  WARN CameraSensor camera_sensor_legacy.cpp:880 'ov08x40 4-0010': The analogue crop rectangle has been defaulted to the active area size

Device found:

        name  : \_SB_.PC00.LNK1
        class : Source/Video
        caps  : video/x-raw, format=RGBA, width=160, height=120
                ...
                video/x-raw, format=BGRx, width=[ 2, 3848, 2 ], height=[ 2, 2416, 2 ]
        gst-launch-1.0 libcamerasrc camera-name="\\_SB_.PC00.LNK1" ! ...

When I try gst-launch-1.0 libcamerasrc camera-name="\\_SB_.PC00.LNK1" ! xvimagesink I get the following result

LC_ALL=C gst-launch-1.0 libcamerasrc camera-name="\\_SB_.PC00.LNK1" ! xvimagesink
Setting pipeline to PAUSED ...
ERROR: from element /GstPipeline:pipeline0/GstAutoVideoSrc:autovideosrc0/
GstPipeWireSrc:autovideosrc0-actual-src-pipewir: stream error: no more input formats
Additional debug info:
../pipewire-1.4.2/src/gst/gstpipewiresrc.c(748): on_state_changed (): /
GstPipeline:pipeline0/GstAutoVideoSrc:autovideosrc0/
GstPipeWireSrc:autovideosrc0-actual-src-pipewir
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
ERROR: from element /GstPipeline:pipeline0/GstAutoVideoSrc:autovideosrc0/
GstPipeWireSrc:autovideosrc0-actual-src-pipewir: Internal data stream error.
Additional debug info:
../gstreamer-1.24.11/libs/gst/base/gstbasesrc.c(3177): gst_base_src_loop (): /
GstPipeline:pipeline0/GstAutoVideoSrc:autovideosrc0/
GstPipeWireSrc:autovideosrc0-actual-src-pipewir:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Freeing pipeline ...

I googled this error messages found an article in the SUSE help forum which pointed back to your article "IPU6 camera support in Fedora 41". I checked all the referenced patches

However, all those patches are already included in the upstream versions which I use as the base for my Gentoo packages.

[personal profile] hans: Do you have any educated guess what might be missing? Or could you give me a hint how I could debug the problem?


Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting