F42 Change Proposal: X86 MIPI camera HW-enablement (self-contained)

X86 MIPI camera HW-enablement

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Wiki
Announced

:link: Summary

Add support for more MIPI (non USB) cameras found on x86 laptops and tablets.

:link: Owner

:link: Detailed Description

The initial IPU6 camera support landed in Fedora 41 only works on a limited set of laptops.

The reason for this is that with MIPI cameras every different sensor and glue-chip like IO-expanders needs to be supported separately.

This change is about the ongoing work to get the camera working on more laptop models.

This is being tracked on a per sensor and/or laptop-model basis. Currently the following issues are being either actively being worked on, or are being tracked to be fixed in the future:

:link: Feedback

:link: Benefit to Fedora

Currently on many new laptop models the camera does not work OOTB in Fedora, the goal of this change is to get the camera to work OOTB on more laptop models.

:link: Scope

  • Proposal owners:
    • This mainly requires kernel changes, most of this work is being done upstream. Depending on the timing some changes accepted upstream may be backported to the Fedora kernel used for the Fedora 42 release.
    • Some libcamera changes may be necessary
  • Other developers: N/A (not a System Wide Change)
  • Release engineering: N/A (not a System Wide Change)
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with the Fedora Strategy: Yes (better hw-support should help getting more users)

:link: Upgrade/compatibility impact

Since the improvements will be part of the kernel and libcamera all users will get these as part of the Fedora 42 upgrade.

:link: How To Test

  • See IPU6_Camera_support#How_To_Test
  • If things do not work please file a bug:
    • Before gathering information, please enable some extra debugging by running:
      • sudo grubby --update-kernel=ALL --args="intel_skl_int3472_discrete.dyndbg"
    • Reboot so that the new kernel commandline takes effect
    • Run the following commands to gather information:
      • journalctl -b 0 -k > kernel.txt
      • lsusb > lsusb.txt
      • ls -l /sys/bus/i2c/devices/ > i2c-devices.txt
      • ls -l /sys/bus/spi/devices/ > spi-devices.txt
    • File a bug in bugzilla
    • Attach all the generated “*.txt” files to the bug

:link: User Experience

The camera on X86 laptops with MIPI cameras should work OOTB on more laptop models.

:link: Dependencies

None

:link: Contingency Plan

ATM IPU6 cameras do not work at all on many laptop models. Except for the changes actually causing regressions no contingency plan is necessary. As always with kernel changes any known regressions will be fixes ASAP or the change causing the regression will be reverted.

:link: Documentation

N/A (not a System Wide Change)

:link: Release Notes

To be written…

Last edited by @amoloney 2025-01-15T23:38:21Z

Last edited by @amoloney 2025-01-15T23:38:21Z

1 Like

How do you feel about the proposal as written?

  • Strongly in favor
  • In favor, with reservations
  • Neutral
  • Opposed, but could be convinced
  • Strongly opposed
0 voters

If you are in favor but have reservations, or are opposed but something could change your mind, please explain in a reply.

We want everyone to be heard, but many posts repeating the same thing actually makes that harder. If you have something new to say, please say it. If, instead, you find someone has already covered what you’d like to express, please simply give that post a :heart: instead of reiterating. You can even do this by email, by replying with the heart emoji or just “+1”. This will make long topics easier to follow.

Please note that this is an advisory “straw poll” meant to gauge sentiment. It isn’t a vote or a scientific survey. See About the Change Proposals category for more about the Change Process and moderation policy.

This is awesome. Thank you for all your efforts and raising this. I am sure there’s a growing community of users that are going to benefit from this, if it happens. Much gratitude.

Could you clarify the sections a bit?

Section: Scope

  • What are the kernel/libcamera versions that are intended to have the support?

Section: How to test

  • The original IPU6_Camera_support#How_To_Test section has a comment on:

    If you also have the rpmfusion packages for the out-of-tree / proprietary Intel IPU6 packages installed, run: “sudo ipu6-driver-select foss” from a terminal and reboot before testing. You can switch back to the proprietary stack by running “sudo ipu6-driver-select proprietary” after testing.

    But in the context of this change proposal, is having ipu6-camera-hal installed from rpmfusion considered a “it works” or not for the purposes of submitting the bug? Do we submit the bug right now in the F41 cycle, or only after we have the related kernel/libcamera updates?

  • Regarding rpmfusion’s packages, there seems to be constant changes to the user experience. E.g. for my hardware, initially it only worked with proprietary settings, after some kernel updates, proprietary no longer worked, but foss worked, and recently it stopped working again (edit: working again after reinstall). How could we interpret how these changes with the rpmfusion package will have on this change proposal? Should we expect that the current behavior with the foss driver will be the user experience after the changes related to this proposal are merged?