Skip to content

sp11: add self-compile driver package and Windows-driver REA evidence corpus - #86

Merged
ooaklee merged 4 commits into
sp11/ubuntu-qcom-x1e-7.3.yfrom
x/sp11-selfcompile-package
Nov 14, 2026
Merged

ooaklee merged 4 commits into
sp11/ubuntu-qcom-x1e-7.3.yfrom
x/sp11-selfcompile-package

Conversation

@ooaklee

@ooaklee ooaklee commented Nov 14, 2026

Copy link
Copy Markdown
Owner

Summary

Two goal deliverables in one PR:

1. Community self-compile driver package (sp11-selfcompile-drivers/)

Standalone sources for the three standalone-qualified research drivers:

  • vd55g1.ko (VD55G0 front IR sensor), ov13858.ko (rear camera), ps883x.ko (Type-C retimer mux)
  • Sources copied verbatim from the tree by scripts/export-package.sh, with per-driver .source-sha git-blob stamps so the package can never silently drift
  • check-kernel.sh guards against stock headers — the camera drivers need V4L2_SUBDEV_FL_STOP_RETRY, which exists only in this repo's patched v4l2-subdev core
  • Qualcomm USB4 frontend / QMP PHY / Type-C core changes stay in-tree (documented why)

Build-verified on a Surface Pro 11 against linux-headers-7.3.0-jg-1sp11v4-qcom-x1e: all three .ko built with correct vermagic (SMP preempt mod_unload modversions aarch64), check-kernel.sh positive+negative paths exercised.

2. REA evidence corpus (evidence/, 17 reports)

Reverse-engineering evidence from the SurfacePro11 ARM Win11 26100 SurfaceUpdate packages feeding the bounded-port pipeline:

All reports carry per-fact confidence (observed/derived/inferred) and binary addresses. Note: REA MCP tools were unregistered in sub-agent sessions this round; agents fell back to llvm-objdump/python parsing and flagged the deviation per report.

Test plan

  • Package builds on-device against repo headers (vermagic match)
  • modules_install + depmod + camera/retimer probe on SP11
  • Release tarball cut via scripts/export-package.sh once merged

… corpus

Self-compile package (sp11-selfcompile-drivers/):
- Standalone sources for the three qualified drivers (VD55G0 via vd55g1,
  OV13858, PS883x), copied verbatim from the tree by
  scripts/export-package.sh with per-driver .source-sha stamps.
- check-kernel.sh refuses stock headers: the camera drivers need
  V4L2_SUBDEV_FL_STOP_RETRY from this repo's patched v4l2-subdev core.
- Build-tested on a Surface Pro 11 against linux-headers-7.3.0-jg-1sp11v4:
  all three .ko build with matching vermagic (SMP preempt mod_unload
  modversions aarch64).

Evidence corpus (evidence/): REA-derived reports from the
SurfacePro11_ARM_Win11_26100_26.041.12746.0 SurfaceUpdate packages
covering qcusb4bus, retimer, cameras (OV13858/VD55G0), UCSI Type-C
recovery ladder, PMIC glink parity, QMP quarantine scheme, audio noise
sequences, SAM/battery/thermal/HID/WLAN mapping, and the platform gap
inventory feeding future bounded ports. Content extracted from Windows
binaries is data only.

Signed-off-by: Leon Silcott <lnsilcott@gmail.com>
…k/illuminator)

Audio noise sequences (OE #66): verified INF registry tunables (180 s
speaker cool-down, 5 s NS debounce, per-REV default volumes) and the
APO -144 dB soft-start fade-in as the only anti-pop mechanism; ranked
bounded-fix candidates for the x1e80100 machine driver.

OV13858 power ownership: CamZ KMD acquire order, retained-resources /
idle-not-off failed-start semantics, symmetric reverse-order teardown;
bounded fix outline for ov13858.c.

VD55G0 hblank/illuminator: Chromatix TLV triplet structure decoded;
flashName resolves to a placeholder (sensor-strobe GPIO is the right
illuminator backend); per-mode hblank floors remain open pending value-
pool decode — current single 1200 floor stands.

Signed-off-by: Leon Silcott <lnsilcott@gmail.com>
- Makefile: propagate recursive-make failures (set -e loops; clean uses
  || exit 1) — a failing driver build no longer reports success
- check-kernel.sh: honor the HDR override so the guard validates the
  same tree make compiles against
- export-package.sh: copy the kernel COPYING into the package (GPLv2
  section 1) and emit a package-local .gitignore for build artifacts
- README: exact-version extraction instructions (ambiguous glob) and a
  License section
- .gitignore: track the per-driver .source-sha provenance stamps

Signed-off-by: Leon Silcott <lnsilcott@gmail.com>
@ooaklee

ooaklee commented Nov 14, 2026

Copy link
Copy Markdown
Owner Author

All five review findings fixed and pushed:

  • P1 failure propagation: set -e loops in all/modules_install; clean uses || exit 1 — failing subdir builds now fail the top level.
  • P2 provenance stamps: .gitignore exception added, all three .source-sha files committed.
  • P2 HDR override: check-kernel.sh takes HDR from the environment; the Makefile passes its $(HDR) through, so the guard validates the exact tree being compiled against.
  • P2 license: export-package.sh copies the kernel COPYING into the package; README gains a License section.
  • P3 glob: README uses explicit <version> placeholders.

Re-verified on-device: full rebuild passes (3 .ko), make clean + rebuild works with the new Makefile.

The kernel COPYING points at LICENSES/preferred/GPL-2.0 and
LICENSES/exceptions/Linux-syscall-note; the package shipped only the
pointer file. Include both license texts in-tree and have
export-package.sh copy them so the standalone package is
self-contained (GPLv2 section 1).

Signed-off-by: Leon Silcott <lnsilcott@gmail.com>
@ooaklee

ooaklee commented Nov 14, 2026

Copy link
Copy Markdown
Owner Author

License fix pushed: LICENSES/preferred/GPL-2.0 and LICENSES/exceptions/Linux-syscall-note are now in-tree and copied into the exported package — COPYING's references resolve inside the package itself.

@ooaklee
ooaklee merged commit 35d6cef into sp11/ubuntu-qcom-x1e-7.3.y Nov 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant