Lenovo ThinkPad P1 (Gen 4)

From ArchWiki

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

Reason: Misses IDs in the hardware table, an accessibility and function key section, firmware needs expansion. (Discuss in Talk:Lenovo ThinkPad P1 (Gen 4))
Hardware PCI/USB ID Working?
Touchpad Yes
Keyboard Yes
GPU (NVIDIA) Yes
GPU (Intel) Yes
Webcam Yes
Bluetooth Yes
SD-card reader Yes
Audio Yes
Wireless Yes
Fingerprint reader Yes
TPM Untested

Firmware

The device supports fwupd.

Brightness control

OLED display

OLED screens have no backlight, brightness cannot be controlled by changing backlight power in the traditional way. Instead, it can be controlled using PWM by enabling following option:

/etc/modprobe.d/i915.conf
options i915 enable_dpcd_backlight=1

Alternatively, you can add i915.enable_dpcd_backlight=1 as a kernel parameter.

LCD display

Hybrid graphics

Hybrid graphics (also known as NVIDIA Optimus) allow the system to use the integrated Intel graphics and the NVIDIA GPU interchangeably without rebooting.

Brightness control under hybrid graphics should work "out of the box" with no kernel command line options necessary. If you notice brightness controls cease working, check that your BIOS settings are still for Hybrid Graphics and not Discrete Graphics.

Discrete graphics

Discrete graphics means only the NVIDIA GPU is available to the system.

Currently brightness control does not work with Discrete Graphics selected in BIOS.

Audio

Install ALSA firmware to get audio working.

Power management

Some models can come with a powerful dGPU (Like a 3070 Max-Q) and this can drain the battery very rapidly consuming ~11Wh when using the nvidia-open driver and even if the NVIDIA dGPU is not being used in any process.

To solve this you can use EnvyControl to disable the NVIDIA dGPU temporally using the command:

# envycontrol -s integrated

This will blacklist all the NVIDIA modules leaving the GPU powered off and unusable.

To re-enable the NVIDIA dGPU you can use:

# envycontrol -s hybrid
Note: