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.
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.
AUR can be installed which may enable brightness control under GNOME (and possibly other environments).
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:
sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01 sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01 sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01 sudo 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.
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.
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 ...