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

Hello! Getting these ipu6 cameras working in past Ubuntu releases was often a struggle, but starting in 24.10, things would work out-of-the-box without any extra PPA installations. In the 25.04 beta, however, things have regressed and I’m unsure what has gone wrong. Would appreciate any pointers, or wondering if anyone else is struggling with the same.

ffplay of /dev/video0 shows the video test image…

ffplay /dev/video0

However, the camera is working on some level, because gstreamer will show an image:

gst-launch-1.0 libcamerasrc ! video/x-raw,width=1024,height=768 ! autovideosink

cam -l shows a bunch of errors and warnings, but does see a camera…

cam -l                                                                         
[0:14:07.156913161] [12220]  INFO Camera camera_manager.cpp:325 libcamera v0.3.1+64-ce690bd9
[0:14:07.203448240] [12221]  WARN CameraSensor camera_sensor.cpp:259 'ov01a10 3-0036': Recommended V4L2 control 0x009a0922 not supported
[0:14:07.203527956] [12221] ERROR V4L2 v4l2_subdevice.cpp:1086 'ov01a10 3-0036': Unable to get rectangle 2 on pad 0/0: Inappropriate ioctl for device
[0:14:07.203548609] [12221]  WARN CameraSensor camera_sensor.cpp:306 'ov01a10 3-0036': The PixelArraySize property has been defaulted to 1280x800
[0:14:07.203558030] [12221] ERROR V4L2 v4l2_subdevice.cpp:1086 'ov01a10 3-0036': Unable to get rectangle 1 on pad 0/0: Inappropriate ioctl for device
[0:14:07.203567521] [12221]  WARN CameraSensor camera_sensor.cpp:317 'ov01a10 3-0036': The PixelArrayActiveAreas property has been defaulted to (0, 0)/1280x800
[0:14:07.203582603] [12221] ERROR V4L2 v4l2_subdevice.cpp:1086 'ov01a10 3-0036': Unable to get rectangle 0 on pad 0/0: Inappropriate ioctl for device
[0:14:07.203594840] [12221]  WARN CameraSensor camera_sensor.cpp:325 'ov01a10 3-0036': Failed to retrieve the sensor crop rectangle
[0:14:07.203602607] [12221]  WARN CameraSensor camera_sensor.cpp:331 'ov01a10 3-0036': The sensor kernel driver needs to be fixed
[0:14:07.203609090] [12221]  WARN CameraSensor camera_sensor.cpp:333 'ov01a10 3-0036': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[0:14:07.205808530] [12221]  WARN CameraSensorProperties camera_sensor_properties.cpp:283 No static properties available for 'ov01a10'
[0:14:07.205827625] [12221]  WARN CameraSensorProperties camera_sensor_properties.cpp:285 Please consider updating the camera sensor properties database
[0:14:07.205838361] [12221]  WARN CameraSensor camera_sensor.cpp:479 'ov01a10 3-0036': Failed to retrieve the camera location
[0:14:07.205845456] [12221]  WARN CameraSensor camera_sensor.cpp:501 'ov01a10 3-0036': Rotation control not available, default to 0 degrees
[0:14:07.212106101] [12221]  WARN IPAProxy ipa_proxy.cpp:161 Configuration file 'ov01a10.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'
[0:14:07.212227065] [12221]  WARN IPASoft soft_simple.cpp:114 Failed to create camera sensor helper for ov01a10
Available cameras:
1: 'ov01a10' (\_SB_.PC00.LNK1)

v4l2-ctl --list-devices does show the ipu6 device at /dev/media0, and a bunch of other video devices. Unsure why that is.

v4l2-ctl --list-devices                                                        
ipu6 ():
        /dev/video1
        /dev/video2
        /dev/video3
        /dev/video4
        /dev/video5
        /dev/video6
        /dev/video7
        /dev/video8
        /dev/video9
        /dev/video10
        /dev/video11
        /dev/video12
        /dev/video13
        /dev/video14
        /dev/video15
        /dev/video16
        /dev/video17
        /dev/video18
        /dev/video19
        /dev/video20
        /dev/video21
        /dev/video22
        /dev/video23
        /dev/video24
        /dev/video25
        /dev/video26
        /dev/video27
        /dev/video28
        /dev/video29
        /dev/video30
        /dev/video31
        /dev/video32

ipu6 (PCI:0000:00:05.0):
        /dev/media0

Virtual Camera (platform:v4l2loopback-000):
        /dev/video0

dmesg output re: ipu6 seems OK-ish. There’s a message about IPU6 bridge init failed, but perhaps that’s noise given that gstreamer can read the camera fine.

➜  ~ sudo dmesg | grep ipu6
[   10.600627] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
[   22.119139] pci 0000:00:05.0: deferred probe pending: intel-ipu6: IPU6 bridge init failed
[   22.822604] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
[   22.840063] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
[   22.909654] intel-ipu6 0000:00:05.0: CSE authenticate_run done
[   22.909664] intel-ipu6 0000:00:05.0: IPU6-v3[a75d] hardware version 5

I’m on the 25.04 beta:

lsb_release -d
Description:    Ubuntu Plucky Puffin (development branch)

The driver settings window looks like:

The v4l2-relay service seems healthy, but I’m not sure it’s doing the relay with the correct params.

● v4l2-relayd.service - v4l2-relay daemon service
     Loaded: loaded (/usr/lib/systemd/system/v4l2-relayd.service; enabled; preset: enabled)
     Active: active (running) since Sun 2025-04-13 16:10:09 PDT; 19min ago
 Invocation: 1b6476675d2d495a9edd1c44ce6cbdea
   Main PID: 2706 (v4l2-relayd)
      Tasks: 5 (limit: 36844)
     Memory: 7.2G (peak: 7.4G)
        CPU: 57.687s
     CGroup: /system.slice/v4l2-relayd.service
             └─2706 /usr/bin/v4l2-relayd -i videotestsrc -o "appsrc name=appsrc caps=video/x-raw,format=YUY2,width=1280,height=720,framerate=30/1 ! videoconvert ! v4l2sink name=v4l2sink device=/dev/video0"

Apr 13 16:10:09 fpotter-5480-ubuntu systemd[1]: Starting v4l2-relayd.service - v4l2-relay daemon service...
Apr 13 16:10:09 fpotter-5480-ubuntu systemd[1]: Started v4l2-relayd.service - v4l2-relay daemon service.
Apr 13 16:10:09 fpotter-5480-ubuntu (sh)[2706]: v4l2-relayd.service: Referenced but unset environment variable evaluates to an empty string: SPLASHSRC
1 Like

Very possibly a regression in libcamera. Would you please submit a bug report?

Open a terminal and type:

ubuntu-bug libcamera0.4

Your computer will gather some necessary information. Make sure you fill-out the bug report information and be as detailed as possible.

2 Likes

Thank you. Filed here – Bug #2107304 “Intel MIPI Camera not working out of the box on 25...” : Bugs : libcamera package : Ubuntu

1 Like

I commented on the bug. Might actually be a regression in ffmpeg if ffplay won’t play it but Gstreamer will.

i don’t think it is ffmpeg related. if you look at how v4l2-relayd is started, it uses ‘videotestsrc’ as a source. which is the test image.

kervel@rheakapot:~$ ps auxwwwwwww |grep relay
root       1569 1.7 2.6 1114676 859792 ?     Ssl 14:35  0:13 /usr/bin/v4l2-relayd -i videotestsrc -o appsrc name=appsrc caps=video/x-raw,format=YU
Y2,width=1280,height=720,framerate=30/1 ! videoconvert ! v4l2sink name=v4l2sink device=/dev/video0
kervel    18559 0.0 0.0  9512 2256 pts/1   S+  14:48  0:00 grep --color=auto relay

Did you fix it? Got a Latitude 9330 and the MIPI cam doesn’t work on LTS and now I just update to 25.04 and still no luck.

For the LTS (24.04) you should check out:
https://www.dell.com/support/kbdoc/en-us/000225004/precision-5480-mobile-workstation-webcam-does-not-work-on-ubuntu-24-04?lwp=rt
and
https://wiki.ubuntu.com/IntelMIPICamera

I have a XPS 9340 and got the camera running on 24.04 and 24.10.

But as descriped in this thread, it stopped working after installing 25.04 (I did a re-install)

You re install 24.10 you meant ?

No, 25.04 (just released). So this issue above is present in the 25.04 pre-release, but also present in the final release. So yeah atm I don’t have my camera working…

24.04 and 24.10 both work, although you need to follow the correct guides for those versions, as out-of-the-box support wasn’t there for both. 25.04 should have fixed this as the needed patches and modules are now present in the kernel 25.04 uses, but unfortunately it looks like something else broke…

For what it’s worth and I really don’t fully understand how all these pieces come together…I was able to get the webcam kind of working…
If I issue the following command in a terminal:
gst-launch-1.0 libcamerasrc ! videoconvert ! video/x-raw,width=1920,height=1080,format=YUY2 ! v4l2sink device=/dev/video0
and then try to open google meet or MS teams in a browser, the webcam will be detected and work though quality is really terrible and colors are washed out. The command running in the terminal will keep the webcam active until you kill it.
I haven’t been able to figure out how to get v4l2 -relayd to only call this up when the browser accesses the webcam…probably because I have no clue how it works…

I just installed those packages, without success:

I’m sure I had this working before and then it stopped in the last month or so.