HP Spectre x360 (2020)
This article covers hardware specific configuration of this laptop, some minor issues remain after customization. These can be performed after an installation of Arch Linux has been finished and the machine rebooted into it.
For a general overview of laptop-related articles and recommendations, see Laptop.
This wiki covers the HP Spectre x360 released in 2020 containing TigerLake CPUs. The SKUs covered by this article include, but might not be limited to:
Installation should be uneventful except that the vmd (Intel Volume Management Device) module needs to be added to
/etc/mkinitcpio.conf in order for the freshly installed OS to boot properly.
If you are using archinstall this should happen automatically.
Brightness / backlight (OLED Screens)
See Backlight for more information on how to configure backlight control. Some OLED displays require additional software to be able to adjust the backlight as there is not really a backlight. See also Backlight#Unable to control eDP Panel brightness (Intel i915 only) in this case.
icc-brightness-gnome-gitAUR can be installed which may enable brightness control under GNOME (and possibly other environments).
For GNOME and Plasma and possibly others install iio-sensor-proxy.
This laptop requires firmware in order for the soundcard to work. See Advanced Linux Sound Architecture#ALSA firmware.
Ensure that PulseAudio is configured and running. Ensure that PulseAudio can detect the sound card via pactl list cards like so:
$ pactl list cards Card #0 Name: alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic Driver: module-alsa-card.c Owner Module: 6 Properties: alsa.card = "0" alsa.card_name = "sof-hda-dsp" alsa.long_card_name = "HP-HPSpectrex360Convertible14t_ea000--87F7" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "a0c8" device.product.name = "Tiger Lake-LP Smart Sound Technology Audio Controller" device.string = "0" device.description = "Tiger Lake-LP Smart Sound Technology Audio Controller" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" Profiles: HiFi: Play HiFi quality Music (sinks: 4, sources: 2, priority: 8000, available: yes) off: Off (sinks: 0, sources: 0, priority: 0, available: yes) Active Profile: HiFi Ports: [Out] HDMI3: HDMI3 Output (type: HDMI, priority: 700, latency offset: 0 usec, not available) Part of profile(s): HiFi [Out] HDMI2: HDMI2 Output (type: HDMI, priority: 600, latency offset: 0 usec, not available) Part of profile(s): HiFi [Out] HDMI1: HDMI1 Output (type: HDMI, priority: 500, latency offset: 0 usec, not available) Part of profile(s): HiFi [Out] Speaker: Speaker (type: Speaker, priority: 100, latency offset: 0 usec, availability unknown) Part of profile(s): HiFi [Out] Headphones: Headphones (type: Headphones, priority: 200, latency offset: 0 usec, not available) Part of profile(s): HiFi [In] Mic2: Headphones Stereo Microphone (type: Mic, priority: 200, latency offset: 0 usec, not available) Part of profile(s): HiFi [In] Mic1: Digital Microphone (type: Mic, priority: 100, latency offset: 0 usec, availability unknown) Part of profile(s): HiFi
No additional configuration should be required to get PulseAudio to detect the card.
Kernels prior to 5.14.2
The information below pertains to kernels before 5.14.2 and is kept in case of new models which require additional kernel patches.
Once the card is detected, you need to run the following:
# hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01 # hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01 # hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01 # hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00
Then restart PulseAudio. You might need to apply the above changes twice to get them to take effect. The above will need to be run on every boot until upstream makes the required changes. This is because "The audio chip has an amplifier pin that needs to be set. It is pin 1..."
The kernel may be patched by updating the quirk list at sound/pci/hda/patch_realtek.c with the appropriate subdevice ID.
After boot or resume the keyboard may fail to respond for up to 30 seconds. This is due to a bug in the i8042 emulation provided by the firmware. This can be worked around with a modified i8042 module using DKMS. Follow the instructions here to install the module.
All function keys work as expected except the keys mentioned below.
Mute Button Light (F5)
Microphone Mute (F8)
The OS does not recognize the key press, but it does detect it and can be manually configured.
[ 2834.402270] atkbd serio0: Unknown key pressed (translated set 2, code 0x82 on isa0060/serio0). [ 2834.402274] atkbd serio0: Use 'setkeycodes e002 <keycode>' to make it known. [ 2834.487944] hp_wmi: Unknown key code - 0x270 [ 2834.494508] atkbd serio0: Unknown key released (translated set 2, code 0x82 on isa0060/serio0). [ 2834.494514] atkbd serio0: Use 'setkeycodes e002 <keycode>' to make it known.
Create the following file
# systemd-hwdb update
and reboot for good measure.
The Disable Camera button physically disconnects the Webcam device from the host. The OS does not recognize the keypress, but it is detected.
[ 2449.374540] hp_wmi: Unknown event_id - 26 - 0xff [ 2449.480281] usb 3-5: USB disconnect, device number 5
[ 2451.701121] hp_wmi: Unknown event_id - 26 - 0xfe [ 2451.930245] usb 3-5: new high-speed USB device number 6 using xhci_hcd [ 2452.072569] usb 3-5: New USB device found, idVendor=0408, idProduct=5442, bcdDevice= 0.11 [ 2452.072574] usb 3-5: New USB device strings: Mfr=3, Product=1, SerialNumber=2 [ 2452.072576] usb 3-5: Product: HP True Vision HD Camera ...
The fingerprint reader is not supported out of the box by libfprint. An experimental driver has been developed by Davide Depau and at the time of writing there is an open Merge Request to libfprint to add this driver: .
Until this driver has been merged the package libfprint-elanmoc2-gitAUR may be used which builds directly from Davide's repository. This driver has limitations, in particular it requires that all existing prints to be cleared before it will work, see the MR for more details.
If you have removed Windows and wish to clear all prints then this is possible from the BIOS menu.
For more information on libfprint see Fprint.