Fedora 40 issues with sensor ov02c10 and custom repository to track master branches
- Dominant language
- C
- Stars
- 251
- Forks
- 75
- PR merge metrics
- No merged PRs in 30d
Description
Dell Inspiron 5680 with Alder/Raptor Lake PCI devices and `ov02c10` sensor:
```
$ lspci | grep "Multimedia controller"
00:05.0 Multimedia controller: Intel Corporation Device a75d
$ lsmod | grep ^ov02c10
ov02c10 28672 0
```
I'm at the point where I reach this state, but can't figure out what is missing to get the camera working:
```
$ GST_DEBUG=1 gst-launch-1.0 icamerasrc device-name=ov02c10-uf ! video/x-raw,format=NV12,width=1280,height=720 ! autovideoconvert ! ximagesink
[...]
[05-08 09:40:15.389] CamHAL[INF] updateMediaFormat, media format in test repositorytuning: 0, media format for aic 0.
[05-08 09:40:15.390] CamHAL[ERR] Failed to find DevName for cameraId: 6, get video node: ov02c10 , devname: /dev/v4l-subdev1
[05-08 09:40:15.392] CamHAL[ERR] Failed to find DevName for cameraId: 6, get video node: ov02c10 , devname: /dev/v4l-subdev1
[05-08 09:40:15.392] CamHAL[ERR] init: Init privacy checker falied
0:00:02.643895227 14783 0x5556bf3385e0 ERROR icamerasrc gstcamerasrc.cpp:2874:gst_camerasrc_start: CameraId=6 failed to open libcamhal device.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...
[05-08 09:40:15.757] CamHAL[WAR] Seems camera device 6 is not closed properly (pid 14783).
```
I've run out of ideas to make this work, so if anyone has any idea I would be grateful to hear something.
After trying with the RPMFusion packages, the repackage of those from [Mathias Sou](https://thias.marmotte.net/2024/01/fedora-ipu6-camera-support/) and nothing was working, I've decided to try the master branch of all components, which meant repackaging everything due to differences. I took it as an exercise to get a deep understanding of this pile of... "work".
I've created a [test repository](https://negativo17.org/repos/ipu6-f40-x86_64/) for Fedora 40 x86_64 that containes `ipu6-drivers`, `ipu6-camera-bins`, `ipu6-camera-hal` and `icamerasrc` all built from the master branches plus the various patches from @jwrdegoede. I've been following his awesome work with `libcamera`, upstream kernel patches and integrations and all the stuff that is going here, and without him we would not be where we stand now. These packages contain only the packages mentioned above, not the `v4l2loopback/v4lrelayd` stuff as I'm still stuck to get the basic GStreamer stuff to work for the moment.
To install and test:
```
$ sudo wget -c https://negativo17.org/repos/ipu6-f40-x86_64.repo -O /etc/yum.repos.d/ipu6-f40-x86_64.repo
$ sudo dnf install ipu6-driver gstreamer1-plugin-icamerasrc
Last metadata expiration check: 0:01:12 ago on Wed 08 May 2024 09:52:05 AM CEST.
Dependencies resolved.
============================================================================================
Package Arch Version Repository Size
============================================================================================
Installing:
gstreamer1-plugin-icamerasrc x86_64 0-1.20240411git9b2f7e3.fc40 ipu6-f40-x86_64 97 k
ipu6-camera-hal x86_64 0-1.20240411gitf073cb6.fc40 ipu6-f40-x86_64 7.7 M
Installing dependencies:
akmod-ipu6 x86_64 0-1.20240418git71e0c69.fc40 ipu6-f40-x86_64 305 k
intel-vsc-firmware noarch 20240410-1.fc40 updates 7.5 M
ipu6-camera-bins x86_64 0-1.20240411git814c869.fc40 ipu6-f40-x86_64 2.0 M
Transaction Summary
============================================================================================
Install 6 Packages
Total download size: 18 M
Installed size: 73 M
Is this ok [y/N]:
```
If you prefer DKMS:
```
$ sudo dnf install dkms-ipu6 gstreamer1-plugin-icamerasrc
Last metadata expiration check: 0:02:02 ago on Wed 08 May 2024 09:52:05 AM CEST.
Dependencies resolved.
==============================================================================================
Package Arch Version Repository Size
==============================================================================================
Installing:
dkms-ipu6 noarch 0-1.20240418git71e0c69.fc40 ipu6-f40-x86_64 227 k
gstreamer1-plugin-icamerasrc x86_64 0-1.20240411git9b2f7e3.fc40 ipu6-f40-x86_64 97 k
Installing dependencies:
dkms noarch 3.0.13-1.fc40 fedora 87 k
ipu6-camera-bins x86_64 0-1.20240411git814c869.fc40 ipu6-f40-x86_64 2.0 M
ipu6-camera-hal x86_64 0-1.20240411gitf073cb6.fc40 ipu6-f40-x86_64 7.7 M
Transaction Summary
==============================================================================================
Install 7 Packages
Total download size: 18 M
Installed size: 75 M
Is this ok [y/N]:
```
Then just reboot, everything module and binary wise should be properly installed.
Main differences from @jwrdegoede / RPMFusion packages:
- Based on master branch, `libcamhal` is now per-architecture (i.e. different between `ipu_adl`, `ipu_mtl`, etc.) and some more small building difference.
- There are both DKMS and akmod variations of the kernel module packages, up to the user what to install.
- I've used a simple `ldconfig` configuration file to find the libraries in the `udev` [rule](https://github.com/negativo17/ipu6-camera-hal/blob/master/60-intel-ipu6.rules), I found the `udev` rule + RPATH too complicated for my taste.
- It's using Fedora's own IVSC firmware (upstream) files from the main repositories.
Source code is here:
- https://github.com/negativo17/ipu6-camera-bins
- https://github.com/negativo17/ipu6-camera-hal
- https://github.com/negativo17/gstreamer1-plugin-icamerasrc
- https://github.com/negativo17/dkms-ipu6
- https://github.com/negativo17/ipu6-kmod
Contributor guide
Assessment
This issue has not been assessed yet.