Skip to content

Add HP EliteBook X G2i hardware support - #6596

Draft
meirdick wants to merge 2 commits into
basecamp:quattrofrom
meirdick:hp-elitebook-x-g2i
Draft

Add HP EliteBook X G2i hardware support#6596
meirdick wants to merge 2 commits into
basecamp:quattrofrom
meirdick:hp-elitebook-x-g2i

Conversation

@meirdick

@meirdick meirdick commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Adds hardware support for the HP EliteBook X G2i (Panther Lake). On a stock
install this machine has no working speakers, microphone or webcam, and the
fingerprint reader is not detected.

The packages are in omacom-io/omarchy-pkgs#124. This PR adds the gate that
installs them, the speaker tuning, and the fingerprint detection fix.

install/hardware/hp/elitebook-x-g2i.sh

New hp/ directory, following the existing asus/, apple/, lenovo/,
framework/ and intel/ layout.

if omarchy-hw-match "EliteBook X G2i"; then
  omarchy-pkg-add hp-elitebook-x-g2i-audio
  if grep -q "OVTI05C1" /sys/bus/acpi/devices/*/hid 2>/dev/null; then
    omarchy-pkg-add hp-elitebook-x-g2i-camera
  fi
fi

The audio fix applies to the model line. The camera fix also requires the
OV05C10 sensor, so an EliteBook with a different camera module does not get it.

In all.sh the call goes after intel/ptl-kernel.sh. Both packages pull DKMS
modules, and the existing comment for intel-ipu7-camera gives the same reason:
building against the stock kernel and then rebuilding against linux-ptl wastes
install time.

default/audio/tunings/hp-elitebook-x-g2i/

Same shape as dell-xps-2026. A 100 Hz high-pass, thirteen biquads and a
lookahead limiter, applied in front of the internal speaker sink. It adds the
voicing the Windows DTS APO layer provides and Linux does not. The stock path
already programs the TAS2783 amps.

Matched on match_sku=("D4DU1UT#ABA"). HP keys the tuning per board, so the
match must stay narrow.

Provenance: the biquad coefficients were decoded from HP's factory DTS:X Ultra
data on the machine's own Windows partition. They are derived values. No vendor
file is included.

bin/omarchy-hw-fingerprint

Adds elan:arm-m4 to the product string check. Elan match-on-chip readers
report ELAN:ARM-M4 rather than a function name, and Elan's vendor ID is left
out of fingerprint_vendors on purpose because Elan also makes touchscreens. So
both existing checks miss, and the reader is never found.

This is the same change as #6578. This branch is stacked on that one, so this PR
delivers a complete machine while #6578 is open. If #6578 merges first, a rebase
removes the change from this diff.

Testing

Verified on the reference machine. Both gates match. Speakers, microphone and
webcam work, the tuning applies, and the fingerprint reader is detected.

🤖 Generated with Claude Code

meirdick and others added 2 commits August 6, 2026 11:45
Elan readers report "ELAN:ARM-M4" as their product string, so the
*fingerprint* and *biometric* checks miss them. Elan's 04f3 is also left
out of the vendor list on purpose, because Elan makes touchscreens too.
Both checks fail, so the machine looks like it has no reader.

Add "elan:arm-m4" to the product string check. The comment above the
vendor list already says the excluded vendors should still match there,
so this makes that true. The vendor list and its has_kernel_driver guard
are unchanged, and touchscreens still cannot cause a false positive.

The string is a family name, not one device. libfprint uses it for
04f3:0c9c and 04f3:0ca7 as well as 04f3:0ca8.

Tested on an HP EliteBook X G2i with 04f3:0ca8.
On a stock install this machine has no working speakers, microphone or
webcam.

Adds a hardware-gated script that installs the two packages from
omacom-io/omarchy-pkgs#124, and the speaker tuning. The audio gate matches
the model line; the camera gate also requires the OV05C10 sensor, so an
EliteBook with a different camera module does not get it.

The call goes after intel/ptl-kernel.sh: both packages pull DKMS modules,
and the existing comment for intel-ipu7-camera gives the same reason.

The tuning coefficients were decoded from HP's factory DTS:X Ultra data on
the machine's own Windows partition. They are derived values; no vendor
file is included.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds targeted HP EliteBook X G2i support for audio, webcam, speaker tuning, and fingerprint detection.

Changes:

  • Installs model-specific audio and camera packages.
  • Adds SKU-gated PipeWire speaker tuning.
  • Detects Elan ARM-M4 fingerprint readers.

Tip

If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
install/hardware/hp/elitebook-x-g2i.sh Adds HP hardware detection and package installation.
install/hardware/all.sh Runs the new HP setup leaf.
default/audio/tunings/hp-elitebook-x-g2i/tuning.conf Defines tuning matching and metadata.
default/audio/tunings/hp-elitebook-x-g2i/README.md Documents tuning provenance and activation.
default/audio/tunings/hp-elitebook-x-g2i/filter-chain.conf Implements the stereo EQ and limiter graph.
bin/omarchy-hw-fingerprint Recognizes Elan ARM-M4 readers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +30 to +31
derived_from="HP/DTS factory tuning blob dts_gpeq_mode1 (SSID 8E86103C), decoded"
validated_hardware="HP EliteBook X G2i (D4DU1UT#ABA, SSID 8E86103C)"
Comment on lines +33 to +36
## Headroom: the EQ cascade (high-pass included) peaks at +3.66 dB at 1.86 kHz
## on the 48 kHz bank. The limiter input gain of -4.66 dB places a full-scale
## sine at that frequency exactly at the -1 dBFS limiter threshold.
limiter_headroom_db="0.0"
Comment on lines +33 to +34
Established by decoding both sample-rate variants of every mode to mutually
consistent curves (see `../decode_dts_gpeq.py`):
Comment on lines +94 to +101
## Install

```
sudo cp -r audio-tuning/hp-elitebook-x-g2i /usr/share/omarchy/default/audio/tunings/
omarchy-audio-tuning on
```

Requires `lsp-plugins-lv2` for the limiter.
@meirdick
meirdick marked this pull request as draft August 7, 2026 11:25
@meirdick
meirdick marked this pull request as ready for review August 7, 2026 11:27
@meirdick
meirdick marked this pull request as draft August 7, 2026 13:07
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.

2 participants