Skip to content

[Bug] Meteor Lake (Dell Precision 5490): OV01A10 sensor works in V4L2 but fails in Libcamera/HAL (Missing Tuning/Ghost Devices) #161

@hexxawax

Description

@hexxawax

To the IPU6 development team,

I am submitting this report concerning a critical failure of the IPU6 Camera HAL stack on a modern Intel Meteor Lake platform running a bleeding-edge Ubuntu kernel. The issue lies in the user-space component's inability to correctly initialize the camera sensor, leading to application failure despite the core kernel driver being functional.


1. System Environment

The hardware and software configuration on which this issue has been reproduced is as follows:

  • Device: Dell Precision 5490
  • CPU: Intel Core Ultra 7 165H (Meteor Lake)
  • OS: Ubuntu 24.10 (Questing)
  • Kernel: 6.17.0-7-generic
  • Sensor: OmniVision OV01A10
  • HAL Package Version: libcamhal-ipu6epmtl

2. Detailed Problem Description

The camera sensor initializes successfully at the kernel level. Applications that use the legacy V4L2 API, such as Cheese are able to load the fallback driver and display a functional image.

However, when utilizing modern applications that rely on the Libcamera API (e.g., Firefox, Zoom, GStreamer with libcamerasrc), the user-space HAL fails catastrophically. The primary manifestation of this failure is twofold:
Ghost Devices: Libcamera-based applications discover and list approximately 20 non-functional dummy IPU6 video devices (e.g., video0 through video20+), rather than the single, correct sensor path.
Stream Failure Selecting any of these phantom devices results in a black screen and a stream negotiation failure (reason not-negotiated).

This behavior is strongly indicative of the HAL failing to find the necessary configuration, specifically the ISP tuning files required to correctly build the pipeline and expose the actual sensor to Libcamera.


3. Evidence and Logs

Below are the technical outputs supporting the diagnosis.

3.1 Kernel Module Status (dmesg)

The kernel confirms the successful detection and loading of the IPU6 hardware.

[    8.314366] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
[   19.405364] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
[   19.442784] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
[   19.490821] intel-ipu6 0000:00:05.0: CSE authenticate_run done
[   19.490832] intel-ipu6 0000:00:05.0: IPU6-v4[7d19] hardware version 6

3.2 V4L2 Device Enumeration (Ghost Devices)

This output shows the presence of the numerous ghost devices created by the failed enumeration attempt, which corrupts the application list.

❯ v4l2-ctl --list-devices
ipu6 (PCI:0000:00:05.0):
	/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
	/dev/video33
	/dev/video34
	/dev/video35
	/dev/video36
	/dev/video37
	/dev/video38
	/dev/video39
	/dev/video40
	/dev/video41
	/dev/video42
	/dev/video43
	/dev/video44
	/dev/video45
	/dev/video46
	/dev/video47
	/dev/video48
	/dev/media0

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

3.3 Libcamera/HAL Specific Error

When attempting to run a basic GStreamer pipeline using the Libcamera source, the logs explicitly reference the missing configuration required for the Omnivision OV01A10 sensor:

WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov01a10.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'
ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Internal data stream error.
streaming stopped, reason not-negotiated (-4)

4. Conclusion and Request

Given that the kernel module is functional and the issue originates from missing configuration and incorrect enumeration logic, it is highly probable that the correct OV01A10 tuning file and/or associated binary configuration is either missing from the current HAL distribution or is being mislocated on this specific platform build.

We kindly request assistance in verifying the status and inclusion of the necessary tuning configuration for the OmniVision OV01A10 sensor on Meteor Lake platforms running the IPU6 stack.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions