Getting the RGB webcam working on a Panther Lake laptop (Intel IPU7 8086:b05d,
OV08X40 sensor OVTI08F4, Synaptics SVP7500 CVS bridge) under Arch / linux-zen.
RGB works; IR (Windows Hello) does not.
| Item | Status |
|---|---|
RGB via libcamera (cam, qcam) |
✅ |
| RGB via PipeWire (Firefox, Chromium) | ✅ (needs WirePlumber 0.5.15 — see below) |
RGB via /dev/video42 (Zoom / V4L2 apps) |
✅ (manual on/off) |
| Hardware ISP (no browser crashes) | ✅ |
| IR camera / Windows Hello | ❌ unsupported upstream |
| Automatic on-demand power | ❌ manual toggle only |
| Native libcamera color tuning | ❌ no ov08x40.yaml; GStreamer videobalance as workaround |
- Kernel ≥ 7.1 — handles the INT3472 GPIO type
0x02and hasOVTI08F4in the in-tree IPU bridge. Earlier kernels need DKMS patches. intel-cvs(SVP7500 bridge driver) — out-of-tree, required. The sensor's ACPI_DEPis never cleared without it, so it never enumerates.intel/vision-drivers#36(open, no upstream fix).ov08x40regulator shim — on this boarddovdd/dvddfall back to dummy regulators; stockov08x40.kotreatsregulator_bulk_enable()failure as fatal (still true as of kernel 7.2.6). A DKMS shim downgrades it to a warning.- Blacklist the IR driver (
hm1092) — its probe loop resets the shared USB-IO bridge every ~6s (a "USB disconnect storm"), taking the RGB camera down too. Not fixed by the upstream LINK_FREQ fix — a separate probe-loop bug. - Hardware-ISP libcamera pipeline handler (
jibsta210/ipu7-camera-linux) — replaces libcamera's software ISP, whichabort()s browsers at non-native resolutions. Requires a udev rule granting thevideogroup access to/dev/ipu7-psys0(undocumented; createdroot:root 0600by default). - v4l2loopback + a GStreamer feeder for Zoom and other V4L2-only apps (no PipeWire/libcamera camera support). Camera is off by default; a user systemd service starts the feeder before a call.
Symptom: after upgrading WirePlumber to 0.5.16 or later, wpctl status shows
no camera and browsers see nothing — even though libcamera enumerates it fine.
Cause: WirePlumber 0.5.16 rewrote monitors/libcamera/create-device.lua to
device:activate(Features.ALL, ...) and block camera-node creation on that
activation completing. One requested feature never completes for this device, so
the event hangs forever and no node is created. (The libcamera SPA plugin and the
pipeline handler both register synchronously — the stall is in WirePlumber's new
activation gate.) 0.5.17 does not fix it (its regression fix is unrelated).
Mitigation: downgrade wireplumber/libwireplumber to 0.5.15, where
activation is fire-and-forget:
sudo pacman -U /var/cache/pacman/pkg/wireplumber-0.5.15-*.pkg.tar.zst \
/var/cache/pacman/pkg/libwireplumber-0.5.15-*.pkg.tar.zst
systemctl --user restart wireplumber
A full pacman -Syu will silently re-upgrade it; hold it with IgnorePkg or
re-check wpctl status after updates. The Zoom / v4l2loopback path is unaffected
(it calls libcamera directly, bypassing WirePlumber).
- IR camera / Windows Hello (
hm1092) — no IVSC firmware;intel/ipu7-drivers#72open, no response. IR streaming causes the USB storm; driver stays blacklisted. - Native color tuning — no libcamera
ov08x40.yamlfor the hardware-ISP path; color is corrected approximately in the GStreamer feeder. - On-demand camera power — v4l2-relayd stalls;
exclusive_capsprevents an open-triggered watcher. Camera is toggled manually. - WirePlumber 0.5.16+ activation regression — mitigated by downgrade only; not yet reported upstream.
- Community fix pack: https://github.com/jibsta210/svp7500-camera-fix-pack
- Hardware-ISP pipeline handler: https://github.com/jibsta210/ipu7-camera-linux
intel/vision-drivers#36(intel_cvs upstreaming): intel/vision-drivers#36intel/ipu7-drivers#72(IVSC firmware / IR): intel/ipu7-drivers#72