Bug 2333347 - IPU6 camera on Dell XPS 9x40 models using ov02c10 sensor not working
Summary: IPU6 camera on Dell XPS 9x40 models using ov02c10 sensor not working
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: rawhide
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Hans de Goede
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 2325010 (view as bug list)
Depends On:
Blocks: 2300336 2347295 2355032
TreeView+ depends on / blocked
 
Reported: 2024-12-19 15:36 UTC by Hans de Goede
Modified: 2025-05-23 20:57 UTC (History)
27 users (show)

Fixed In Version: kernel-6.14.6-300.fc42
Clone Of:
Environment:
Last Closed: 2025-05-23 20:43:05 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Hans de Goede 2024-12-19 15:36:46 UTC
This is a tracking bug for getting OVTI02C1 / ov02c10 sensor support added to the mainline and Fedora kernels.

This sensors is known to be used on at least the following models:

Dell XPS 13 9340
Dell XPS 14 9440
Dell XPS 16 9640

A driver for this has been posted upstream:
https://lore.kernel.org/linux-media/20241120015726.778892-1-heimir.sverrisson@gmail.com/

And it has been confirmed that this makes the camera work on the above laptop models.

Reproducible: Always

Comment 1 Hans de Goede 2024-12-19 18:49:31 UTC
Version 6 of the driver was just posted upstream:
https://lore.kernel.org/linux-media/20241219175128.40871-1-heimir.sverrisson@gmail.com/

Comment 2 Hans de Goede 2024-12-19 23:10:22 UTC
*** Bug 2325010 has been marked as a duplicate of this bug. ***

Comment 3 Ingvar Hagelund 2025-01-14 10:49:00 UTC
I compiled and loaded this driver on my Dell XPS 13 9340 (0C87). The driver loads, but the camera is not functional in Firefox or Chromium yet.

Looks like there are automatic or manual config settings that are missing somewhere. Is this something that may be added by hand, or do I have to wait for driver updates?

$ uname -r
6.12.9-200.fc41.x86_64

$ modinfo ov02c10
filename:       /lib/modules/6.12.9-200.fc41.x86_64/kernel/drivers/media/i2c/ov02c10.ko.xz
license:        GPL
description:    OmniVision OV02C10 sensor driver
author:         Hao Yao <hao.yao>
alias:          acpi*:OVTI02C1:*
depends:        videodev,v4l2-cci,v4l2-async,v4l2-fwnode,mc
name:           ov02c10
retpoline:      Y
vermagic:       6.12.9-200.fc41.x86_64 SMP preempt mod_unload 

$ lsmod | grep ov02
ov02c10                28672  0
v4l2_cci               12288  1 ov02c10
v4l2_fwnode            36864  8 ov02c10,ivsc_csi,intel_ipu6_isys
v4l2_async             32768  4 v4l2_fwnode,ov02c10,ivsc_csi,intel_ipu6_isys
videodev              417792  17 v4l2_async,v4l2_fwnode,videobuf2_v4l2,ov02c10,ivsc_csi,v4l2loopback,intel_ipu6_isys
mc                     90112  9 v4l2_async,videodev,videobuf2_v4l2,ov02c10,ivsc_csi,intel_ipu6_isys,videobuf2_common

$ cam -l
[0:48:12.990121673] [14196]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[0:48:13.001073201] [14199]  WARN CameraSensor camera_sensor.cpp:257 'ov02c10 17-0036': Recommended V4L2 control 0x009a0922 not supported
[0:48:13.001084180] [14199] ERROR V4L2 v4l2_subdevice.cpp:1085 'ov02c10 17-0036': Unable to get rectangle 2 on pad 0/0: Inappropriate ioctl for device
[0:48:13.001089564] [14199]  WARN CameraSensor camera_sensor.cpp:304 'ov02c10 17-0036': The PixelArraySize property has been defaulted to 1928x1092
[0:48:13.001093037] [14199] ERROR V4L2 v4l2_subdevice.cpp:1085 'ov02c10 17-0036': Unable to get rectangle 1 on pad 0/0: Inappropriate ioctl for device
[0:48:13.001095812] [14199]  WARN CameraSensor camera_sensor.cpp:315 'ov02c10 17-0036': The PixelArrayActiveAreas property has been defaulted to (0, 0)/1928x1092
[0:48:13.001099486] [14199] ERROR V4L2 v4l2_subdevice.cpp:1085 'ov02c10 17-0036': Unable to get rectangle 0 on pad 0/0: Inappropriate ioctl for device
[0:48:13.001102082] [14199]  WARN CameraSensor camera_sensor.cpp:323 'ov02c10 17-0036': Failed to retrieve the sensor crop rectangle
[0:48:13.001104429] [14199]  WARN CameraSensor camera_sensor.cpp:329 'ov02c10 17-0036': The sensor kernel driver needs to be fixed
[0:48:13.001106509] [14199]  WARN CameraSensor camera_sensor.cpp:331 'ov02c10 17-0036': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[0:48:13.001417188] [14199]  WARN CameraSensorProperties camera_sensor_properties.cpp:293 No static properties available for 'ov02c10'
[0:48:13.001428614] [14199]  WARN CameraSensorProperties camera_sensor_properties.cpp:295 Please consider updating the camera sensor properties database
[0:48:13.001432512] [14199]  WARN CameraSensor camera_sensor.cpp:477 'ov02c10 17-0036': Failed to retrieve the camera location
[0:48:13.001434891] [14199]  WARN CameraSensor camera_sensor.cpp:499 'ov02c10 17-0036': Rotation control not available, default to 0 degrees
[0:48:13.001877915] [14199]  WARN IPAProxy ipa_proxy.cpp:160 Configuration file 'ov02c10.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'
[0:48:13.001886351] [14199]  WARN IPASoft soft_simple.cpp:114 Failed to create camera sensor helper for ov02c10


$ sudo dmesg | grep -i ipu6 
[   22.487503] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
[   22.487974] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   22.551612] intel-ipu6 0000:00:05.0: FW version: 20230925
[   22.557907] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   22.618043] intel-ipu6 0000:00:05.0: FW version: 20230925
[   22.628301] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   22.667758] intel-ipu6 0000:00:05.0: FW version: 20230925
[   22.819847] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   22.867580] intel-ipu6 0000:00:05.0: FW version: 20230925
[   22.875303] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   22.942397] intel-ipu6 0000:00:05.0: FW version: 20230925
[   22.954145] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   22.990732] intel-ipu6 0000:00:05.0: FW version: 20230925
[   23.176771] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   23.241551] intel-ipu6 0000:00:05.0: FW version: 20230925
[   23.265265] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   23.392488] intel-ipu6 0000:00:05.0: FW version: 20230925
[   23.505302] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   23.586010] intel-ipu6 0000:00:05.0: FW version: 20230925
[   23.697090] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   23.813329] intel-ipu6 0000:00:05.0: FW version: 20230925
[   23.828884] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   23.891466] intel-ipu6 0000:00:05.0: FW version: 20230925
[   23.902930] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   23.965391] intel-ipu6 0000:00:05.0: FW version: 20230925
[   35.592142] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   35.629632] intel-ipu6 0000:00:05.0: FW version: 20230925
[   35.635439] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[   35.657185] intel-ipu6 0000:00:05.0: Found supported sensor OVTI02C1:00
[   35.657297] intel-ipu6 0000:00:05.0: Connected 1 cameras
[   35.662248] intel-ipu6 0000:00:05.0: FW version: 20230925
[   35.663820] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
[   35.700172] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
[   35.746584] intel-ipu6 0000:00:05.0: CSE authenticate_run done
[   35.746594] intel-ipu6 0000:00:05.0: IPU6-v4[7d19] hardware version 6

Comment 4 Hans de Goede 2025-01-14 11:42:22 UTC
(In reply to Ingvar Hagelund from comment #3)
> I compiled and loaded this driver on my Dell XPS 13 9340 (0C87). The driver
> loads, but the camera is not functional in Firefox or Chromium yet.

Note, this:

> [0:48:13.001886351] [14199]  WARN IPASoft soft_simple.cpp:114 Failed to
> create camera sensor helper for ov02c10

is just a warning, as are all the other "cam -l" messages.

Have you tried running "qcam" ? ("sudo dnf install libcamera-qcam")
based on your logs, it looks like that should just work.

If qcam does not work, please provide the full output of trying
to run qcam.

Comment 5 Ingvar Hagelund 2025-01-14 12:42:35 UTC
Wow. Yes, qcam works!

So, what is missing for this to work in the typical video conference app in web browser?

Ingvar

Comment 6 Ingvar Hagelund 2025-01-14 12:54:39 UTC
For the record: It works fine with qcam. It kind-of works with cheese, but then with a very cropped or zoomed in image. It does not yet work with Firefox nor Chromium.

Comment 7 Hans de Goede 2025-01-14 14:33:55 UTC
(In reply to Ingvar Hagelund from comment #6)
> For the record: It works fine with qcam.

That is good to hear.

> It kind-of works with cheese, but
> then with a very cropped or zoomed in image.

Cheese has been replaced with the "camera" app, please give that one a try. If that does not work, make sure you have all the necessary packages installed, see:

https://fedoraproject.org/wiki/Changes/IPU6_Camera_support#How_To_Test

You should also be able to fix the "zoom" issue in cheese by going to preferences and changing both the photo and the video resolution to 1920x1080. The software ISP does not do scaling, instead it crops if an application asks for a lower resolution, leading to this "zoom" effect.

> It does not yet work with Firefox nor Chromium.

Chromium not working is expected. For Firefox please see:

https://fedoraproject.org/wiki/Changes/IPU6_Camera_support#How_To_Test

And if the gum_test page does not work, please see Jan Grulich's blogpost about Firefox pipewire camera support:

https://jgrulich.cz/2024/12/13/when-your-webcam-doesnt-work-solving-firefox-and-pipewire-issues/

---

By the way since you have the camera working in qcam, proving that the sensor driver works, it would be great if you could reply to the driver posting with a:

Tested-by: Ingvar Hagelund <email>

Assuming you have an email address which you are happy to use on public mailinglists. To reply save: https://lore.kernel.org/linux-media/20241219175128.40871-1-heimir.sverrisson@gmail.com/raw as .eml file, open it in your email client and use reply-to-all. Note that in Thunderbird at least you need to keep the eml file around after opening it until you are done with sending the reply (dunno why).

Comment 8 Ingvar Hagelund 2025-01-15 08:24:42 UTC
Thanks again. OBS seems to work well with the camera. Then "proxying" it as a virtual camera works fine with Firefox, so that is a functional workaround.

Ingvar

Comment 9 Ingvar Hagelund 2025-01-15 16:16:37 UTC
For what it's worth: On kernel-6.12.9-200.fc41 and the driver mentioned above in this bug, after having used this through the day, the camera is now available also directly in firefox, ie. I don't have to proxy it via OSB. It defaults to a zoomed in (cropped) picture, on a camera named "ov02c10".

v4l2-ctl --list-devices shows both the working ipu6 camera, and even the OBS Virtual Camera, also after reboot (and without starting obs), so something is caching this information, probably also making the camera work in firefox.

Is there a way to control the zoom/crop/resolution for the camera image. And other controls for that matter. I reach dead ends when trying to probe the device with v4l2-ctl

Ingvar

Comment 10 jan p. springer 2025-01-18 05:38:11 UTC
so, when is the ov02c10 driver to be expected becoming part of the standard kernel install/update? also, will people on cc: be notified about its availability?

Comment 11 Hans de Goede 2025-01-19 19:02:05 UTC
(In reply to jan p. springer from comment #10)
> so, when is the ov02c10 driver to be expected becoming part of the standard
> kernel install/update?

It will be merged into linux-media/next When it has passed upstream review.

> will people on cc: be notified about its availability?

yes.

Comment 12 Hans de Goede 2025-02-20 13:58:13 UTC
Status update on this:

There is a v7 posting of the driver upstream which you can try adding to a local kernel build:

https://lore.kernel.org/linux-media/20250116232207.217402-1-heimir.sverrisson@gmail.com/

Heimir who has been so kind to work on upstreaming this indicated that he does not have time to address Sakari's review remarks, so I'm working on preparing a v8 submission myself. This is pretty high on my TODO list, so I hope to submit a v8 upstream sometime the next couple of weeks.

Comment 13 Ingvar Hagelund 2025-02-21 12:50:15 UTC
I have been running Heimir's v7 on my Dell XPS 13 9340 for a couple of weeks now, and it works well for my use. I'm missing tools for adjusting colors, zoom/cut, white balance, etc when using the camera directly in a browser, but besides that, it is fine.

Cheese used to be unstable with this camera, but it now works fine as well, and it also have access to some controls, which is great. (I don't know if these are actual camera controls, or just filter rendering of the image in software.)

Ingvar

Comment 14 Luke Benstead 2025-02-24 10:37:03 UTC
Does anyone know if this also fixes the camera on the Dell XPS 13 94*5*0? I believe it might be the same sensor? How can I find out?

Comment 15 Hans de Goede 2025-02-24 11:26:51 UTC
(In reply to Luke Benstead from comment #14)
> Does anyone know if this also fixes the camera on the Dell XPS 13 94*5*0? I
> believe it might be the same sensor? How can I find out?

Please file a new bug for this gathering the logs described here:

https://fedoraproject.org/wiki/Changes/X86_MIPI_CameraHwEnablement#How_To_Test

and attach those logs to the new bug. Please Cc me on the new bug.

Comment 16 Luke Benstead 2025-02-24 12:24:49 UTC
Done. Thank you! https://bugzilla.redhat.com/show_bug.cgi?id=2347295

Comment 17 Hans de Goede 2025-03-26 21:52:58 UTC
I have prepared a test-kernel with the following patches:

1. 2 hi566 power-on sequence fixes (not posted upstream yet)
2. ov02c10 support https://lore.kernel.org/linux-media/20250319145927.70534-1-hdegoede@redhat.com/
3. ov02e10 support https://lore.kernel.org/linux-media/20250325-b4-media-comitters-next-25-03-13-ov02e10-v2-2-4d933ac8cff6@linaro.org/
4. Lattice / usbio handshake pin support https://lore.kernel.org/platform-driver-x86/20250325161340.342192-1-hdegoede@redhat.com/

This should make the camera on the laptop from this bug work, please give the test kernel a try:

https://koji.fedoraproject.org/koji/taskinfo?taskID=130775742

Here are some instructions for directly installing a kernel from koji:

https://fedorapeople.org/~jwrdegoede/kernel-test-instructions.txt

Comment 18 chiappone 2025-03-27 03:42:02 UTC
I installed the test-kernal on my Dell XPS 9640, the webcam worked in Firefox but not in Chrome or gnome apps like Cheese or Camera.

Comment 19 Maarten Bezemer 2025-03-27 12:01:54 UTC
I installed this kernel on my Dell XPS 9640 (running Arch Linux), the webcam showed up in qcam and was functioning (albeit with the 'washed' colors).

Comment 20 Ingvar Hagelund 2025-04-08 21:07:08 UTC
kernel-6.14.0-63.ipu6.fc42 works fine on my Dell XPS 13 9340. The camera works as expected. A bit "washed" colors, though with appropriate lightening, it is not that bad.

Functional in obs, firefox, cheese, qcam, and Gnome camera. When switching among apps, I sometime have to kill and restart an app to make it "pick up" the camera feed again. But it works fine for daily use.

Also resolution/zoom (actually crop) functionality works. https://webcamtests.com/ discovers the highest available resolution automatically in firefox, and it is possible to select resolution in for example Jitsi by giving the web app url options. cheese will crash if you try to set a non-supported resolution (may be reset with dconf-editor). 1920x1080 works fine.

Does not work yet with chromium (nor Google Chrome) yet, as expected.

Ingvar

Comment 21 Ingvar Hagelund 2025-04-24 08:54:34 UTC
Upgraded to Fedora 42. Building the module against kernel-6.14.{1,2,3}2-300.fc42 the driver works fine with qcam, but no longer with Firefox or OBS. Using  Hans' build kernel-6.14.0-63.ipu6.fc42 still works fine.

Are there changes in kernel-6.14.{1-3} that would break stuff for this driver, or the ipu6 stack in general?

Ingvar

Comment 22 Ingvar Hagelund 2025-04-24 09:16:14 UTC
Wireplumber segfaulted. See bz #2362013

Comment 23 Ingvar Hagelund 2025-04-24 10:49:42 UTC
Booting kernels back and forth, fiddling with OBS, stopping and starting its virtual camera, and now it seems stable again, working both in OBS and Firefox. I don't think I did any real changes.

Comment 24 Ingvar Hagelund 2025-04-24 11:15:53 UTC
Sorry for spamming the bug. I'll stop now, at least for today.

Fiddling more, it seems that "initializing" the camera in some way with by starting OBS using the camera as an input source, and *keeping OBS open*, the camera stays functional in Firefox. Sometimes it seems OBS has a similar problem, it is unable to use the camera. Then starting and stopping qcam (which always works), and then OBS, and we are back in Firefox as well.

Strange.

Settings in OBS:
Using "Video Capture Device (PipeWire) (BETA)"
Device: Built-in Front Camera
Video Format: XBGR8888
Resolution: 1920x1080


Output from OBS seems normal at first glance:

info: [camera-portal] Successfully accessed cameras
info: [pipewire] Server version: 1.4.2
info: [pipewire] Library version: 1.4.2
info: [pipewire] Header version: 1.4.1
info: [pipewire] Created registry 0x5583da04cfa0
info: [camera-portal] Found device libcamera_input.__SB_.PC00.LNK1
info: [camera-portal] streaming camera 'libcamera_input.__SB_.PC00.LNK1'
info: [pipewire] Created stream 0x7f98ac002760
info: [pipewire] Stream 0x7f98ac002760 state: "connecting" (error: none)
info: [pipewire] Playing stream 0x7f98ac002760
info: [pipewire] Stream 0x7f98ac002760 state: "paused" (error: none)
info: [pipewire] Negotiated format:
info: [pipewire]     Format: 11 (Spa:Enum:VideoFormat:RGBA)
info: [pipewire]     Size: 1920x1080
info: [pipewire]     Framerate: 30/1
info: [pipewire] Stream 0x7f98ac002760 state: "streaming" (error: none)

All this still on Fedora 42, kernel 6.14.3-300.fc42.x86_64 and v11 of the ov02c10 driver

Ingvar

Comment 25 jan p. springer 2025-05-02 23:57:10 UTC
upgraded to fedora 42, camera still not working (using https://webcamtests.com/ with stock firefox). is there a solution in sight?

Comment 26 chiappone 2025-05-19 14:55:07 UTC
Whats the latest with this, any update?

Comment 27 Ingvar Hagelund 2025-05-20 11:21:16 UTC
Status: With kernel-6.14.6-300.fc42, the driver is included in Fedora, thanks to Hans de Goede's excellent work. Works with some quirks on my Dell XPS 13 9340. I use it daily.

General:
Colors a bit washed out, specially with bright light, like in the window sill on a sunny day. Auto-adjusting of White balance does not seem to work particulary well. Driver still reports configuration file not found and fails to report various properties, but that is as expected at this stage.

Apps:
qcam: Works fine
GNOME Camera app: Works fine
OBS: Works fine with "Video Capture Device (PipeWire)". Select Video Format XBGR8888 and Resolution 1920x1080
Firefox: Partly, it will work the first couple of times you enter web apps like webcamtests.com or jitsi. Then it freezes up, and you will have to restart Firefox. Workaround: Start OBS and let it run in the background(!). Then, the camera works fine in Firefox as well. You don't need to use the OBS virtual camera. Just leave OBS running with the camera on, and Firefox works. (I'd like an explanaition on why this works, please.) On webapps that let you choose, use "Built-in Front Camera" with 1920x1080 resolution
Cheese: Same as in Firefox

Apps that miss PipeWire capture compatibility may use the OBS Virtual Camera function as workaround (just google it). Tested working in chromium, camoroama, fswebcam, vlc, and will probably work fine with any v4l compatible app.

Ingvar

Comment 28 jan p. springer 2025-05-23 17:22:12 UTC
(In reply to jan p. springer from comment #25)
> upgraded to fedora 42, camera still not working (using
> https://webcamtests.com/ with stock firefox). is there a solution in sight?

since 6.14.6-300.fc42.x86_64, firefox can see and use the camera, [https://webcamtests.com/] works as well. however, colors are very washed out.

Comment 29 Hans de Goede 2025-05-23 20:43:05 UTC
The ov02c10 sensor patch has now landed upstream:
https://git.linuxtv.org/media.git/commit/?id=44f89010dae0eff6aabb9c14fb4b1001542498b4

And I've backported this to the Fedora kernels starting with kernel-6.14.6-300.fc42.

Which Ingvar and Jan Springer already noticed. Ingvar, Jan thank you for your testing and for reporting your findings.

The colors being washed out and/or the image possibly being a bit over or under exposed is expected behavior ATM, this is due to the software ISP needing more work to improve the image quality.

Since this bug was for tracking adding ov02c10 sensor support to the Fedora kernels, I'm now closing this.

Comment 30 Hans de Goede 2025-05-23 20:57:12 UTC
Note there also is a software-ISP issue where in some cases the auto-exposure algorithm gets into an oscillation and the image flickers pretty badly.

If your ov02c10 camera still does not work after these changes (and with he USBIO drivers installed from rpmfusion) and you've not filed a bug for your laptop model already please file a bug following these instructions:

https://fedoraproject.org/wiki/Changes/X86_MIPI_CameraHwEnablement#How_To_Test


Note You need to log in before you can comment on or make changes to this bug.