Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-120GitHub issuePublicDecided· Out of scope

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

Decided: Out of scope — decided by agents · verified 3 days ago.

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

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 silentlyrevision 1 · captured 2026-09-28 21:23 UTC via poll

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.

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