WebCam on Dell XPS 13 Plus (9320): how to get it to work without turning off secure boot?

I saw that support for this model’s webcam was recently added to rpmfusion, and tried to follow Hans de Goede’s guide to get it to work, but it didn’t. I’m testing at gUM Test Page, my kernel is up-to-date (6.3.4), etc. The one thing I did differently from the guide is that I didn’t enable the testing repos since I gathered from the text that this was only necessary because the 6.3.* kernel hadn’t been released yet.

If that’s not a problem, I’m assuming the camera still doesn’t work because of this:

Note since this uses an out of tree kernel module build as unsigned akmod you need to disable secureboot for this to work; or alternatively sign the kmod with your own local key (instructions here).

So I followed the link to the instructions, and ran

/usr/sbin/kmodgenca # no output
mokutil --import /etc/pki/akmods/certs/public_key.der # imported the key after I inputted a password

After rebooting a scary blue screen appeared, and I enrolled the key, but the camera still doesn’t work. I thought reinstalling the packages might help since I have no idea if the signing happens automatically, so I did that and rebooted, but the camera still doesn’t work.

What could I do to have the camera work?

The key was probably created after the camera module was built without the key.

Now you need to rebuild the module so it is properly signed, then reboot to load the signed module.
Reinstalling the package does not automatically rebuild the module. That must be done manually or by removing the package then installing it new.

First run dnf remove kmod-intel-ipu6\* to remove the kernel modules that were already built
Following the removal then run akmods --force to build the modules and sign them.

Allow at least a couple minutes after the prompt returns, then reboot. It should now properly load the module for that adapter.
To verify the modules are properly built and installed you could run dnf list installed kmod-intel-ipu6* which should show the newly built module package for you.

Thanks @computersavvy! I tried your instructions, and it seems to have built the module correctly:

$ dnf list installed kmod-intel-ipu6\*
kmod-intel-ipu6-6.3.4-101.fc37.x86_64.x86_64 0.0-4.20230220gitdfedab0.fc37 @@commandline

But the camera still doesn’t work after the reboot. I really don’t have to reinstall the packages I removed with dnf remove kmod-intel-ipu6\*? There was also a systemv error when I ran akmods --force (which I unfortunately didn’t save), but it did show that the module was built correctly. I can try rerunning the command to see if I can get the error message again if needed.

Did that command remove more than just that one package? It should not have done so (unless one had multiple kernels with that package built for them), and did not for me.

The package shown with the dnf list installed kmod-intel-ipu6\* command shows that package was properly reconstructed and installed by akmods.

To see if the kernel modules are loading one could run lsmod | grep -iE 'ipu6|v4l' which may show the modules if they are loaded.

Nope, just one (sorry for the imprecision).

Running lsmod | grep -iE 'ipu6|v4l' I got:

intel_ipu6_isys       176128  0
videobuf2_dma_contig    32768  1 intel_ipu6_isys
videobuf2_v4l2         40960  1 intel_ipu6_isys
videobuf2_common       90112  4 videobuf2_dma_contig,videobuf2_v4l2,intel_ipu6_isys,videobuf2_memops
intel_ipu6_psys       126976  0
intel_ipu6            143360  2 intel_ipu6_isys,intel_ipu6_psys
v4l2_fwnode            32768  2 ov01a10,intel_ipu6_isys
v4l2_async             32768  3 v4l2_fwnode,ov01a10,intel_ipu6_isys
videodev              376832  5 v4l2_async,v4l2_fwnode,videobuf2_v4l2,ov01a10,intel_ipu6_isys
mc                     90112  6 v4l2_async,videodev,videobuf2_v4l2,ov01a10,intel_ipu6_isys,videobuf2_common

That appears the modules are loaded. If the camera is still not working then I cannot assist any more without the same hardware.

Okay, thank you for the help, at least it’s closer to working state now. It’s weird because the hardware is listed as supported in Hans de Goede’s guide…

This issue resolved itself automatically; I can use the webcam now. I’m not sure how or why (maybe I did everything more or less correctly and it needed a few more reboots to work? While that doesn’t make sense, I don’t see what else could be the answer.)