HP Laptop 15s-eq1124nw

From ArchWiki
Hardware PCI/USB ID Working?
Bluetooth 0bda:b00c Untested
Webcam 0408:5365 Yes
Wi-Fi 10ec:c822 Yes
GPU (AMD) 1002:1636 Yes
Touchpad Yes
Keyboard Yes
TPM Untested
SD-card reader 058f:6366 Yes
Audio (Onboard + jack) 1022:15e3 Yes
Audio (HDMI?) 1022:15e2 Untested
Speakers Yes
Microphone Yes

The HP 15s-eq1124nw is a laptop featuring a 15.6" FHD IPS display, 16GB of RAM (2x8GB, 2666MHz), 512GB NVMe SSD, and a AMD Ryzen 5 4500U with integrated graphics.

Installation

The Realtek RTL8822CE network card and integrated AMD GPU graphics card require linux-firmware to be installed.

Accessibility

The BIOS setup is a simple, text-based interface, navigated with a keyboard. It does not expose many options apart from the standard time/date settings, and boot configuration.

To show a list of all available menus, press Esc.

To access the BIOS setup, press F10.

To access the boot menu, press F9.

Firmware

fwupd does not support this device.

Secure Boot

Secure Boot is untested, The device does not come with any Secure Boot keys installed from the factory, but there is an option in the BIOS to install HP factory keys.

Suspend-to-RAM

See Power management/Suspend and hibernate#Changing suspend method for the general context in which this workaround applies.

The firmware does not expose the necessary ACPI object (\_S3) to support suspend-to-RAM, but it does have a similarly named object (\XS3), which is most likely patched at boot-time to enable this functionality (although there is no BIOS option to configure this). One can manually add support for suspend-to-RAM by doing the following:

First, get the iasl compiler by installing the acpica package.

Then compile the following source using iasl <file>.asl:

DefinitionBlock ("ssdt.aml", "SSDT", 1, "HACK  ", "S3      ", 0x00000001)
{
	Scope (\)
	{
		Name (_S3, Package (0x04)
		{
			0x03,
			Zero,
			Zero,
			Zero
		})
	}
}

And finally, tell the kernel to use the new ACPI table.

Webcam

The webcam supports 720p, but this resolution is only available when not using the YUYV 4:2:2 video format (checked with OBS).

Function keys

By default, keys F1-F12 perform their alternative functions, and Fn+Fx is needed to press Fx, but there is a BIOS option to change this behavior. The following table assumes this setting was disabled.

Key Visible?1 Marked?2 Effect
Fn+F2 Yes Yes XF86XF86MonBrightnessDown
Fn+F3 Yes Yes XF86MonBrightnessUp
Fn+F4 Yes Yes XF86Display
Fn+F6 Yes Yes XF86AudioMute
Fn+F7 Yes Yes XF86AudioLowerVolume
Fn+F8 Yes Yes XF86AudioRaiseVolume
Fn+F9 Yes Yes XF86AudioPrev
Fn+F10 Yes Yes XF86AudioPlay
Fn+F11 Yes Yes XF86AudioNext
Fn+F12 Yes3 Yes XF86RFKill
  1. The key is visible to xev and similar tools.
  2. The physical key has a symbol on it, which describes its function.
  3. systemd handles this by default, but does not consume it.

Additionally, Linux logs the following unknown key (what key combination triggers them is yet to be identified):

[11654.430121] atkbd serio0: Unknown key pressed (translated set 2, code 0xab on isa0060/serio0).
[11654.430130] atkbd serio0: Use 'setkeycodes e02b <keycode>' to make it known.
[11654.555213] atkbd serio0: Unknown key released (translated set 2, code 0xab on isa0060/serio0).
[11654.555224] atkbd serio0: Use 'setkeycodes e02b <keycode>' to make it known.

Kernel warnings

The kernel reports that the TSC timer is unstable:

[    2.611935] clocksource: timekeeping watchdog on CPU4: Marking clocksource 'tsc' as unstable because the skew is too large:
[    2.611947] clocksource:                       'hpet' wd_nsec: 504249213 wd_now: 22757d5 wd_last: 1b92cfa mask: ffffffff
[    2.611952] clocksource:                       'tsc' cs_nsec: 503421858 cs_now: 3ac0cfb3c cs_last: 364cd6eec mask: ffffffffffffffff
[    2.611955] clocksource:                       'tsc' is current clocksource.
[    2.611959] tsc: Marking TSC unstable due to clocksource watchdog
[    2.611970] TSC found unstable after boot, most likely due to broken BIOS. Use 'tsc=unstable'.

The kernel also reports the following ACPI errors:

[    0.886837] ACPI: \_SB_.PLTF.P000: Found 3 idle states
[    0.886847] ACPI: FW issue: working around C-state latencies out of order
[    0.887006] ACPI: \_SB_.PLTF.P001: Found 3 idle states
[    0.887013] ACPI: FW issue: working around C-state latencies out of order
[    0.887337] ACPI: \_SB_.PLTF.P002: Found 3 idle states
[    0.887343] ACPI: FW issue: working around C-state latencies out of order
[    0.887481] ACPI: \_SB_.PLTF.P003: Found 3 idle states
[    0.887488] ACPI: FW issue: working around C-state latencies out of order
[    0.887703] ACPI: \_SB_.PLTF.P004: Found 3 idle states
[    0.887709] ACPI: FW issue: working around C-state latencies out of order
[    0.887888] ACPI: \_SB_.PLTF.P005: Found 3 idle states
[    0.887894] ACPI: FW issue: working around C-state latencies out of order
[    0.900991] ACPI Error: AE_NOT_FOUND, While resolving a named reference package element - \_PR_.P000 (20210730/dspkginit-438)
[20108.010179] ACPI BIOS Error (bug): Could not resolve symbol [\_PR.P000.PPCV], AE_NOT_FOUND (20210730/psargs-330)
[20108.010191] ACPI Error: Aborting method \_SB.CPUS due to previous error (AE_NOT_FOUND) (20210730/psparse-529)
[20108.010198] ACPI Error: Aborting method \_SB.PCI0.SBRG.EC0._Q20 due to previous error (AE_NOT_FOUND) (20210730/psparse-529)

Despite these errors, the system is stable and operates correctly.

See also