Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
HP EliteBook X Flip G2i (Panther Lake): IPU7 webcam is OV05C10/OVTI05C1 — no kernel driver and intel-ipu7-camera assumes OV08X40, so the camera fails silently
Reported by robbyproc87 · filed Sep 24, 2026 · open at source
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- AreaOutside the audited area· Decided by agents · verified
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
System details
HP EliteBook X Flip G2i 14 inch Notebook Next Gen AI PC (board 8E86, BIOS Y90 Ver. 01.02.02), Intel Core Ultra X7 358H (Panther Lake), Omarchy 4.0.4-1, kernel linux-omarchy 7.2.5-3
What's wrong?
Summary
The built-in webcam never produces a frame. Omarchy detects Intel IPU7 and installs the intel-ipu7-camera stack (ov08x40 + icamerasrc device-name=ov08x40-uf + v4l2-relayd@ipu7), but this machine's sensor is an OmniVision OV05C10 (ACPI HID OVTI05C1), not OV08X40.
Two independent things are missing:
- No kernel driver.
CONFIG_VIDEO_OV05C10does not exist as a Kconfig symbol inlinux-omarchy 7.2.5-3— 0 occurrences in/proc/config.gz, not merelyis not set. 34 otherCONFIG_VIDEO_OV*drivers are built as modules. Thei2c-OVTI05C1:00device is created but no driver ever binds, so no sensor subdev enters the media graph. - No ISP tuning data.
intel-ipu7-camera 1.0.6-2ships AIQB tuning and GCSS graph configs for IMX471, OV08X40 and OV13B10 only. There is noOV05C10_*.aiqb, noOV05C10_*.IPU75XA.bin, and noov05c10-*.jsonsensor descriptor. Even with a kernel driver, CamHAL would still have nothing to configure the hardware ISP with.
The user-visible result is bad: in a browser video call the camera toggle flips straight back to off with no error in the page, in Zoom/Meet, or anywhere a user would look. The only trace is v4l2-relayd's journal.
Hardware / system
- Machine: HP EliteBook X Flip G2i 14 inch (
103C_5336AN HP EliteBook x360), board8E86, BIOSY90 Ver. 01.02.02 - CPU: Intel Core Ultra X7 358H (Panther Lake)
- IPU:
00:05.0[8086:b05d]rev 04,intel-ipu7, firmwareintel/ipu/ipu7ptl_fw.bin(psys/isys1.2.1.251215214352/...331) - Real sensor: OmniVision OV05C10, ACPI
OVTI05C1:00at\_SB_.LNK0,status=15,i2c-OVTI05C1:00 - Placeholder ACPI:
OVTI08F4:00status=0 - Omarchy:
4.0.4-1 - Kernel:
linux-omarchy 7.2.5-3(repolinuxis 7.2.3.arch1-3;linux-omarchyis already newer, so there is no kernel to upgrade to) - Packages:
intel-ipu7-camera 1.0.6-2,v4l2-relayd 0.2.0-2.2,v4l2loopback-dkms 0.15.4-2
Symptoms
The kernel finds the sensor and reports one camera:
$ journalctl -b | grep -E 'ipu7.*(sensor|cameras)'
intel-ipu7 0000:00:05.0: Found supported sensor OVTI05C1:00
intel-ipu7 0000:00:05.0: Connected 1 camerasBut nothing binds to it, and the OV05C10 symbol is absent from the kernel:
$ cat /sys/bus/acpi/devices/OVTI05C1:00/status
15
$ cat /sys/bus/acpi/devices/OVTI05C1:00/path
\_SB_.LNK0
$ cat /sys/bus/i2c/devices/i2c-OVTI05C1:00/name
OVTI05C1:00
$ ls /sys/bus/i2c/devices/i2c-OVTI05C1:00/driver
ls: cannot access '.../driver': No such file or directory # no driver bound
$ zcat /proc/config.gz | grep -c OV05C10
0
$ zcat /proc/config.gz | grep -c CONFIG_VIDEO_OV08X40
1No sensor entity in the media graph — only IPU7 CSI2/ISYS nodes with unconnected links:
$ media-ctl -p -d /dev/media0 | grep -iE 'ov0|OVTI|sensor'
# nothing
$ media-ctl -p -d /dev/media0 | head -4
- entity 1: Intel IPU7 ISYS Capture 0 (1 pad, 1 link)
device node name /dev/video0
pad0: SINK,MUST_CONNECT
<- "Intel IPU7 CSI2 0":1 []icamerasrc therefore builds an empty camera-id enum and the element fails to instantiate:
$ gst-inspect-1.0 icamerasrc
GLib-GObject-CRITICAL: g_param_spec_enum: assertion 'g_enum_get_value (enum_class, default_value) != NULL' failed
GLib-GObject-CRITICAL: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
CamHAL[ERR] CameraShm: Fail to allocate shared memory by shmget.
CamHAL[ERR] MediaControl: readlink sysName /sys/dev/char/0:0 failed ret -1./sys/dev/char/0:0 is a null device number — CamHAL never resolved a media device.
Every camera-toggle click in the browser reproduces this in the relay's journal:
$ journalctl -u [email protected] -b | tail
v4l2-relayd[1452]: g_param_spec_enum: assertion 'g_enum_get_value (enum_class, default_value) != NULL' failed
v4l2-relayd[1452]: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
v4l2-relayd[1452]: gst_element_set_state: assertion 'GST_IS_ELEMENT (element)' failed
... one pair of these per click ...Because the pipeline never reaches PLAYING, /dev/video50 (v4l2loopback, exclusive_caps) never advertises V4L2_CAP_VIDEO_CAPTURE:
$ gst-launch-1.0 v4l2src device=/dev/video50 num-buffers=5 ! fakesink
ERROR: Device '/dev/video50' is not a capture device.
Capabilities: 0x5200002 # VIDEO_OUTPUT|STREAMING|READWRITE|EXT_PIX_FORMAT, no VIDEO_CAPTURESo browsers see a device named "Hardware ISP Camera" that can never deliver frames, and silently give up.
Tuning data actually shipped:
$ ls /etc/camera/ipu75xa/*.aiqb | xargs -n1 basename
IMX471_BBG803N3_PTL.aiqb
OV08X40_KAFE799_PTL.aiqb
OV13B10_09B13_PTL.aiqb
$ ls /etc/camera/ipu75xa/sensors/
imx471-uf.json isx031-1..8.json lt6911gxd-1.json lt6911gxd-2.json
ov08x40-uf.json ov13b10-uf.json ov13b10-wf.json tpg-uf.jsonRelationship to existing issues
Same family as, but distinct from:
- #12347 (Galaxy Book6 Pro, Samsung SC200PC /
SSLC2000) — same "intel-ipu7-camera assumes OV08X40" root cause, different vendor and sensor. That sensor has no Linux driver at all; OV05C10 is an OmniVision part, so a driver may be more tractable. - #12178 (Lunar Lake: installed by detection but built for Panther Lake only) — this machine is Panther Lake, so that mismatch does not apply; the mismatch here is the sensor, not the platform.
- #12340 (closed, IMX471 scheduler profile) — that sensor had tuning data and a driver; this one has neither.
Expected vs actual
Expected: either the built-in camera works, or installation of intel-ipu7-camera tells me it can't support my sensor.
Actual: the stack installs and runs as though supported, presents a camera device to every application, and fails silently three layers below anything a user can see.
Suggested direction
- Gate the install / warn loudly.
intel-ipu7-camerais selected on IPU7 presence alone. Checking the sensor HID (OVTI05C1,SSLC2000,OVTI08F4, …) against the sensor descriptors the package actually ships would turn a silent failure into a clear message. This alone would help every machine in this family, independent of any driver work. - Don't publish a camera node that cannot stream. If
icamerasrcfails to instantiate,v4l2-relaydstill leaves/dev/video50present, so apps offer a broken camera. Tearing it down (or never creating it) would at least make the failure legible. - OV05C10 support, if the driver exists or lands upstream: enable
CONFIG_VIDEO_OV05C10inlinux-omarchyand add theOV05C10AIQB/GCSS/sensor-descriptor set tointel-ipu7-camera. I have not verified the driver's upstream status, so I'm flagging the gap rather than asserting it's a simple config flip. The tuning blobs are Intel/OEM-supplied and likely need to come from them.
Note on the debug log
The issue template and docs point at omarchy debug, and omarchy --help lists it under Common commands, but it is not dispatched on 4.0.4-1:
$ omarchy debug
Unknown Omarchy command: omarchy debug
$ omarchy debug --no-sudo --print
Unknown Omarchy command: omarchy debug --no-sudo --printHence inline diagnostics above rather than an attached log. Happy to provide anything else useful.
View raw text
### System details
HP EliteBook X Flip G2i 14 inch Notebook Next Gen AI PC (board `8E86`, BIOS `Y90 Ver. 01.02.02`), Intel Core Ultra X7 358H (Panther Lake), Omarchy 4.0.4-1, kernel `linux-omarchy 7.2.5-3`
### What's wrong?
## Summary
The built-in webcam never produces a frame. Omarchy detects Intel IPU7 and installs the `intel-ipu7-camera` stack (`ov08x40` + `icamerasrc device-name=ov08x40-uf` + `v4l2-relayd@ipu7`), but this machine's sensor is an **OmniVision OV05C10** (ACPI HID `OVTI05C1`), not OV08X40.
Two independent things are missing:
1. **No kernel driver.** `CONFIG_VIDEO_OV05C10` does not exist as a Kconfig symbol in `linux-omarchy 7.2.5-3` — 0 occurrences in `/proc/config.gz`, not merely `is not set`. 34 other `CONFIG_VIDEO_OV*` drivers are built as modules. The `i2c-OVTI05C1:00` device is created but no driver ever binds, so no sensor subdev enters the media graph.
2. **No ISP tuning data.** `intel-ipu7-camera 1.0.6-2` ships AIQB tuning and GCSS graph configs for IMX471, OV08X40 and OV13B10 only. There is no `OV05C10_*.aiqb`, no `OV05C10_*.IPU75XA.bin`, and no `ov05c10-*.json` sensor descriptor. Even with a kernel driver, CamHAL would still have nothing to configure the hardware ISP with.
The user-visible result is bad: in a browser video call the camera toggle flips straight back to off with **no error in the page, in Zoom/Meet, or anywhere a user would look.** The only trace is `v4l2-relayd`'s journal.
## Hardware / system
- Machine: HP EliteBook X Flip G2i 14 inch (`103C_5336AN HP EliteBook x360`), board `8E86`, BIOS `Y90 Ver. 01.02.02`
- CPU: Intel Core Ultra X7 358H (Panther Lake)
- IPU: `00:05.0` `[8086:b05d]` rev 04, `intel-ipu7`, firmware `intel/ipu/ipu7ptl_fw.bin` (psys/isys `1.2.1.251215214352` / `...331`)
- Real sensor: OmniVision OV05C10, ACPI `OVTI05C1:00` at `\_SB_.LNK0`, `status=15`, `i2c-OVTI05C1:00`
- Placeholder ACPI: `OVTI08F4:00` `status=0`
- Omarchy: `4.0.4-1`
- Kernel: `linux-omarchy 7.2.5-3` (repo `linux` is 7.2.3.arch1-3; `linux-omarchy` is already newer, so there is no kernel to upgrade to)
- Packages: `intel-ipu7-camera 1.0.6-2`, `v4l2-relayd 0.2.0-2.2`, `v4l2loopback-dkms 0.15.4-2`
## Symptoms
The kernel finds the sensor and reports one camera:
```
$ journalctl -b | grep -E 'ipu7.*(sensor|cameras)'
intel-ipu7 0000:00:05.0: Found supported sensor OVTI05C1:00
intel-ipu7 0000:00:05.0: Connected 1 cameras
```
But nothing binds to it, and the OV05C10 symbol is absent from the kernel:
```
$ cat /sys/bus/acpi/devices/OVTI05C1:00/status
15
$ cat /sys/bus/acpi/devices/OVTI05C1:00/path
\_SB_.LNK0
$ cat /sys/bus/i2c/devices/i2c-OVTI05C1:00/name
OVTI05C1:00
$ ls /sys/bus/i2c/devices/i2c-OVTI05C1:00/driver
ls: cannot access '.../driver': No such file or directory # no driver bound
$ zcat /proc/config.gz | grep -c OV05C10
0
$ zcat /proc/config.gz | grep -c CONFIG_VIDEO_OV08X40
1
```
No sensor entity in the media graph — only IPU7 CSI2/ISYS nodes with unconnected links:
```
$ media-ctl -p -d /dev/media0 | grep -iE 'ov0|OVTI|sensor'
# nothing
$ media-ctl -p -d /dev/media0 | head -4
- entity 1: Intel IPU7 ISYS Capture 0 (1 pad, 1 link)
device node name /dev/video0
pad0: SINK,MUST_CONNECT
<- "Intel IPU7 CSI2 0":1 []
```
`icamerasrc` therefore builds an empty camera-id enum and the element fails to instantiate:
```
$ gst-inspect-1.0 icamerasrc
GLib-GObject-CRITICAL: g_param_spec_enum: assertion 'g_enum_get_value (enum_class, default_value) != NULL' failed
GLib-GObject-CRITICAL: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
CamHAL[ERR] CameraShm: Fail to allocate shared memory by shmget.
CamHAL[ERR] MediaControl: readlink sysName /sys/dev/char/0:0 failed ret -1.
```
`/sys/dev/char/0:0` is a null device number — CamHAL never resolved a media device.
Every camera-toggle click in the browser reproduces this in the relay's journal:
```
$ journalctl -u [email protected] -b | tail
v4l2-relayd[1452]: g_param_spec_enum: assertion 'g_enum_get_value (enum_class, default_value) != NULL' failed
v4l2-relayd[1452]: validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
v4l2-relayd[1452]: gst_element_set_state: assertion 'GST_IS_ELEMENT (element)' failed
... one pair of these per click ...
```
Because the pipeline never reaches PLAYING, `/dev/video50` (v4l2loopback, `exclusive_caps`) never advertises `V4L2_CAP_VIDEO_CAPTURE`:
```
$ gst-launch-1.0 v4l2src device=/dev/video50 num-buffers=5 ! fakesink
ERROR: Device '/dev/video50' is not a capture device.
Capabilities: 0x5200002 # VIDEO_OUTPUT|STREAMING|READWRITE|EXT_PIX_FORMAT, no VIDEO_CAPTURE
```
So browsers see a device named "Hardware ISP Camera" that can never deliver frames, and silently give up.
Tuning data actually shipped:
```
$ ls /etc/camera/ipu75xa/*.aiqb | xargs -n1 basename
IMX471_BBG803N3_PTL.aiqb
OV08X40_KAFE799_PTL.aiqb
OV13B10_09B13_PTL.aiqb
$ ls /etc/camera/ipu75xa/sensors/
imx471-uf.json isx031-1..8.json lt6911gxd-1.json lt6911gxd-2.json
ov08x40-uf.json ov13b10-uf.json ov13b10-wf.json tpg-uf.json
```
## Relationship to existing issues
Same family as, but distinct from:
- **#12347** (Galaxy Book6 Pro, Samsung SC200PC / `SSLC2000`) — same "intel-ipu7-camera assumes OV08X40" root cause, different vendor and sensor. That sensor has no Linux driver at all; OV05C10 is an OmniVision part, so a driver may be more tractable.
- **#12178** (Lunar Lake: installed by detection but built for Panther Lake only) — this machine *is* Panther Lake, so that mismatch does not apply; the mismatch here is the sensor, not the platform.
- **#12340** (closed, IMX471 scheduler profile) — that sensor had tuning data and a driver; this one has neither.
## Expected vs actual
**Expected:** either the built-in camera works, or installation of `intel-ipu7-camera` tells me it can't support my sensor.
**Actual:** the stack installs and runs as though supported, presents a camera device to every application, and fails silently three layers below anything a user can see.
## Suggested direction
1. **Gate the install / warn loudly.** `intel-ipu7-camera` is selected on IPU7 presence alone. Checking the sensor HID (`OVTI05C1`, `SSLC2000`, `OVTI08F4`, …) against the sensor descriptors the package actually ships would turn a silent failure into a clear message. This alone would help every machine in this family, independent of any driver work.
2. **Don't publish a camera node that cannot stream.** If `icamerasrc` fails to instantiate, `v4l2-relayd` still leaves `/dev/video50` present, so apps offer a broken camera. Tearing it down (or never creating it) would at least make the failure legible.
3. **OV05C10 support**, if the driver exists or lands upstream: enable `CONFIG_VIDEO_OV05C10` in `linux-omarchy` and add the `OV05C10` AIQB/GCSS/sensor-descriptor set to `intel-ipu7-camera`. I have not verified the driver's upstream status, so I'm flagging the gap rather than asserting it's a simple config flip. The tuning blobs are Intel/OEM-supplied and likely need to come from them.
## Note on the debug log
The issue template and docs point at `omarchy debug`, and `omarchy --help` lists it under Common commands, but it is not dispatched on 4.0.4-1:
```
$ omarchy debug
Unknown Omarchy command: omarchy debug
$ omarchy debug --no-sudo --print
Unknown Omarchy command: omarchy debug --no-sudo --print
```
Hence inline diagnostics above rather than an attached log. Happy to provide anything else useful.
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
- Out of scopeDecided by agents · verified · 2026-10-09 18:19 UTC