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 ...
ERROR: pipeline doesn't want to preroll.
Date: 2025-06-06 04:23 pm (UTC)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
showsWhen I try
gst-launch-1.0 libcamerasrc camera-name="\\_SB_.PC00.LNK1" ! xvimagesink
I get the following resultI 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.