Skip to content

Surface Pro 11 iptsd 3.1.0 integration (experimental)

Pre-release
Pre-release

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.