HP Spectre x360 15-df1010na - ArchWiki

Jump to content

Hardware | PCI/USB ID | Working?
--- | --- | ---
Touchpad |  | Yes
Keyboard |  | Yes
GPU | `10de:1f91` | Yes
Webcam | `0408:5255` | Yes
Bluetooth | `` | Yes
SD-card reader | `10ec:525a` | Untested
Audio | `8086:a348` | Yes
GPU Audio | `10de:10fa` | Yes
Wireless | `8086:2723` | Yes
Fingerprint reader |  | No
TPM |  | Yes
Thunderbolt | `8086:15ea` | Yes

## Installation

Secure Boot must be disabled in the BIOS. The BIOS can be accessed by holding down `Esc` while booting, then pressing `F10` when the options screen is shown. `F9` can be used to select the boot device.

## Firmware

fwupd supports this device.

## Biometrics

### Fingerprint Scanner

Tested using Fprint, fprintd-enroll reports that the device cannot be found.

### Windows Hello

Facial recognition works using Howdy.

## Audio

If audio does not work initially, create the file `/etc/modprobe.d/alsa-base.conf` with the following line.

    options snd-hda-intel

The audio mute button works by default but with no led indicator to show its state. Suggested fixes including adding `model=hp-gpio-led` after `snd-hda-intel` but this does not appear to work for this model.

## Power management

For general battery improvements, thermald and auto-cpufreqAUR seem to help, although battery life is still poor.

Unfortunately HP do not support s3 sleep (see Power management/Suspend and hibernate) for this laptop, which leads to extreme battery drain when left in 'suspend' mode (s2idle).

This can be fixed by modifying the DSDT, but resuming from suspend with deep sleep is unreliable, rendering this method pointless. An alternative solution to saving power would be using hibernation and then focusing on improving the boot time to bring wakeup from hibernation closer to wakeup from suspend times.

### ACPI override to support S3 sleep

The factual accuracy of this article or section is disputed.

Reason: Resuming from suspend with this method is unreliable and will usually leave you needing to reboot. The methods outlined in Power management/Suspend and hibernate#Troubleshooting do not seem to solve this. If you find a solution please update this page. (Discuss in Talk:HP Spectre x360 15-df1010na)

Initially the only supported sleep on this model will be `s2idle`:

    $ cat /sys/power/mem_sleep
    [s2idle]

Tip: acpica contains both iasl and acpidump.

Extract and disassemble the DSDT tables:

    # mkdir /tmp/acpi_patch && cd /tmp/acpi_patch
    # acpidump -b # extract current DSDT tables
    # iasl -d dsdt.dat # disassemble to dsdt.dsl

You now need to modify the file `dsdt.dsl` using a text editor. Find the section which begins with `DefinitionBlock ("", "DSDT", 2, "HPQOEM", "863E ",` and increment the final number (remember to increment it as hex).

For example:

    DefinitionBlock ("", "DSDT", 2, "HPQOEM", "863E    ", 0x01072009)

Should be changed to

    DefinitionBlock ("", "DSDT", 2, "HPQOEM", "863E    ", 0x0107200a)

Then the definition for `S3 System State` needs to be added between the sections for `// _S0_: S0 System State` and `// _S4_: S4 System State`. This should end up as follows:

       Name (_S0, Package (0x04)  // _S0_: S0 System State
       {
           Zero,
           Zero,
           Zero,
           Zero
       })
       Name (_S3, Package(0x04) //  _S3_: S3 System State
       {
           0x03,
           0x03,
           Zero,
           Zero
       })
       Name (_S4, Package (0x04)  // _S4_: S4 System State
       {
           0x06,
           Zero,
           Zero,
           Zero
       })

You then need to recompile the DSDT tables and create a cpio override archive:

    # iasl -tc dsdt.dsl # recompile
    # mkdir -p kernel/firmware/acpi
    # cp dsdt.aml kernel/firmware/acpi
    # find kernel | cpio -H newc --create > /boot/acpi_override

Then add the cpio override to the boot options. For example, with systemd-boot you can add `initrd /acpi_override` above the line with `initrd /initramfs-linux.img` in your entry config (e.g. /boot/loader/entries/arch.conf). For more info see DSDT#Using modified code.

After a reboot you should see that deep sleep has been enabled:

    $ cat /sys/power/mem_sleep
    [s2idle] deep

However, although deep sleep is available, it is not always used.

If the journal for the current boot includes `kernel: PM: suspend entry (s2idle)` then you also need to add `mem_sleep_default=deep` to your kernel parameters. When it is working you should see `PM: suspend entry (deep)` in the journal.

Category:

- HP

Hidden category:

- Pages or sections flagged with Template:Accuracy