I am also affected by this bug and have found a temporary working
solution for the integrated camera on my Dell Precision 5490 running
Ubuntu 25.04.

Problem:
The Intel MIPI Camera (OmniVision OV01A10 sensor, IPU6 driver) does not 
function in standard applications like Zoom, Cheese, or Guvcview when run as a 
normal user. While sudo cheese -d "Intel MIPI Camera" successfully displays a 
video feed, direct access by user applications or services fails. Logs show 
libcamera warnings about "Inappropriate ioctl for device" and "sensor kernel 
driver needs to be fixed," along with GStreamer "streaming stopped, reason 
not-negotiated (-4)" errors. This indicates a compatibility and negotiation 
issue between the libcamera stack and the V4L2 interface used by applications, 
specifically when the ipu6 driver is involved in a non-privileged context.

Solution:
A GStreamer pipeline can be used to capture the stream from libcamera and 
output it to a v4l2loopback virtual device, which applications like Zoom can 
then successfully utilize.

Prerequisites:

    v4l2loopback kernel module installed and loaded.

    GStreamer plugins: gstreamer1.0-libcamera, gstreamer1.0-plugins-good
(for videoconvert), and gstreamer1.0-plugins-bad (for v4l2sink).

Implementation Steps:

    Load v4l2loopback module:
    Ensure the virtual camera device (/dev/video0) is available.

    sudo modprobe v4l2loopback exclusive_caps=1

    Execute the GStreamer pipeline:
    Run this command in a terminal. It must remain active while the camera is 
in use.

    gst-launch-1.0 libcamerasrc ! videoconvert !
video/x-raw,format=YUY2,width=1024,height=768,framerate=30/1 ! v4l2sink
device=/dev/video0

        libcamerasrc: Captures video from the Intel MIPI Camera via the
libcamera backend.

        videoconvert: Converts the stream from libcamerasrc's native
output format (ABGR8888 at 1024x768) to YUY2. This is crucial as direct
negotiation was failing.

        video/x-raw,format=YUY2,width=1024,height=768,framerate=30/1:
Specifies the target output format, resolution, and framerate for the
v4l2sink.

        v4l2sink device=/dev/video0: Outputs the processed video stream
to the virtual V4L2 device (/dev/video0).

    Select the Virtual Camera in Applications:

        Launch Zoom (or other V4L2-compatible application).

        Navigate to its video settings.

        Select the v4l2loopback device, typically labeled "Virtual
Camera", "Dummy Video Device (0x0000)", or /dev/video0.

        The live camera feed should now be visible.

    Terminate the stream:
    To stop the virtual camera, return to the terminal running gst-launch-1.0 
and press Ctrl+C.

This workaround successfully bridges the libcamera stream to a V4L2
device, allowing compatibility with applications that do not natively
support libcamera or encounter issues with the ipu6 driver's direct V4L2
interface.

Please let me know if further details or logs from my system would be
helpful.

** Changed in: ffmpeg (Ubuntu)
       Status: Confirmed => Opinion

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2107304

Title:
  Intel MIPI Camera not working out of the box on 25.04 where it did on
  24.10

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ffmpeg/+bug/2107304/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to