HP Envy x360 15-ew0xxx

From ArchWiki
Hardware PCI/USB ID Working?
Touchpad Yes
Keyboard Yes
GPU (Intel) 8086:46a8 Yes
GPU (NVIDIA) Yes
Webcam 04f2:b767 Yes
IR Webcam 1234:abcd Yes
Bluetooth Yes
SD-card reader Yes
Speakers Partial
Microphone Partial
Wireless 8086:51f0 Yes
TPM Untested
Screen orientation sensor Untested
Touch screen Yes
Stylus Untested

This article or section does not follow the Laptop page guidelines.

Reason: Missing an accessibility and function key section (Discuss in Talk:HP Envy x360 15-ew0xxx)

Installation

This laptop comes with Secure Boot enabled, so this must be disabled for the Arch Linux ISO to boot.

Firmware

Hibernation

After resuming from a hibernation, the keyboard and mouse appear not to work. However, all connected USB devices and the touch screen still work.

Secure Boot

This device allows the use of custom keys, but it is untested whether Microsoft Windows keys are required to make the dedicated graphics work. The card works with the Windows keys.

Audio

Speakers

The HP Envy x360 15-ew0xxx has a Realtek speaker set, and a Cirrus Logic amplifier. Both of these need patches to the kernel for them to work. The 3.5mm headphone jack works with no modifications.

Note: Applying this patch means that the microphone will not work, due to the nature of this patch
Warning: If this patch is used, it has the possibility to cause damage to your speakers[1]. Use at your own risk

To start, clone this repository, which contains the required patches and scripts to install the needed dkms modules

$ git clone https://github.com/Parmjot-Singh/hp-15-ew0xxx-snd-fix.git

After this, change both scripts' permissions to make them executable.

The setup_snd-hda-scodec-cs35l41.sh script is for the Cirrus Logic amplifier, and the setup_snd-hda-codec-realtek.sh script is for the Realtek speakers.

Once this is done, you can execute both scripts, which will install needed packages and create DKMS modules to patch the existing kernel modules.

$ ./setup_snd-hda-scodec-cs35l41.sh
$ ./setup_snd-hda-codec-realtek.sh

Once these scripts have finished without any errors, you can reboot, and check the journal for the relevant output to see if the modules are working as intended.

For the Cirrus Logic amplifiers:

cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Reset line busy, assuming shared reset
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2

And the Realtek speakers:

cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Falling back to default firmware.
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: Firmware version: 3
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot.wmfw: Fri 24 Jun 2022 14:55:56 GMT Daylight Time
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot.bin: v0.58.0
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings\internal\CS35L53\Fixed_Attenuation_Mono_48000_29.78.0\full\Fixed_Attenuation_Mono_48000_29.78.0_full.bin
snd_hda_codec_realtek ehdaudio0D0: bound i2c-CSC3551:00-cs35l41-hda.0 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])

See Also