Intel MIPI laptop camera not working (24.04)

Having read and tried many suggested strategies (e.g. IntelMIPICamera - Ubuntu Wiki, Dell XPS 9320 camera listed, but not working) I am not able to get the camera working on my HP Spectre Laptop.

Many of the suggested fixes I do not fully understand, so it is possible I have made things worse.

The error when trying to run Cheese is “Device wants 2:0:0:0 colorimetry”, not supported by /dev/video0.

I have tried both drivers listed

A plug-in USB camera works fine. Kernel is 6.11.0-1023-oem if that is relevant. One ‘fix’ I tried involved patching this but seemed to make no difference.

Is this an issue for which there is a general explanation and solution, or is it specific to individual circumstances (e.g. specific laptop and camera, kernel version and so on)?

Any suggestions welcome. Thanks

Intel’s new “MIPI IPU 6” webcams are still in the half-supported stage on
Linux. They are wired through a little image-processing block (the IPU) that
needs firmware, a kernel driver, and a userspace camera-HAL. Most of that
code is only just landing upstream, so on Ubuntu it works only if all three
pieces line up:

OEM or HWE kernel that contains the IPU 6 media driver
(for Noble this is linux-oem-24.04* or linux-oem-6.11).

DKMS package that glues the driver to that kernel
intel-ipu6-dkms

Camera HAL / libcamera back-end
libcamhal-ipu6, libcamera, libcamera-ipa-dyn.

Canonicals oem-kernel PPA provides those packages for a handful of Dell and
Lenovo models; HP’s Spectre uses the same IPU6 stack but its sensor IDs
haven’t been whitelisted yet, so the HAL loads but won’t deliver frames.
Cheese then throws the “device wants 2:0:0:0 colorimetry” message and exits.
What you can (realistically) do today

Keep the USB webcam for meetings – the Spectre’s built-in camera will
light up only once the HAL recognises its sensor ID.

Stay on the OEM/HWE kernel and keep intel-ipu6* packages installed so
future updates can pick the camera up automatically. You can check with

sudo dmesg | grep -i ipu6

– when support lands you’ll see the sensor probed without errors.

Try libcamera directly (sometimes works even if Cheese fails):

sudo apt install libcamera-apps
libcamera-hello

If you get a preview window, you can stream into video-conference software
via v4l2loopback.

Why there’s no “one-line” fix yet

Support depends on exact sensor model + ACPI table entries HP used in
that Spectre revision. Upstream maintainers add them one laptop at a time
because every vendor wires the IPU6 differently. Until HP submits (or
Canonical back-ports) your machine’s quirks, the driver loads but the HAL
refuses to start – exactly what you’re seeing.

Bottom line

For now the behaviour is “expected”: the IPU6 stack is present but doesn’t
know your HP sensor. Keep the OEM kernel and intel-ipu6 packages, watch
for future updates, and use a USB webcam in the meantime. Once the Spectre’s
sensor is merged upstream, your built-in camera should just start working
after a normal apt upgrade.

2 Likes

Thank you Mehmet for your detailed reply.

If I understand you correctly I just install the relevant packages and wait for updates to modify them with appropriate camera support.

In doing so I installed linux-oem-24.04* but when installing intel-ipu6* there was an error with dkms due to attempting install for kernel 6.14 (I have 6.11).

Also I am not sure how to install libcamera and libcamera-apps. This seems like a complicated process.

Thanks again.
Michael

You’ve got the right idea: keep the OEM kernel and the IPU-6 packages
installed, then let normal updates pull in support for your HP sensor when it
lands. A few clarifications and fixes:


Use the 6.11 OEM kernel only

intel-ipu6-dkms is built by Canonical only for the OEM kernels.
If you have stray 6.14 generic headers lying around DKMS tries to compile for
them and bombs out.

# remove any leftover generic 6.14 bits
sudo apt purge 'linux-*-6.14*'

# make sure you have the complete 6.11 OEM stack
sudo apt install linux-oem-6.11 linux-oem-6.11-headers

Reinstall the DKMS package so it builds against 6.11:

sudo apt install --reinstall intel-ipu6-dkms

Check it finished:

dkms status | grep ipu6
# should say "installed" for 6.11.0-xxxx-oem

Install libcamera and the IPU-6 HAL from Ubuntu’s repo

All of these are in universe now no manual build needed.

sudo apt install libcamhal-ipu6 libcamera0 libcamera-ipa-dyn \
                 libcamera-tools libcamera-apps

Test with libcamera

libcamera-hello     # opens a 5-second preview window

If it shows video, the stack is good; Cheese, Zoom, etc. will start picking
up /dev/video* once their flatpak/snap interfaces are refreshed. If you
still see “no camera found”, it means your HP sensor ID isn’t yet in the HAL
and you really do have to wait for the next update.


Keep the packages and just update normally

From here on:

sudo apt update && sudo apt full-upgrade

About once a month the OEM kernel and libcamhal-ipu6 get refreshed. The
moment your particular sensor quirk is merged, the built-in webcam will come
alive without any extra tweaks. Until then, the USB camera is the fallback.

Thank you again Mehmet

I am getting closer, but could I seek advice on two practical steps.

with dkms status | grep iu6 I get
ipu6-drivers/0~git202406240945.aecec2aa-0ubuntu2~24.04.3, 6.11.0-1023-oem, x86_64: installed (WARNING! Diff between built and installed module!)
ipu6-drivers/0~git202406240945.aecec2aa-0ubuntu2~24.04.3, 6.11.0-26-generic, x86_64: installed (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!)

I have tried to remove both the built and installed modules but each time I select the Intel module from Software and Updates - Additional Drivers this difference warning returns. Is it a problem?

Secondly, when I install the libcamera modules I get

Package libcamera0 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
libcamera-v4l2 libcamera-ipa libcamera0.2
gstreamer1.0-libcamera

E: Package ‘libcamera0’ has no installation candidate
E: Unable to locate package libcamera-ipa-dyn
E: Unable to locate package libcamera-apps

Thanks
Michael

DKMS “Diff between built and installed module!

Those warnings appear because DKMS built the ipu-drivers for two
different kernels:

6.11.0-1023-oem ← the one you want
6.11.0-26-generic ← an old generic header that is still on disk

They are harmless, but you can clean them up:

# remove the generic kernel you aren't using
sudo apt purge 'linux-image-6.11.0-26-generic*' \
               'linux-headers-6.11.0-26-generic*'

# tell DKMS to forget that build
sudo dkms remove ipu6-drivers/0~git202406240945.aecec2aa-0ubuntu2~24.04.3 \
        -k 6.11.0-26-generic --all

dkms status should now show only the 6.11-oem entry and no warnings.

(If you switch kernels in the future DKMS will rebuild automatically, so
seeing a single line for the current kernel is normal and healthy.)


Installing the libcamera packages

The package names changed after the 0.2 release. Make sure the universe
repository is enabled, then install the new names:

sudo add-apt-repository universe
sudo apt update

sudo apt install \
     libcamera0.2 libcamera-ipa libcamera-tools libcamera-apps \
     gstreamer1.0-libcamera libcamhal-ipu6

libcamera-apps and libcamera-tools live in universe; without that
component APT says “package not available”.


Test again

libcamera-hello
  • If you get a preview window, the camera stack is working.
  • If it still reports “no cameras available” the HP sensor ID is not in the
    HAL yet—you just need to wait for the next libcamhal-ipu6 or OEM-kernel
    update.

Keep running the OEM kernel, leave intel-ipu6-dkms and the libcamera
packages installed, and update normally:

sudo apt full-upgrade

The moment your Spectre’s sensor support lands, the built-in webcam will
show up without any more tweaks. Until then, the external USB camera is the
fallback.

1 Like

Hello again Mehmet

I have been on a bit of a journey. I am not computer trained but like to learn by doing so this has been a steep learning curve. You have been most helpful.

All was OK up to libcamera-apps which I couldn’t find on Universe. Something I read suggested it may be present on Ubuntu 25.04. As my install was fairly new, I did a fresh install of 25.04. Still couldn’t get libcamera-apps from Universe, but could get Cam.

Error: Couldn’t find any package by glob ‘libcamera0.2’
Error: Unable to locate package libcamera-apps
Error: Unable to locate package libcamhal-ipu6

dkms status
ipu6-drivers/0~git202411190607.0ad49882, 6.14.0-22-generic, x86_64: installed
(I note this is 6.14 generic rather than OEM but couldn’t find an OEM kernel for 25)

cam -l
[0:47:51.413083110] [27342] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:47:51.413103196] [27342] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:47:51.413112478] [27342] INFO Camera camera_manager.cpp:327 libcamera v0.4.0
[0:47:51.423818847] [27345] WARN CameraSensor camera_sensor_legacy.cpp:354 ‘hi556 4-0020’: Recommended V4L2 control 0x009a0922 not supported
[0:47:51.423831474] [27345] ERROR V4L2 v4l2_subdevice.cpp:1127 ‘hi556 4-0020’: Unable to get rectangle 2 on pad 0/0: Inappropriate ioctl for device
[0:47:51.423834569] [27345] WARN CameraSensor camera_sensor_legacy.cpp:401 ‘hi556 4-0020’: The PixelArraySize property has been defaulted to 2592x1944
[0:47:51.423837452] [27345] ERROR V4L2 v4l2_subdevice.cpp:1127 ‘hi556 4-0020’: Unable to get rectangle 1 on pad 0/0: Inappropriate ioctl for device
[0:47:51.423839548] [27345] WARN CameraSensor camera_sensor_legacy.cpp:412 ‘hi556 4-0020’: The PixelArrayActiveAreas property has been defaulted to (0, 0)/2592x1944
[0:47:51.423859112] [27345] ERROR V4L2 v4l2_subdevice.cpp:1127 ‘hi556 4-0020’: Unable to get rectangle 0 on pad 0/0: Inappropriate ioctl for device
[0:47:51.423861256] [27345] WARN CameraSensor camera_sensor_legacy.cpp:420 ‘hi556 4-0020’: Failed to retrieve the sensor crop rectangle
[0:47:51.423863155] [27345] WARN CameraSensor camera_sensor_legacy.cpp:426 ‘hi556 4-0020’: The sensor kernel driver needs to be fixed
[0:47:51.423864897] [27345] WARN CameraSensor camera_sensor_legacy.cpp:428 ‘hi556 4-0020’: See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[0:47:51.424100794] [27345] WARN CameraSensorProperties camera_sensor_properties.cpp:473 No static properties available for ‘hi556’
[0:47:51.424105811] [27345] WARN CameraSensorProperties camera_sensor_properties.cpp:475 Please consider updating the camera sensor properties database
[0:47:51.424107918] [27345] WARN CameraSensor camera_sensor_legacy.cpp:594 ‘hi556 4-0020’: Failed to retrieve the camera location
[0:47:51.424109839] [27345] WARN CameraSensor camera_sensor_legacy.cpp:616 ‘hi556 4-0020’: Rotation control not available, default to 0 degrees
[0:47:51.424874259] [27345] WARN IPAProxy ipa_proxy.cpp:160 Configuration file ‘hi556.yaml’ not found for IPA module ‘simple’, falling back to ‘uncalibrated.yaml’
[0:47:51.424887540] [27345] WARN IPASoft soft_simple.cpp:96 IPASoft: Failed to create camera sensor helper for hi556
Available cameras:
1: ‘hi556’ (_SB_.PC00.LNK0)

I don’t know how to interpret this.

From one site I found the command gst-launch-1.0 libcamerasrc ! video/x-raw ! autovideosink which turned the camera light on, but only gave me a black rectangle. The light was an exciting step in the right direction.

Is there anything else to do our should I wait until sudo apt full-upgrade works.

With much appreciation
Michael

cam is seeing the sensor (hi556) – that’s why the LED comes on – but the
pipeline that turns those raw frames into video is missing. On Intel IPU-6
hardware that piece lives in a separate package called the IPU-6 camera
HAL. For now Canonical publishes it only for the OEM kernels on 24.04; it
hasn’t been built for 25.04 yet, so apt can’t find

libcamera0.2  libcamera-apps  libcamhal-ipu6

and libcamera falls back to the “uncalibrated” path → black window.

Your options today

Stick with the 24.04 OEM stack
Re-install the noble (24.04) release, add linux-oem-6.11 and
libcamhal-ipu6 from the official repo, and the webcam will come up as
soon as the sensor YAML lands.

Stay on 25.04 and wait
Keep the 6.14 generic + ipu6-dkms you already have.
When Canonical builds libcamhal-ipu6 for Plucky it will appear in
universe and:

sudo apt update && sudo apt full-upgrade
sudo apt install libcamhal-ipu6 libcamera-apps

will pull the missing pieces and the camera will start working.

Test the development PPA (if you’re comfortable)
The IPU-6 HAL for 25.04 is being staged in the intel-ipu6 PPA:

sudo add-apt-repository ppa:oem-solutions-group/intel-ipu6
sudo apt update
sudo apt install libcamhal-ipu6 libcamera-apps

These builds are “best-effort” – great for testing, but not guaranteed to
stay in sync with future kernel updates.

In short

The hardware driver is loaded, but the IPU-6 camera HAL isn’t available for
25.04 yet. Either run the 24.04 OEM stack, try the PPA, or simply keep your
25.04 system updated and wait for libcamhal-ipu6 to move into the archive –
once that happens the black window will turn into a real image without any
extra tweaks.

Hello Mehmet

Thanks for your patience.

I re-installed 24.04, this time making sure it boots secure mode for signing.

  • Changed the Kernel to 6.11.0-1024-oem
  • installed intel-ipu6-dkms
  • select the Intel IPU driver from intel-ipu6-dkms (Software and updates)
  • added myself to the video group and installed ffmpeg
  • dkms status | grep ipu6 shows ipu6-drivers/0~git202406240945.aecec2aa-0ubuntu2~24.04.3, 6.11.0-1024-oem, x86_64: installed
  • added repository Universe
  • installed libcamera packages. These include libcamera0.2, libcamera-tools, gstreamer1.0-libcamera, libcamerav4l2, libcamera-ipa , libcamhal-ipu6, however I could not get libcamera-apps. Searching seemed to indicate this may have been changed to a rpi package.
  • v4l2-ctl --list-devices shows ipu6 (PCI:0000:00:05.0): /dev/media0 and Intel MIPI Camera (platform:v4l2loopback-000): /dev/video0

Other suggestions I saw included oem-somerville-treecko-meta* and libcamhal-ipu6epmtl, both from the repository oem-solutions-group/intel-ipu6, however these made no difference and because I don’t understand them I removed them.

There is progress: Cheese no longer throws up an error when run from the command line, and Zoom can find Intel MIPI Camera. Both, however, show a black rectangle and the camera light doesn’t come on.

After some time cheese shows: Failed to connect stream: Timeout: …/ext/pulse/pulsesrc.c(1622): gst_pulsesrc_prepare (): /GstCameraBin:camerabin/GstAutoAudioSrc:audiosrc/GstPulseSrc:audiosrc-actual-src-puls

guvcview generates errors based on ‘inappropriate ioctl for device’ as well as other messages.

I prefer to stay with 24.04 as LTS.

Your advice has been most appreciated, I am learning as I go.

Is it now just waiting and running full-upgrade regularly?

Kind regards
Michael

You have everything that is really needed (OEM 6.11 kernel, ipu6-dkms, libcamhal-ipu6, libcamera and friends). The reason you still see only a black window is that the IPU-6 HAL has no tuning file for your Spectre’s HiSilicon hi556 sensor. Until a file called “hi556.yaml” is shipped, the HAL cannot tell the ISP how to process the raw data, so applications receive blank frames even though the camera “starts” cleanly.

What will fix it
Canonical’s camera-enablement team will add hi556.yaml to the libcamhal-ipu6 package once HP’s calibration data is available.
The file appears first in the “intel-ipu6” PPA, then moves to the normal 24.04-updates archive.
Some HP-specific OEM meta-package might also deliver it; if so it will carry a name such as oem-somerville-treecko.

What you can do

  1. Enable the PPA now if you wish to test early builds:
    sudo add-apt-repository ppa:oem-solutions-group/intel-ipu6
    sudo apt update && sudo apt full-upgrade
    Check /usr/share/libcamera/ipa/ipu6/ after each upgrade; once hi556.yaml appears, the webcam will work.
  2. Otherwise just keep your 24.04 LTS system updated with regular “sudo apt update && sudo apt full-upgrade”.
  3. Keep using an external USB camera as a temporary workaround.

About “libcamera-apps” – it was renamed upstream; the binaries you need are already in the libcamera-tools package you installed, so you are not missing anything there.

Summary: Your software stack is correct. All that is missing is the hi556.yaml tuning file. Stay on the OEM kernel you have, keep ipu6-dkms and libcamhal-ipu6 installed, run normal updates, and the internal webcam will start producing video as soon as that YAML file lands.

I shall do that thanks Mehmet

a quick final question. This discussion and proposed solution is for my computer (HP Spectre) and Ubuntu 22.04.

I note one of the lines is “sed -i “s/hi556-uf-1/hi556-uf-1,hi556-uf-3/g” config/linux/ipu6ep/libcamhal_profile.xml”

I presume that is just providing reference information to a profile file rather than details on how the hi556 camera works. Is that the case? I haven’t run any of the proposed scripts as it is above my technical grade.

Thanks again
Michael