Integrated Camera Errors on Surface Go 1 | IVSC

Hi everyone!

I am using Fedora 39 on a Surface Go 1 with the normal fedora kernel.

About one month ago ( around 2023-12-28) I noticed that the integrated cameras (ids OV5693 and OV8865) are recognised by both cheese and snapshot.

Today I wanted to try them out again and the cameras were not recognised via libcamera and any other camera application.

In the logs searching for ipu3 gave some errors:

kernel: ipu3-imgu: probe of 0000:00:05.0 failed with error -2
kernel: ipu3-imgu 0000:00:05.0: wait css idle timeout
kernel: ipu3-imgu 0000:00:05.0: failed to initialize CSS (-2)
kernel: ipu3-imgu 0000:00:05.0: Direct firmware load for intel/ipu3-fw.bin failed with error -2
kernel: ipu3-imgu 0000:00:05.0: Direct firmware load for intel/irci_irci_ecr-master_20161208_0213_20170112_1500.bin failed with error -2
kernel: ipu3-imgu 0000:00:05.0: physical base address 0x00000000b1000000, 4194304 bytes
kernel: ipu3-imgu 0000:00:05.0: device 0x1919 (rev: 0x1)
kernel: ipu3-cio2 0000:00:14.3: device 0x9d32 (rev: 0x1)
kernel: ipu3-cio2 0000:00:14.3: Connected 2 cameras
kernel: ipu3-cio2 0000:00:14.3: Found supported sensor INT347A:00
kernel: ipu3_imgu: module is from the staging directory, the quality is unknown, you have been warned.
kernel: ipu3-cio2 0000:00:14.3: Found supported sensor INT33BE:00

So it seems like that something goes wrong when loading the firmware.

This occurs on all three kernels I currently have installed: 6.6.11, 6.6.12, 6.6.13.

Any help would be appreciated.
Thanks.

1 Like

The file /lib/firmware/intel/irci_irci_ecr-master_20161208_0213_20170112_1500.bin seems to have been moved into the intel-vsc-firmware package. Installing that fixes the issue.

1 Like

Hi Dariqq,
Could you help please? I’ve installed intel-vsc-firmware but my cameras still don’t work. I have an original Surface Go (1) with updated F39 and Gnome. I’m using the Fedora kernel (6.7.5) rather than the Surface kernel.
Many thanks
Guy

Hi Vivid Skies,

There seems to be an unrelated issue with ipu3 and the 6.7 kernel.

See for example the discussions on the linux-surface Project:

This is apparently fixed by [PATCH v3] media: staging: ipu3-imgu: Set fields before media_entity_pads_init() - Hidenori Kobayashi but I am not sure what the status of this patch is.

Maybe someone who knows more about kernel development can help.

Hope this helps.

Thanks Dariqq, I guess that patch has to be compiled before it can be used?
Thanks again.
Guy

You’d need to build a patched kernel yourself, but I have not looked into how to do this on fedora. Also given the hardware of the SGO1 it probably will take forever to build.

There is also an open pull request to add it to the linux-surface kernel so the cameras should work with the surface kernel once that gets added hopefully soon.

As it seems like an issue with the 6.7 kernel only you could also try to go back to the 6.6 kernel (maybe there is a copr repository or something that has an up to date version?)

Or just wait and hope that it will get fixed by someone else eventually.

Thanks very much,
Guy

In one of the issues before there are now instructions to only rebuild the (patched) ipu3 module. Haven’t tested this for myself but judging from the comments it seems to solve the issue.

Over the weekend the camera patch from the lkml was added to the linux-surface kernel patches. So if you get the latest kernel from them cameras should work again.

Hopefully the patch will be included in the normal kernel as well soon.

The patch from above is now scheduled to be included in the upcoming kernel release:

6.7.12: [PATCH 6.7 006/432] media: staging: ipu3-imgu: Set fields before media_entity_pads_init() - Greg Kroah-Hartman
6.8.3 : [PATCH 6.8 004/399] media: staging: ipu3-imgu: Set fields before media_entity_pads_init() - Greg Kroah-Hartman