Dell Precision 5490 Mipi camera showing black image

Ubuntu Version:

24.04.2 LTS

Problem Description:

MIPI camera was finally working after the updates in December on Dell precision 5490 via libcamhal0. After a recent update (kernel from 6.8 to 6.11) the camera stop working. It is well recognised by the systems, but it shows a black image constantly and the spy indicating the activation on the camera on the top of the screen does not show up anymore. I followed strategies used in similar topics but without success…

Relevant System Information:

Kernel 6.11.0-17-24024.2

Screenshots or Error Messages:

$ v4l2-ctl --list-devices
ipu6 (pci:pci0000:00):
	/dev/media0

Intel MIPI Camera (platform:v4l2loopback-000):
	/dev/video0
journalctl --no-hostname -b -g camera
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:47 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:48 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:50 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:50 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:50 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:58 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:58 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:22:58 kernel: pci 0000:00:05.0: Connected 1 cameras
févr. 19 14:22:58 kernel: intel-ipu6 0000:00:05.0: IPU camera mask = 0x0
févr. 19 14:23:00 wireplumber[3334]: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
févr. 19 14:23:00 wireplumber[3334]: PipeWire's libcamera SPA missing or broken. libcamera not supported.
févr. 19 14:23:00 wireplumber[3334]: <WpPortalPermissionStorePlugin:0x61a1f738c5b0> Failed to call Lookup: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for camera
févr. 19 14:23:01 /usr/libexec/gdm-x-session[3556]: > Warning:          Could not resolve keysym XF86CameraAccessEnable
févr. 19 14:23:01 /usr/libexec/gdm-x-session[3556]: > Warning:          Could not resolve keysym XF86CameraAccessDisable
févr. 19 14:23:01 /usr/libexec/gdm-x-session[3556]: > Warning:          Could not resolve keysym XF86CameraAccessToggle
févr. 19 14:23:01 /usr/libexec/gdm-x-session[3562]: > Warning:          Could not resolve keysym XF86CameraAccessEnable
févr. 19 14:23:01 /usr/libexec/gdm-x-session[3562]: > Warning:          Could not resolve keysym XF86CameraAccessDisable
févr. 19 14:23:01 /usr/libexec/gdm-x-session[3562]: > Warning:          Could not resolve keysym XF86CameraAccessToggle
févr. 19 14:23:05 /usr/libexec/gdm-x-session[3976]: > Warning:          Could not resolve keysym XF86CameraAccessEnable
févr. 19 14:23:05 /usr/libexec/gdm-x-session[3976]: > Warning:          Could not resolve keysym XF86CameraAccessDisable
févr. 19 14:23:05 /usr/libexec/gdm-x-session[3976]: > Warning:          Could not resolve keysym XF86CameraAccessToggle
févr. 19 14:23:05 /usr/libexec/gdm-x-session[4028]: > Warning:          Could not resolve keysym XF86CameraAccessEnable
févr. 19 14:23:05 /usr/libexec/gdm-x-session[4028]: > Warning:          Could not resolve keysym XF86CameraAccessDisable
févr. 19 14:23:05 /usr/libexec/gdm-x-session[4028]: > Warning:          Could not resolve keysym XF86CameraAccessToggle
févr. 19 14:23:05 /usr/libexec/gdm-x-session[4112]: > Warning:          Could not resolve keysym XF86CameraAccessEnable

Hi @pbarbieri,

Have a look here: https://discourse.ubuntu.com/t/intel-mipi-camera-not-found/51797

The 5490 OEM metapackage is oem-somerville-oricorio-meta

Purging code [before applying new steps]
sudo add-apt-repository --remove ppa:oem-solutions-group/intel-ipu6
sudo add-apt-repository --remove ppa:oem-solutions-group/intel-ipu7 
sudo apt autopurge oem-*-meta libia-* libgcss* libipu* libcamhal*
sudo apt autopurge lib*ipu6*
sudo apt autopurge lib*ipu7*

Hope it helps!

audio-and-video

Hi @federicarike ,

Yes, I have already seen this discussion and tried to follow it but without success. Here a screenshot of the additional drivers that are currently installed and activated :slight_smile:

Hi @pbarbieri,

I see. What happens if you use the Intel IPU6 instead of the HAL library?
Just double-checking.

Also, since you have Nvidia there, what happens if you use this pipeline

GST_V4L2_USE_LIBV4L2=1 gst-launch-1.0 v4l2src device=/dev/video0 ! xvimagesink

Nvidia usually uses the Video for Linux 2 (V4L2) as camera interface.

Hi @federicarike,

When selecting the Intel IPU6 nothing changes in comparison to the HAL library…

And here a screenshot using the pipeline. As for all apps, the camera shows a black image and the spy on the top screen does not light up.

Could it be a problem after updating the kernel from 6.8 to 6.11 ? The camera stop working after a recent update, and I am pretty sure the kernel have been updated a few weeks ago…

1 Like

@pbarbieri Okay, let’s see.

Are you using the stable repository, right? No ppas.

sudo add-apt-repository --list

Meanwhile, keep everything updated

sudo apt-get update && sudo apt-get upgrade

@federicarike Oui, je confirme ! Pas de ppas.

Could either be a problem with the secure Booting (MOK) ?

@pbarbieri Très bien! :sunglasses:

I was prompted a MOK when installing mine, but it was all smooth. You create your password, give it when required, and then everything should work out.

But yes, I am still using 6.8. Of course, you can always boot with the old kernel version, if that was working.

@federicarike Yep, normally I did all the steps as required…ok, do you know the procedure to boot with the old kernel ? I tried to search online, but I couldn’t manage to do it…Thanks !

@pbarbieri Should be the Esc key. Press it right after powering on your laptop and then the bootloader menu appears. :magic_wand:

The kernel version selection is under Advanced options.

@pbarbieri These modules are also installed, right?

sudo apt-get install --no-install-recommends --yes \
    linux-generic-hwe-24.04 \
    linux-modules-ipu6-generic-hwe-24.04 \
    linux-modules-usbio-generic-hwe-24.04

Just making sure.

@federicarike Yes, all installed. I just have a doubt on the package inter-ipu6-dkmg. When I run the code sudo apt install I get this output, and when I look into Synaptic manager the package seems not to be installed. But all the listed files are well present in the folder /lib/modules/6.11.0-17-generic/updates/dkms/ :

Les NOUVEAUX paquets suivants seront installés :
  intel-ipu6-dkms
0 mis à jour, 1 nouvellement installés, 0 à enlever et 25 non mis à jour.
Il est nécessaire de prendre 199 ko dans les archives.
Après cette opération, 1 443 ko d'espace disque supplémentaires seront utilisés.
Réception de :1 http://fr.archive.ubuntu.com/ubuntu noble-updates/universe amd64 intel-ipu6-dkms amd64 0~git202406240945.aecec2aa-0ubuntu2~24.04.2 [199 kB]
199 ko réceptionnés en 0s (990 ko/s)    
Sélection du paquet intel-ipu6-dkms précédemment désélectionné.
(Lecture de la base de données... 305369 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../intel-ipu6-dkms_0~git202406240945.aecec2aa-0ubuntu2~24.04.2_amd64.deb ...
Dépaquetage de intel-ipu6-dkms (0~git202406240945.aecec2aa-0ubuntu2~24.04.2) ...
Paramétrage de intel-ipu6-dkms (0~git202406240945.aecec2aa-0ubuntu2~24.04.2) ...
Loading new ipu6-drivers-0~git202406240945.aecec2aa-0ubuntu2~24.04.2 DKMS files...
Building for 6.11.0-17-generic
Building initial module for 6.11.0-17-generic
Done.

intel-ipu6.ko.zst:
Running module version sanity check.
 - Original module
 - Installation
   - Installing to /lib/modules/6.11.0-17-generic/updates/dkms/

intel-ipu6-isys.ko.zst:
Running module version sanity check.
 - Original module
 - Installation
   - Installing to /lib/modules/6.11.0-17-generic/updates/dkms/

intel-ipu6-psys.ko.zst:
Running module version sanity check.
 - Original module
 - Installation
   - Installing to /lib/modules/6.11.0-17-generic/updates/dkms/

hm11b1.ko.zst:
Running module version sanity check.
Module version  for hm11b1.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

ov01a1s.ko.zst:
Running module version sanity check.
Module version  for ov01a1s.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

ov01a10.ko.zst:
Running module version sanity check.
Module version  for ov01a10.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

ov02c10.ko.zst:
Running module version sanity check.
Module version  for ov02c10.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

ov02e10.ko.zst:
Running module version sanity check.
Module version  for ov02e10.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

hm2170.ko.zst:
Running module version sanity check.
Module version  for hm2170.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

hm2172.ko.zst:
Running module version sanity check.
Module version  for hm2172.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

hi556.ko.zst:
Running module version sanity check.
Module version  for hi556.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

ov08a10.ko.zst:
Running module version sanity check.
Module version  for ov08a10.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

ov13858.ko.zst:
Running module version sanity check.
Module version  for ov13858.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

ov8856.ko.zst:
Running module version sanity check.
Module version  for ov8856.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.

ov08x40.ko.zst:
Running module version sanity check.
Module version  for ov08x40.ko.zst
exactly matches what is already found in kernel 6.11.0-17-generic.
DKMS will not replace this module.
You may override by specifying --force.
depmod...

By the way, I managed to get to Grub via Esc key, but I just get to the grub command line and not to a bootloader menu, so I didn’t manage to try to boot with the previous kernel.

Thanks a lot for your help by the way !

@pbarbieri From the >GRUB type normal, then press Enter, then Esc. (No worries, you just pressed Esc too many times and the GRUB popped up).

Given the other MIPI camera issues we solved these days I am starting thinking that intel-ipu6-dkms may be superfluous. A lot of us are now using the HAL library (e.g. libcamhal0), so under additional drivers make sure to select the latter. Of course, you can always purge intel-ipu6-dkms.

Also, some user by sudo apt-get update && sudo apt-get upgrade got additional drivers at a later time.

Make sure that in the repository list the

sudo add-apt-repository "deb http://dell.archive.canonical.com/ noble somerville"

gives only one repository for these drivers. Lemme know if there are duplicates. We may need to remove something.

Also, since we are purging and installing, sometimes I run

sudo apt-get autoclean
sudo apt-get autoremove

to make sure we are keeping everything clean and in order.

@federicarike ok, I will keep following the next updates hoping that it will start working again at one point !

Here a screenshot of the repository list. It appears twice there, but I am not sure that that was your question :slight_smile:

Ok @pbarbieri, thanks for the screenshot.

Remove the second one (or just uncheck it) and keep only the original noble somerville.

This is what @eliasps did for the Latitude 7440: https://discourse.ubuntu.com/t/dell-latitude-7440-camera-not-found/55222/5

It might be helpful.