Skip to content

Releases: ooaklee/linux-surface-pro-11-oe

Surface Pro 11 iptsd 3.1.0 v2 source contract (experimental)

Choose a tag to compare

@ooaklee ooaklee released this 01 Sep 19:42

Experimental source-bearing companion release for the Fedora Live integration.

  • Carries the unchanged pinned IPTSD 3.1.0 payload and complete corresponding fallback sources from v1.
  • Adds the exact OE-owned Fedora RPM template and current closed Surface Pro 11 integration profile.
  • Keeps the stable iptsd-v1 component and archive root while advancing the trust-pinned outer release to v2.
  • Does not extend the existing X1E v19 pen evidence to Fedora, installation, USB boot, X1P, or suspend/resume qualification.

Linked implementation: ooaklee/lexr.sh#10
Linked OE source contract: #60
Linked v1 kernel fix: ooaklee/linux_ms_dev_kit-sp11#25

Surface Pro 11 qcom-x1e Kernel Packages 7.2.0-jg-0sp11v19 — IPTS pen and touch

Choose a tag to compare

@ooaklee ooaklee released this 30 Aug 04:31
69f40d5

Surface Pro 11 qcom-x1e Kernel Packages 7.2.0-jg-0sp11v19

Device-validated, experimental prebuilt qcom-x1e kernel packages for the
Microsoft Surface Pro 11. This release adds the in-tree HIDRAW bridge and
bounded IPTS transport profile merged through
linux_ms_dev_kit-sp11 PR #23.

Pen decoding and stylus lifecycle are supplied by the paired
Surface Pro 11 iptsd 3.1.0 integration,
merged through
linux-surface-pro-11-oe PR #55.
The kernel exposes the private DFT stream and remains the sole owner of direct
touch and panel mode; iptsd creates only the virtual stylus. Install the two
releases together for pen support.

These packages are unsigned, are not an apt repository, and are specific to
the Surface Pro 11. Keep the installed v16 qcom-x1e kernel as a known-good
fallback and keep recovery media available. Secure Boot may need to remain
disabled for this bring-up kernel.

Pen and touch support

  • Surface Pro 11 X1P/LCD 045e:0c80 and X1E/OLED 045e:0c83 are supported
    integration targets.
  • A HIDRAW-only sibling relays DFT reports 0x0b, 0x0c, 0x0d, and 0x1a
    to iptsd while the existing kernel device remains the sole direct-touch
    provider.
  • The accepted Phase 84 profile uses SET_FEATURE 0x05-only initialization,
    one response per level-low IRQ, bounded ready-line quiescing, and cold
    host-fault recovery.
  • The HID transport-private-data fix is integrated directly in the kernel;
    this release applies no external patch stack.
  • /dev/g6ts-heat remains available for bounded diagnostics. Production
    pressure, tilt, hover, and barrel-button input comes from DFT plus iptsd,
    not raw-HEAT decoding.

Package set

  • linux-qcom-x1e-headers-7.2.0-jg-0sp11v19_7.2.0-jg-0sp11v19_all.deb
  • linux-headers-7.2.0-jg-0sp11v19-qcom-x1e_7.2.0-jg-0sp11v19_arm64.deb
  • linux-modules-7.2.0-jg-0sp11v19-qcom-x1e_7.2.0-jg-0sp11v19_arm64.deb
  • linux-image-7.2.0-jg-0sp11v19-qcom-x1e_7.2.0-jg-0sp11v19_arm64.deb

The release also contains the exact tracked-source archive, a sanitized
build/provenance manifest, the exact package inventory, and SHA256SUMS.
IPTS userspace is intentionally published as the separate paired release.

Verify and install

Download SHA256SUMS and every asset named in it into one otherwise-empty
directory, then run:

sha256sum --check --strict SHA256SUMS

sudo apt install --reinstall -- \
  ./linux-qcom-x1e-headers-7.2.0-jg-0sp11v19_7.2.0-jg-0sp11v19_all.deb \
  ./linux-headers-7.2.0-jg-0sp11v19-qcom-x1e_7.2.0-jg-0sp11v19_arm64.deb \
  ./linux-modules-7.2.0-jg-0sp11v19-qcom-x1e_7.2.0-jg-0sp11v19_arm64.deb \
  ./linux-image-7.2.0-jg-0sp11v19-qcom-x1e_7.2.0-jg-0sp11v19_arm64.deb

Install the paired iptsd release, reboot, select
7.2.0-jg-0sp11v19-qcom-x1e, and confirm:

uname -r

Do not mix these files with older local v19 artifacts. Accept only the set
whose SHA256SUMS and sp11-kernel-release-manifest.txt identify source HEAD
2cbd1ec3e2da385e7bd91fd65c63ba5a8fb5b865.

Validation

The exact Phase 84 profile was live-tested on X1E/OLED 045e:0c83 using the
same v19 ABI from kernel commit
ec96c9da79afffff460438471189e06ea1920aba. Those values were supplied
explicitly for the hardware run and were then promoted to defaults in the
merged source used for this release. The newly rebuilt packages from merge
2cbd1ec3e2da385e7bd91fd65c63ba5a8fb5b865 passed source and package
validation but were not separately boot-tested before publication.

The installed-system X1E acceptance run confirmed:

  • hover/lift and continuous stylus input;
  • pressure from 0 through 3309;
  • variation on both tilt axes;
  • the barrel button;
  • normal one-, two-, and three-finger direct touch;
  • one HIDRAW bridge, one iptsd process, and one virtual stylus; and
  • zero kernel taint, panel resets, recovery failures, host-fault recoveries,
    transport/protocol errors, drain overflows, or daemon restarts.

IRQ accounting ended at 5,059 interrupts and 5,059 handled interrupts. The
5,058 single-response cadence count differed by one at the post-boot baseline;
all 5,057 subsequent IRQs were exactly accounted for by reports 0x07=2,
0x0b=2022, 0x0c=1011, 0x0d=1011, and 0x1a=1011.

X1P is enabled by the same product-preserving path but still needs a separate
hardware run. Eraser transitions, forced recovery and HIDRAW recreation,
repeated suspend/resume, longer soak testing, and additional edge/corner and
cold-boot coverage remain explicitly unclaimed.

Provenance

  • Source URL: https://github.com/ooaklee/linux_ms_dev_kit-sp11.git
  • Source ref used by the build: sp11/integration-7.2.x
  • Exact source HEAD: 2cbd1ec3e2da385e7bd91fd65c63ba5a8fb5b865
  • Source archive:
    sp11-qcom-x1e-7.2.0-jg-0sp11v19-source-2cbd1ec3e2da.tar.xz
  • Local patches: none
  • Build target: binary-indep binary-qcom-x1e
  • Parallel jobs: 10
  • Rules runner: direct-root
  • Container image family: ubuntu:26.04
  • OE support/release-tool commit and tag target:
    69f40d58afb4a6e92606d30bdefbd48dbf12a88d

The live-tested package predates the defaults-only and X1P-promotion commits.
The X1E runtime values are identical; the X1P promotion adds the second product
as a supported target while retaining its separate hardware-qualification
boundary. Binary provenance remains the exact merged source HEAD above. These
artifacts were built from recorded inputs and are not claimed to be
bit-for-bit reproducible.

References

Surface Pro 11 qcom-x1e Kernel Packages 7.2.2-jg-0sp11v21

Choose a tag to compare

@ooaklee ooaklee released this 31 Aug 20:53
69f40d5

Surface Pro 11 qcom-x1e kernel packages

This is an experimental, unsigned Surface Pro 11 kernel bundle. Structural
validation does not make it hardware-qualified. Keep a known-good fallback
qcom-x1e kernel installed and keep recovery media available.

Identity

  • Release: sp11-kernel-7.2.2-jg-0sp11v21-qcom-x1e
  • ABI: 7.2.2-jg-0sp11v21-qcom-x1e
  • Package version: 7.2.2-jg-0sp11v21
  • Boot image mode: stubble
  • Source revision: 116cef4df36a03c1f81056521fdd7f1aa11ee347
  • Source tree: e00cbc28407c8e2279ab1722817becf521020f3c
  • Corresponding source: linux-116cef4df36a03c1f81056521fdd7f1aa11ee347.tar.gz
  • Licence evidence: COPYING

Lexr

These artifacts were prepared with Lexr.
Download Lexr binaries from the Lexr releases page.

Verify

Run:

lexr kernel release validate <downloaded-release-directory>

The command requires exact checksum coverage, one coherent image/modules pair,
paired headers when present, corresponding source, explicit licence evidence,
and no additional files.

Install

Review the installation preflight first, naming the known-good fallback ABI:

lexr kernel preflight <downloaded-release-directory> --root / --fallback-abi <running-fallback-abi>
sudo lexr kernel install <downloaded-release-directory> --root / --fallback-abi <running-fallback-abi> --yes

Reboot manually only when ready. Retain the fallback kernel until the new
kernel, device trees and required hardware have been tested on the Surface.

Surface Pro 11 iptsd 3.1.0 integration (experimental)

Choose a tag to compare

@ooaklee ooaklee released this 30 Aug 04:31
69f40d5

Surface Pro 11 iptsd 3.1.0 integration (experimental)

Source-complete ARM64 iptsd payload and guarded lifecycle integration for the
Microsoft Surface Pro 11 X1P/LCD (045e:0c80) and X1E/OLED (045e:0c83)
digitizers.

This is an experimental prerelease. The core X1E/OLED pen path and normal
multitouch have passed installed-system testing, but X1P hardware, eraser,
forced recovery, repeated suspend/resume, BitBake, and live-image qualification
remain open.

This release is paired with the
Surface Pro 11 qcom-x1e v19 kernel release,
installed ABI 7.2.0-jg-0sp11v19-qcom-x1e. The kernel exposes the private
HIDRAW DFT stream and remains the sole owner of direct touch and panel mode;
this userspace integration creates only the virtual stylus.

Artifact set

  • sp11-iptsd-3.1.0-sp11.1-arm64.tar.xz — installable ARM64 payload plus the
    exact sources, licenses, SBOM, build metadata, SP11 presets, lifecycle
    templates, installer, validator, OpenEmbedded recipe, and documentation.
  • sp11-iptsd-release-manifest.txt — source, builder, binary, bundle, kernel,
    and hardware-validation provenance.
  • SHA256SUMS — covers the other two uploaded assets exactly once.

The payload pins unmodified upstream linux-surface/iptsd v3.1.0 at commit
a83bc1232f7096f8b33b50fdbda249cd640de670, tree
06c6e812873e117930eca60b8a32cec40fd13281.

Verify and install on Debian/Ubuntu

Download all three assets into one otherwise-empty directory, then run:

sha256sum --check --strict SHA256SUMS
tar -xJf sp11-iptsd-3.1.0-sp11.1-arm64.tar.xz
cd sp11-iptsd-v1
sudo ./scripts/install-sp11-iptsd.sh --payload ./payload/iptsd-sp11

Reboot into the paired v19 kernel. The installer verifies the complete nested
payload, installs under /usr/local, disables the diagnostic g6-pen daemon,
masks generic iptsd@.service, installs both SP11 presets, and starts the
device-matched lifecycle through udev. Do not run generic iptsd, g6-pen, and
sp11-iptsd against the same stream concurrently.

These prebuilt binaries are dynamically linked ARM64 binaries produced in an
Ubuntu 26.04 environment. Their referenced runtime symbol floors are GLIBC
2.38, GLIBCXX 3.4.32, and CXXABI 1.3.15. Systems with older runtimes should
build natively from the included source instead of installing the binaries.

Arch, Fedora, Yocto, and other non-Debian systems

For a native package or source build, use:

Retain the device-specific 0c80/0c83 presets, disable iptsd touchscreen
synthesis, and adapt the guarded udev/systemd/sleep templates to the native
filesystem layout. Building only generic upstream iptsd without the SP11
presets and lifecycle policy is not the complete integration shipped here.

The archive includes the complete pinned upstream source and all Meson
fallback sources and patches needed to satisfy the GPL and dependency-license
source requirements.

Hardware validation

The exact iptsd payload in this archive was live-tested on X1E/OLED against a
v19 package built from kernel commit
ec96c9da79afffff460438471189e06ea1920aba, with the accepted Phase 84 values
supplied explicitly. The merged kernel source
2cbd1ec3e2da385e7bd91fd65c63ba5a8fb5b865 promotes those same X1E values to
defaults and enables the product-preserving X1P path. The newly rebuilt
companion kernel artifacts from that merge were source/package validated but
were not separately boot-tested before this prerelease.

In the X1E/OLED installed-system run:

  • hover/lift and continuous stylus input worked;
  • pressure ranged from 0 through 3309;
  • both tilt axes varied;
  • the barrel button worked;
  • normal one-, two-, and three-finger touch remained working;
  • one HIDRAW bridge, one daemon, and one virtual stylus owned the path; and
  • kernel taint, panel resets, transport/protocol errors, drain overflows, and
    daemon restarts remained zero.

X1P is enabled by the same bounded product-preserving path but still needs a
separate hardware run. Eraser transitions, forced recovery, repeated
suspend/resume, BitBake package-build, and live-image qualification also remain.

Unmodified iptsd v3.1.0 exposes BTN_STYLUS but not BTN_STYLUS2; a second or
top-button parity claim is outside this release.

Provenance

  • Support release commit and tag target:
    69f40d58afb4a6e92606d30bdefbd48dbf12a88d
  • Merged integration head:
    38fec2e11a2420149bdf71b69d3ff5fbb26c8b1f
  • Upstream iptsd commit:
    a83bc1232f7096f8b33b50fdbda249cd640de670
  • Builder image:
    ubuntu@sha256:2260313b31c8c011cd2eebe728008efac1b3982be73eb71348ea2648d2c0e09b
  • Companion kernel merge:
    2cbd1ec3e2da385e7bd91fd65c63ba5a8fb5b865
  • Live-tested v19 kernel source:
    ec96c9da79afffff460438471189e06ea1920aba

The payload passed exact manifest verification before publication. The
attached manifest records the binary and archive hashes. The build is not
claimed to be bit-for-bit reproducible.

Surface Pro 11 qcom-x1e Kernel Packages 7.2.0-jg-0sp11v14 — IMX681 front camera

Choose a tag to compare

Surface Pro 11 qcom-x1e Kernel Packages 7.2.0-jg-0sp11v14

Device-validated, experimental prebuilt qcom-x1e kernel packages for the
Microsoft Surface Pro 11. This release adds the standalone Sony IMX681 front
camera path merged through
linux_ms_dev_kit-sp11 PR #22.

For processed camera output through libcamera, PipeWire, Plasma Camera, Firefox,
Chrome, and WebRTC applications, install the paired
SP11 IMX681 libcamera package release.
The kernel provides the sensor, CAMSS transport, and V4L2 controls; the paired
userspace release provides the IMX681-aware Simple IPA helper, tuning data, and
coherently signed package set.

These packages are unsigned, are not an apt repository, and are specific to
the Surface Pro 11. Keep a known-good qcom-x1e fallback kernel and recovery
media available. Secure Boot may need to remain disabled for this bring-up
kernel.

Camera support

  • Standalone Sony IMX681 at CCI address 0x10.
  • 3840x2640 packed RAW10 at approximately 30 frames per second.
  • Validated IMX681 -> CSIPHY2 -> CSID0 -> VFE0 RDI0 media path.
  • One hardware-validated X1E C-PHY profile: physical trio 0 at 2.406 Gsymbol/s,
    represented by a 1.203 GHz V4L2 link frequency.
  • Standard exposure and analogue-gain controls, including the validated 24-bit
    exposure latch at 0x0229 and Sony reciprocal gain mapping.
  • Surface Pro 11 Denali device-tree integration and media-stack ownership of
    the privacy LED. LED polarity and lifetime remain follow-up validation work.

Package set

  • linux-qcom-x1e-headers-7.2.0-jg-0sp11v14_7.2.0-jg-0sp11v14_all.deb
  • linux-headers-7.2.0-jg-0sp11v14-qcom-x1e_7.2.0-jg-0sp11v14_arm64.deb
  • linux-modules-7.2.0-jg-0sp11v14-qcom-x1e_7.2.0-jg-0sp11v14_arm64.deb
  • linux-image-7.2.0-jg-0sp11v14-qcom-x1e_7.2.0-jg-0sp11v14_arm64.deb

The release also contains the exact tracked-source archive, a sanitized
build/provenance manifest, the exact package inventory, and SHA256SUMS.

Verify and install

Download SHA256SUMS and every asset named in it into one otherwise-empty
directory, then run:

sha256sum --check --strict SHA256SUMS

sudo apt install --reinstall -- \
  ./linux-qcom-x1e-headers-7.2.0-jg-0sp11v14_7.2.0-jg-0sp11v14_all.deb \
  ./linux-headers-7.2.0-jg-0sp11v14-qcom-x1e_7.2.0-jg-0sp11v14_arm64.deb \
  ./linux-modules-7.2.0-jg-0sp11v14-qcom-x1e_7.2.0-jg-0sp11v14_arm64.deb \
  ./linux-image-7.2.0-jg-0sp11v14-qcom-x1e_7.2.0-jg-0sp11v14_arm64.deb

Reboot and select 7.2.0-jg-0sp11v14-qcom-x1e, then confirm:

uname -r

The v14 Debian version was retained across several bring-up builds. Do not
identify this release by filename alone and do not mix it with older local v14
artifacts. Accept only the set whose SHA256SUMS and
sp11-kernel-release-manifest.txt identify source HEAD
64999b9fc6e60ebccdc3755563cafcc63930cc90.

Validation

On the released source-qualified package:

  • ten independent ten-frame RAW10 start/stop captures completed with exact
    frame sizes and changing content;
  • one continuous 60-frame run dequeued sequences 0 through 59 without a gap,
    at a 33.327 ms mean cadence;
  • all 15 recorded capture stops reported zero CSID ECC/CRC errors and zero VFE
    violation, overflow, and image-violation status;
  • at fixed gain 768, increasing exposure from 128 to 2400 raised decoded RAW10
    sample mean from 64.797 to 81.697, validating the exposure latch; and
  • the paired libcamera package exported Built-in Front Camera and supplied
    an active 1280x720 processed stream to Firefox and Google Meet. Repeated
    processed starts in the same boot also passed.

Core camera support is complete in
issue #43.
Suspend/resume resilience, full-range control and automatic-exposure
characterization, privacy-LED validation, black-pedestal confirmation, and
colour tuning remain explicitly scoped as nice-to-have follow-up work in
issue #54.

Provenance

  • Source URL: https://github.com/ooaklee/linux_ms_dev_kit-sp11.git
  • Source ref used by the build:
    sp11/integration-7.2.x-ooaklee-karsies-wq-cams
  • Exact source HEAD: 64999b9fc6e60ebccdc3755563cafcc63930cc90
  • Source archive:
    sp11-qcom-x1e-7.2.0-jg-0sp11v14-source-64999b9fc6e6.tar.xz
  • Local patches: none
  • Build target: binary-indep binary-qcom-x1e
  • Parallel jobs: 10
  • Rules runner: direct-root
  • Container image family: ubuntu:26.04
  • OE support/release-tool commit:
    aecdfa10ad39d7f1e3e612b748f23bc5189a06dd

The package build predates the later changelog-only camera-branch commit and
PR squash merge. Those later commits do not change the validated kernel code;
the binary provenance remains exact source HEAD 64999b9fc6e6. These
artifacts were built from recorded inputs and are not claimed to be
bit-for-bit reproducible.

Credits and references

Surface Pro 11 IMX681 libcamera package set

Choose a tag to compare

@ooaklee ooaklee released this 29 Aug 08:57

Surface Pro 11 IMX681 libcamera package set

IMX681-aware libcamera Simple IPA packages for the Microsoft Surface Pro 11
(X1E80100). This userspace release is paired with the
sp11-qcom-x1e-7.2.0-jg-0sp11v14 kernel release, installed ABI
7.2.0-jg-0sp11v14-qcom-x1e.

Install the paired kernel and all five packages below as coherent sets. The
libcamera core embeds the public key used to verify the same-build IPA module;
mixing package versions can make the IPA fail authentication.

Artifact set

  • libcamera0.7_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.deb
  • libcamera-ipa_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.deb
  • libcamera-tools_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.deb
  • libcamera-v4l2_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.deb
  • gstreamer1.0-libcamera_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.deb
  • libcamera_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.changes and libcamera_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.buildinfo preserve the original package-build
    records.
  • sp11-imx681-libcamera-build-manifest.txt records source, builder, input,
    package, and signature-verification provenance.
  • SHA256SUMS covers every other uploaded asset exactly once.

The original .changes also records development, Python, debug, and detached
debug-symbol outputs that were deliberately not selected for this bounded
runtime release. The attached manifest names those omitted build outputs.

Verify and install

Download SHA256SUMS and every asset named in it into one directory, then run:

sha256sum --check --strict SHA256SUMS

sudo apt install -- \
  ./libcamera0.7_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.deb \
  ./libcamera-ipa_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.deb \
  ./libcamera-tools_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.deb \
  ./libcamera-v4l2_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.deb \
  ./gstreamer1.0-libcamera_0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43_arm64.deb

Reboot after installing the paired kernel and userspace packages so every
camera client and service loads the same package generation.

Firefox needs media.webrtc.camera.allow-pipewire=true. Chromium and Google
Chrome need the WebRtcPipeWireCamera feature, exposed by
chrome://flags/#enable-webrtc-pipewire-camera when available.

Validation

This exact five-package version was installed and validated on the target
Surface Pro 11 with the paired camera kernel. The simple IPA selected
simple/imx681.yaml, its signature verified against the same-build core,
PipeWire/WirePlumber published Built-in Front Camera, and Firefox Google
Meet received a processed 1280x720 stream. Raw capture also passed repeated
and continuous transport tests. Non-blocking resilience, automatic-exposure,
privacy-LED, pedestal, and colour-calibration follow-up remains in
issue #54.

Provenance

  • Package version: 0.7.0-1ubuntu2+sp11.1.20260829040923655984892.cf8d1a113b7f11ccfea732c24299cd43
  • Package-build support commit: 92acde621d348d759d9ec4bba2d9d33a2b902a9a
  • Release-tool support commit and tag target: aecdfa10ad39d7f1e3e612b748f23bc5189a06dd
  • Ubuntu source package: 0.7.0-1ubuntu2
  • Ubuntu source URL: https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/libcamera/0.7.0-1ubuntu2
  • Builder image: sha256:2260313b31c8c011cd2eebe728008efac1b3982be73eb71348ea2648d2c0e09b
  • Build jobs: 10
  • Package inputs and output hashes: sp11-imx681-libcamera-build-manifest.txt

The exact downstream patch, tuning, base-source hashes, and builder are retained
in the immutable sp11-imx681-libcamera-v1 support tree
and in the attached provenance records. These artifacts were built from the
recorded inputs; bit-for-bit reproducibility is not claimed.

The IMX681 Simple IPA work derives from
turbineBMW,
with SP11 integration informed by karsies-wq
and geocausa.

Surface Pro 11 qcom-x1e Kernel Packages 7.2.0-jg-0sp11v12 — FullIO v19c audio

Choose a tag to compare

@ooaklee ooaklee released this 27 Aug 07:18
2f97c3d

Surface Pro 11 qcom-x1e Kernel Packages

Experimental prebuilt qcom-x1e kernel packages for Surface Pro 11. Introduces additional SP11 mic support by geocausa for:

These artifacts are optional conveniences. They are unsigned, are not an apt
repository, and should be used only with a known-good fallback qcom-x1e kernel
still installed.

Packages

  • linux-qcom-x1e-headers-7.2.0-jg-0sp11v12_7.2.0-jg-0sp11v12_all.deb
  • linux-headers-7.2.0-jg-0sp11v12-qcom-x1e_7.2.0-jg-0sp11v12_arm64.deb
  • linux-modules-7.2.0-jg-0sp11v12-qcom-x1e_7.2.0-jg-0sp11v12_arm64.deb
  • linux-image-7.2.0-jg-0sp11v12-qcom-x1e_7.2.0-jg-0sp11v12_arm64.deb

The build manifest and package inventory are attached as
sp11-kernel-build-manifest.txt and sp11-kernel-debs.txt.

Audio

Use the compatible FullIO v19c topology and UCM audio release.

Provenance

  • Source URL: https://github.com/ooaklee/linux_ms_dev_kit-sp11.git
  • Source ref: sp11/integration-7.2.x-ooaklee-geocausa-mic
  • Source HEAD: 36870b6257fddedc22bee26da89626a5f38f7190
  • Local patches: none

These artifacts were built from recorded inputs; they are not claimed to be
bit-for-bit reproducible.

Surface Pro 11 FullIO v19c audio

Choose a tag to compare

@ooaklee ooaklee released this 27 Aug 07:19
2f97c3d

Surface Pro 11 FullIO v19c audio

AudioReach FullIO v19c topology and matching ALSA UCM for the Microsoft Surface
Pro 11 (X1E80100). This release is paired with the geocausa v12 kernel release
sp11-qcom-x1e-7.2.0-jg-0sp11v12
(installed ABI: 7.2.0-jg-0sp11v12-qcom-x1e).

Artifact set

  • X1E80100-Microsoft-Surface-Pro-11-tplg.bin — FullIO v19c topology, installed at
    /lib/firmware/qcom/x1e80100/X1E80100-Microsoft-Surface-Pro-11-tplg.bin.
  • MICROSOFT-Surface-Pro-11in.conf — SP11 UCM card profile, installed under
    /usr/share/alsa/ucm2/Qualcomm/x1e80100/.
  • SP11-HiFi.conf — HiFi speaker and microphone verb, installed under
    /usr/share/alsa/ucm2/Qualcomm/x1e80100/.
  • x1e80100.conf — DMI matcher selecting the SP11 card profile,
    installed at /usr/share/alsa/ucm2/conf.d/x1e80100/x1e80100.conf.
  • SHA256SUMS — hashes for the four installable artifacts.

Verify and install

Run from the directory containing the downloaded release assets:

sha256sum -c SHA256SUMS
sudo install -Dm0644 X1E80100-Microsoft-Surface-Pro-11-tplg.bin /lib/firmware/qcom/x1e80100/X1E80100-Microsoft-Surface-Pro-11-tplg.bin && sudo install -Dm0644 MICROSOFT-Surface-Pro-11in.conf /usr/share/alsa/ucm2/Qualcomm/x1e80100/MICROSOFT-Surface-Pro-11in.conf && sudo install -Dm0644 SP11-HiFi.conf /usr/share/alsa/ucm2/Qualcomm/x1e80100/SP11-HiFi.conf && sudo install -Dm0644 x1e80100.conf /usr/share/alsa/ucm2/conf.d/x1e80100/x1e80100.conf

Reboot after installation: q6apm requests the topology while the ASoC component
probes, before PipeWire or WirePlumber applies the UCM HiFi verb.

Provenance

  • SP11X1e-audio release: native-audio-fullio-v19c-20260826
  • SP11X1e-audio commit: 7af8f21e9966f6f6adb40c102653b6acb5d81742
  • OE support commit: 2f97c3d672c7c28acfe39173679a9924489b3c69
  • Topology SHA-256: e7bb06a03e7bd9b869825a51775355a6743477d1579d78eb09fad5881cfb20f0
  • Card UCM SHA-256: 225976f925624f156d9fab84e15a5126a60a236783cfcb82d43d2a2aec028d7b
  • HiFi UCM SHA-256: 9d36df8570b85f1dcecc385a8f85fa2d1e1058ef8efedee6ae2ce49dc259a06a

The topology contains protected vendor-derived bytes. Keep it outside kernel
packages and preserve this dedicated, explicitly reviewed redistribution
boundary.

Surface Pro 11 qcom-x1e Kernel Packages 7.2.0-jg-0sp11v11 — X1P touchscreen and Denali battery

Choose a tag to compare

Surface Pro 11 qcom-x1e Kernel Packages

Experimental prebuilt qcom-x1e kernel packages for Surface Pro 11. Introduces additional SP11 support & fixes by kyjus25 for:

  • X1P touchscreen — support for the X1P MSHW0485 touchscreen product ID
    (0x0c80) alongside the X1E (0x0c83); descriptor validation now accepts both
    (ooaklee/linux_ms_dev_kit-sp11#18, merged into this head)
  • Denali battery — skip the SAM battery provider on Denali; Qualcomm battmgr
    is the authoritative battery source there
    (ooaklee/linux_ms_dev_kit-sp11#18)

Includes the v10 native audio work (Golden v33 audio parity from
geocausa: protected SP/SPVI graph with VI+CPS
feedback, TOP_CFG1 materialisation, WSA protection-clock lifecycle, and
SoundWire feedback-port Offset2 parity).

These artifacts are optional conveniences. They are unsigned, are not an apt
repository, and should be used only with a known-good fallback qcom-x1e kernel
still installed.

Verify

Download SHA256SUMS and every asset named in it, then run:

(cd /path/to/downloaded-release-assets && shasum -a 256 -c SHA256SUMS)

Install Flow

  1. Copy the verified .deb files into local payload/kernel-debs/.
  2. Rebuild and write the Surface Pro 11 USB image.
  3. On the Surface, install using:
sudo ./scripts/build-sp11-qcom-x1e-kernel.sh \
  --work-dir "$SP11DATA/payload/kernel-debs" \
  --install-only

Provenance

See sp11-kernel-release-manifest.txt for package hashes, source metadata,
support repository commit, and local-patch provenance.

Recorded source:

  • Source URL: https://github.com/ooaklee/linux_ms_dev_kit-sp11.git
  • Source ref: sp11/integration-7.2.x
  • Source HEAD: 3fc7c5249f4aa9ef70d1f63e82201c8a21b33827
  • Docker image: ubuntu:26.04
  • Local patches: none

These artifacts were built from recorded inputs; they are not claimed to be
bit-for-bit reproducible.

Updating from a previous kernel

Upgrading from v10 is a drop-in replacement; no migration steps are required.
If you are updating from an earlier 7.2.0-jg-0sp11v* kernel (v8/v9 or older),
follow the native-audio migration guide, which installs the canonical topology

Audio release

The sp11-audio-v19c release provides the FullIO v19c topology + UCM pairing for the geocausa v12 kernel line.

Surface Pro 11 qcom-x1e Kernel Packages 7.2.0-jg-0sp11v10 — Golden v33 Audio Parity from geocausa

Choose a tag to compare

Surface Pro 11 qcom-x1e Kernel Packages

Experimental prebuilt qcom-x1e kernel packages for Surface Pro 11. Introduces
SP11 support for:

  • Native audio — Golden v33 audio parity from geocausa: Windows-parity protected SP/SPVI graph with VI+CPS feedback (pull mode), TOP_CFG1 materialisation, WSA protection-clock lifecycle, and SoundWire feedback-port Offset2 parity, hardware-verified on 7.2.0-jg-0sp11v10 (ooaklee/linux_ms_dev_kit-sp11#17, merged into this head)

These artifacts are optional conveniences. They are unsigned, are not an apt
repository, and should be used only with a known-good fallback qcom-x1e kernel
still installed.

Verify

Download SHA256SUMS and every asset named in it, then run:

(cd /path/to/downloaded-release-assets && shasum -a 256 -c SHA256SUMS)

Install Flow

  1. Copy the verified .deb files into local payload/kernel-debs/.
  2. Rebuild and write the Surface Pro 11 USB image.
  3. On the Surface, install using:
sudo ./scripts/build-sp11-qcom-x1e-kernel.sh \
  --work-dir "$SP11DATA/payload/kernel-debs" \
  --install-only

Provenance

See sp11-kernel-release-manifest.txt for package hashes, source metadata,
support repository commit, and local-patch provenance.

Recorded source:

  • Source URL: https://github.com/ooaklee/linux_ms_dev_kit-sp11.git
  • Source ref: sp11/integration-7.2.x-geocausa-sound
  • Source HEAD: 18d3183394278d27987ac786cf973ac84a8093e0
  • Docker image: ubuntu:26.04
  • Local patches: none

These artifacts were built from recorded inputs; they are not claimed to be
bit-for-bit reproducible.

Updating from a previous kernel

If you are updating from an earlier 7.2.0-jg-0sp11v* kernel (v8/v9 or older), follow the native-audio migration guide, which installs the canonical topology + UCM, removes the old workaround configs, sets the Offset2 boot parameter, and verifies the native sink:
https://github.com/ooaklee/linux-surface-pro-11-oe/blob/main/docs/how-to/how-to-migrate-to-native-audio.md

Audio release

The sp11-audio-v19c release provides the FullIO v19c topology + UCM pairing for the geocausa v12 kernel line.