Bug 2413472

Summary: Dell XPS 13 9350 ipu7 + ov02c10 camera not working, requires vision-drivers
Product: [Fedora] Fedora Reporter: Gil Forcada <gil.gnome>
Component: kernelAssignee: Hans de Goede <hans>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 43CC: acaringi, adscvr, airlied, ecurtin, hans, hpa, javierm, josef, kazade, kernel-maint, linville, masami256, mchehab, mzamazal, ptalbert, steved, suraj.ghimire7, terjeros, wtaymans
Target Milestone: ---Keywords: Desktop
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2413656    
Bug Blocks:    
Attachments:
Description Flags
kernel logs
none
i2c-devices output
none
lsusb output
none
spi-devices output
none
kernel logs after installing vision-drivers
none
qcam output none

Description Gil Forcada 2025-11-07 21:29:15 UTC
As mentioned in [1] and then followed to [2], I attach the txt files generated as with linux kernel 6.17.7-300 and libcamera 0.5.2 the camera on my laptop is still not recognized by qcam nor Firefox nor GNOME camera app :-/

[1] https://hansdegoede.dreamwidth.org/31089.html
[2] https://fedoraproject.org/wiki/Changes/X86_MIPI_CameraHwEnablement#How_To_Test

Reproducible: Always

Steps to Reproduce:
1.turn on the laptop
2. run `qcam` on a terminal
3. no cameras are found :-/
Actual Results:
No camera is detected by any app that uses cameras

Expected Results:
That the camera works :)

Comment 1 Gil Forcada 2025-11-07 21:29:52 UTC
Created attachment 2113276 [details]
kernel logs

Comment 2 Gil Forcada 2025-11-07 21:30:18 UTC
Created attachment 2113277 [details]
i2c-devices output

Comment 3 Gil Forcada 2025-11-07 21:30:31 UTC
Created attachment 2113278 [details]
lsusb output

Comment 4 Gil Forcada 2025-11-07 21:30:44 UTC
Created attachment 2113279 [details]
spi-devices output

Comment 5 Hans de Goede 2025-11-07 22:03:52 UTC
Thank you for your bug report. I think this is another case of things not working because of the Intel vision drivers from: https://github.com/intel/vision-drivers.git not being in the upstream kernel.

Please try the following workaround:

1. "sudo dnf install kernel-devel-matched libcamera-qcam"

2. Reboot

3. Do *not* try to use the camera yet!

4. Run the following commands from a terminal:

git clone https://github.com/intel/vision-drivers.git
cd vision-drivers
make
sudo insmod intel_cvs.ko
sudo rmmod ov02c10
sudo modprobe ov02c10

5. Now try to use the camera by running "qcam". If qcam does not work please collect new "journalctl -b 0 -k" output.

If the camera works in qcam, then it should also work in Firefox. Note these new MIPI cameras only work in applications which support using pipewire to access the camera like Firefox and Snapshot (aka "Camera" in gnome).

Comment 6 Gil Forcada 2025-11-08 08:57:00 UTC
Hi Hans,

thanks for the input, I had to do some extra steps to get the `insmod intel_cvs.ko` to work, but even after that, it still does not work, I'm attaching the output you mentioned.

Comment 7 Gil Forcada 2025-11-08 08:58:05 UTC
Created attachment 2113327 [details]
kernel logs after installing vision-drivers

Comment 8 Hans de Goede 2025-11-08 19:36:40 UTC
Gil, It looks like the insmod intel_cvs.ko actually worked, the kernel log says:

de nov. 08 09:53:09 patufet kernel: Loading of unsigned module is rejected

and none of the usual messages related to this are shown. This is likely caused by secureboot being enabled. To easiest way to work around this is to (temporarily) disable secure-boot in your BIOS.

Comment 9 Gil Forcada 2025-11-09 08:24:12 UTC
Thanks Hans, we are making some progress!

After disabling secureboot and reinstalling the vision drivers the qcam works!

Firefox and GNOME's default Camera app though still do not seem to notice the camera :-/

And last thing I noticed is that after rebooting I have to reinstall the vision drivers again, without changing anything, is there a way to install it permanently?

I'm attaching the qcam logs, there is some errors and warnings.

Comment 10 Gil Forcada 2025-11-09 08:25:04 UTC
Created attachment 2113478 [details]
qcam output

Comment 11 Hans de Goede 2025-11-09 15:29:19 UTC
(In reply to Gil Forcada from comment #9)
> Thanks Hans, we are making some progress!
> 
> After disabling secureboot and reinstalling the vision drivers the qcam
> works!

That is great news, thank you for testing.

This also confirms that this is a kernel issue, so I'm changing the component to kernel.

> Firefox and GNOME's default Camera app though still do not seem to notice
> the camera :-/

This is likely caused by by these kind of cameras not really sending hotplug events when they become ready (once the ov02c10 has probed successfully after loading the vision drivers).

As a workaround you can do:

systemctl --user restart pipewire

That should be enough, but if e.g. "Camera" still does not see the camera then you can also try:

systemctl --user restart wireplumber

Note the snapshot / camera app now default to using Vulkan for rendering which is known to cause issues with some iGPU-s to work around this you can start it from a terminal using:

GSK_RENDERER=gl snapshot

> And last thing I noticed is that after rebooting I have to reinstall the
> vision drivers again, without changing anything, is there a way to install
> it permanently?

Yes, but you need to redo this every time you get a kernel update:

cd vision-drivers
make && sudo make modules_install

Depending on the load order of the modules you will likely still need to do the:

sudo rmmod ov02c10
sudo modprobe ov02c10

manually after the vision drivers have been loaded automatically, since the probing of the ov02c10 sensor will only work after the vision drivers have probed first.

There is a way to make the kernel wait with probing the ov02c10 sensor till the vision drivers have loaded, but atm the vision-drivers seem to only be needed on Dell laptops. This waiting to probe would apply to all laptop models breaking cameras on laptops from other vendors which currently work with the mainline kernel ootb.

Once the vision drivers are upstream we can enable the probe delay for the sensors on devices with a vision chip and then it will no longer be necessary to do any of this manually.

And once this is all done automatically the camera should also be done probing before pipewire starts so there should also be no need to restart pipewire.

For now you may want to just write a small shell script to run after login to do these steps for you.

> I'm attaching the qcam logs, there is some errors and warnings.

Those are all normal for some definition of normal. This is something which we need to cleanup, but atm the focus is on just getting things to work at all.

Comment 12 Hans de Goede 2025-11-09 16:41:44 UTC
p.s. question is the working image in qcam the right way up, or is it perhaps upside-down ?

There have been several bug reports (bug 2355032, bug 2368952) where the image on the ov02c10 is reported as being upside down. It seems that at least on some Dell models the sensor is actually mounted upside down.

There is a kernel patch pending upstream to fix the image if the sensor is actually mounted the right way up:

https://lore.kernel.org/linux-media/20250820-ov02c10-fix-v1-0-3fcca2cfbfbf@kernel.org/

which is not yet in the Fedora kernels. So if your image is the right way up now, then your laptop likely has the sensor mounted upside down ...

Comment 13 Gil Forcada 2025-11-09 20:16:59 UTC
Hi!

we are getting there! :) with the `GSK_RENDERER=gl snapshot` it makes `snapshot` (GNOME camera) to work, if not setting the GSK_RENDERER it fails with:

```
2025-11-09T19:52:24.300012Z  INFO snapshot::application::imp: Snapshot (org.gnome.Snapshot)
2025-11-09T19:52:24.300039Z  INFO snapshot::application::imp: Version: 49.0
2025-11-09T19:52:24.300041Z  INFO snapshot::application::imp: Datadir: /usr/share/snapshot
MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:981: FINISHME: support more multi-planar formats with DRM modifiers
MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:949: FINISHME: support YUV colorspace with DRM format modifiers
2025-11-09T19:52:24.485249Z  INFO ashpd::desktop::request: Creating a org.freedesktop.portal.Request /org/freedesktop/portal/desktop/request/1_221/ashpd_Wi3kCPN4kK
2025-11-09T19:52:24.486254Z  INFO ashpd::desktop::request: Received signal 'Response' on 'org.freedesktop.portal.Request'
2025-11-09T19:52:24.486273Z  INFO ashpd::proxy: Calling method org.freedesktop.portal.Camera:OpenPipeWireRemote

(snapshot:47887): Gdk-WARNING **: 20:52:25.207: Vulkan: ../src/intel/vulkan/xe/anv_kmd_backend.c:312: vm_bind failed with errno 22 (VK_ERROR_DEVICE_LOST)

(snapshot:47887): Gsk-WARNING **: 20:52:25.207: vkAllocateMemory(): The logical or physical device has been lost. (VK_ERROR_DEVICE_LOST) (-4)
Violació de segment       (s'ha bolcat la memòria)snapshot
```

Last line means "Segment violation". The report tool somehow was unable to push the report :-/

On Firefox we have some progress too: it works on https://mozilla.github.io/webrtc-landing/gum_test.html but on other services, like https://meet.jit.si/ it only shows the first frame if some transformations are applied, otherwise, without background it works!


Regarding the image, I'm not shown upside down, but there is a different glitch: GNOME's camera shows me correctly when moving my head right to left, but qcam shows my right-left movement reversed.

Comment 14 Hans de Goede 2025-11-10 11:20:20 UTC
About snapshot needing `GSK_RENDERER=gl snapshot` I have not gotten around to reporting a bug for this, since you can reproduce can you please file a bug for this here: https://gitlab.gnome.org/GNOME/snapshot/-/issues  Note chances are the snapshot developers will just ask you to file a bug against mesa, but snapshot is the best place to start.

> Regarding the image, I'm not shown upside down, but there is a different glitch: GNOME's camera shows me correctly when moving my head right to left, but qcam shows my right-left movement reversed.

This is a camera we are talking about, not a mirror. Remember the old tvhost joke: "on my left side, on the right side for the viewers at home" ? The camera is looking from you at the front side, so if you waive with your right hand, then from the camera's pov you are waiving with what for a person behind the camera is their left side. Just like when you are standing across a real person and looking at each other.

IOW qcam is showing the correct picture. Snapshot (and also most video-conferencing apps) will show you a mirrored image making it look like you are standing in front of a mirror since that is what most people expect.

So when you write "GNOME's camera shows me correctly ..., qcam shows ... reverse" qcam is actually showing the correct image and snapshot is reversing the left-right axis (aka mirroring) which is done on purpose.

Still this is good info to have this means that:

https://lore.kernel.org/linux-media/20250820-ov02c10-fix-v1-0-3fcca2cfbfbf@kernel.org/

is incorrect because it only inverts the y-axis flipping and since qcam is correct for you without that patch both x and y axis flipping should be inverted (which will result in an upside down image on your laptop ...).

Comment 15 Hans de Goede 2025-12-15 15:52:56 UTC
*** Bug 2347295 has been marked as a duplicate of this bug. ***