You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@toorajtaraz got the surface pro 9 camera working with pull request #1867.
I build the system using @petm5 SP9 kernel, followed toorajtaraz instructions and got the front camera working on my SP8.
However, the camera began to flicker and now stopped working entirely. Now under /sys/bus/i2c/devices I have weirdly the SP9 device Vi2c-OVTID858:00 instead of OVTI5693:00.
I tried to remove everything related to the OVTID858 patch and applied those changes in isolation (https://github.com/pythonpoet/linux-surface). Saidly, this resulted in the same.
Somebody had more success?
Edit:
Next day, the front camera just started to work. Camera is still flickering though:
That patch is for the Surface Pro 9, not aimed for the SP8. Just happens to make the SP8 cameras somewhat work. You're welcome to look into it yourself but I think you're pretty much on your own. I'm running an SP7, so as much as I'd like to help, I can't.
think we drilled the remaining surface tablets anyway. caused us so many issues trying to image them. except for the ones they gave us on grant but those don't matter here since they all run qualcomm ARM chips, not intel x86.
I installed the kernel module from #2171 and it works even better than the back camera. However, it does not work in pipewire apps (pipewire enabled Firefox) and the bridge proposed in the gist does not work in Firefox (but works in Chromium)
I installed the kernel module from #2171 and it works even better than the back camera. However, it does not work in pipewire apps (pipewire enabled Firefox) and the bridge proposed in the gist does not work in Firefox (but works in Chromium)
I had the same issue, but I found a solution. Some programs seem to be hard coded to only look at the first 64 devices (0-63) which are the raw IPU6 devices. I simply changed video_nr=64 to video_nr=0 and video64 to video0. After a reboot my v4l2loopback device initialized as /dev/video0 and the raw devices were pushed back to 1-64. It now works in Firefox, Zoom, and OBS.
Ah very cool, it works! I also checked the logs in pipewire modes and it seems that the browser is unable to negotiate a non-native video resolution. The kernel log spams:
Activity
lukirudaka commentedon Nov 3, 2025
That patch is for the Surface Pro 9, not aimed for the SP8. Just happens to make the SP8 cameras somewhat work. You're welcome to look into it yourself but I think you're pretty much on your own. I'm running an SP7, so as much as I'd like to help, I can't.
think we drilled the remaining surface tablets anyway. caused us so many issues trying to image them. except for the ones they gave us on grant but those don't matter here since they all run qualcomm ARM chips, not intel x86.
krokosik commentedon Nov 20, 2025
Is there a simple way to try it on my machine without compiling the kernel?
TheSmilingTurtle commentedon Jan 8, 2026
6.18.3-arch1-2-surfacemakes the back camera work on my SP8, but front camera would still need some work. You managed to get the front camera working?gattolfo98 commentedon Mar 19, 2026
On my surface pro 8 the camera just doesn't work, (i'm on fedora).
Linux 6.18.8-1.surface.fc43.x86_64
(when i open the gnome camera app the front camera led lights up, but the app show just a black screen)
dxdxffgg99 commentedon Jul 25, 2026
On my SP8(
Linux 6.19.8-arch1-3-surface) doesn't work tookrokosik commentedon Jul 25, 2026
I installed the kernel module from #2171 and it works even better than the back camera. However, it does not work in pipewire apps (pipewire enabled Firefox) and the bridge proposed in the gist does not work in Firefox (but works in Chromium)
jakep82 commentedon Jul 26, 2026
I had the same issue, but I found a solution. Some programs seem to be hard coded to only look at the first 64 devices (0-63) which are the raw IPU6 devices. I simply changed video_nr=64 to video_nr=0 and video64 to video0. After a reboot my v4l2loopback device initialized as /dev/video0 and the raw devices were pushed back to 1-64. It now works in Firefox, Zoom, and OBS.
krokosik commentedon Jul 27, 2026
Ah very cool, it works! I also checked the logs in pipewire modes and it seems that the browser is unable to negotiate a non-native video resolution. The kernel log spams:
while wireplumber shows:
Will continue using v4l2 for now
patches: 7.2: Make the Surface Pro 8 cameras work on IPU6