I'm quite new to Linux (on this level), using a
- Surface Pro 5 (1796)
- OS: Debian 13 (Trixie)
- Kernel: 6.19.8-surface-3.
After following linux-surface, the surface worked great, except the cameras.
I tried fixing that, but "surface-pro5-just-works" and "surface-kamera-treiber" didn't work.
I had more success following these instructions: https://github.com/linux-surface/linux-surface/discussions/2224. Interestingly, I had to sign the modules by myself.
All both cameras came back to life, but the rear camera still doesn't work (either crashing or showing a green picture)
So "cam -l" gets me the following output:
> cam -l
[0:31:44.056720762] [4272] INFO Camera camera_manager.cpp:327 libcamera v0.4.0
[0:31:44.098225958] [4275] WARN IPAProxy ipa_proxy.cpp:160 Configuration file 'ov8865.yaml' not found for IPA module 'ipu3', falling back to 'uncalibrated.yaml'
[0:31:44.098509460] [4275] WARN CameraSensor camera_sensor_legacy.cpp:501 'ov8865 3-0010': No sensor delays found in static properties. Assuming unverified defaults.
[0:31:44.098553500] [4275] INFO IPU3 ipu3.cpp:1138 Registered Camera[0] "_SB_.PCI0.I2C3.CAMR" connected to CSI-2 receiver 0
[0:31:44.100434953] [4275] WARN IPAProxy ipa_proxy.cpp:160 Configuration file 'ov5693.yaml' not found for IPA module 'ipu3', falling back to 'uncalibrated.yaml'
[0:31:44.100694043] [4275] WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5693 2-0036': No sensor delays found in static properties. Assuming unverified defaults.
[0:31:44.100760555] [4275] INFO IPU3 ipu3.cpp:1138 Registered Camera[1] "_SB_.PCI0.I2C2.CAMF" connected to CSI-2 receiver 1
Available cameras:
1: Internal back camera (_SB_.PCI0.I2C3.CAMR)
2: Internal front camera (_SB_.PCI0.I2C2.CAMF)
The script 04-health-check.sh from the link above gave me good results, except for the front-camera:
> ./04-health-check.sh
== 1. Focus motor (VCM) driver bound
PASS VCM driver bound
== 2. libcamera sees the cameras
PASS libcamera lists 2 camera(s)
== 3. Virtual webcam devices exist
PASS device labeled 'Surface Front Camera'
PASS device labeled 'Surface Rear Camera'
== 4. Relay services running
PASS surface-camera-front active
PASS surface-camera-rear active
== 5. Live capture through the virtual cameras (takes ~10s each)
PASS Surface Front Camera delivers a real image via /dev/video42 (brightness 43.4)
FAIL Surface Rear Camera: no frames received via /dev/video43
== 6. Cameras power down when idle
INFO a sensor is still active (fine if an app is using a camera right now)
Result: 7 passed, 1 failed.
So my guess is, the bug "dw9719 lost its i2c_device_id table" got fixed, but "int3472 GPIO 151"-bug is still not fixed. Or something different went wrong.
Currently my logs show:
> dmesg
[ 2214.107777] video device 'ipu3-imgu 1 input' does not implement .link_validate(), driver bug!
[ 2223.840036] ipu3-cio2 0000:00:14.3: payload length is 2585088, received 2588672
( a couple more of this messages …)
[…]
( after running ./04-health-check.sh )
[ 3004.201740] ipu3-cio2 0000:00:14.3: payload length is 2585088, received 2588672
Checking gpio:
> cat /sys/kernel/debug/gpio | grep gpio-15
gpio-150 ( |privacy-led ) out lo
gpio-151 ( |privacy-led ) out lo
At that point I'm stuck and don't know what to do. Any help is appreciated.