Lenovo ThinkPad P15 Gen 1

From ArchWiki

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

Reason: No function keys section, other missing information such as PCI/USB IDs (Discuss in Talk:Lenovo ThinkPad P15 Gen 1)
Hardware PCI/USB ID Working?
Touchpad Yes
Trackpoint Yes
Keyboard Yes
GPU (NVIDIA) 10de:1fb9 Yes
GPU (Intel) 8086:9bc4 Yes
Webcam 04f2:b6be Yes
Ethernet 8086:06f0 Yes
Bluetooth 8087:0026 Yes
SD-card reader Yes
Audio 8086:06c8 Yes
Wireless 8086:06f0 Yes
Fingerprint reader 06cb:00bd Yes

Discrete GPU

This model uses PRIME for combining the integrated and the dedicated GPU. As the external graphic ports are wired to the discrete GPU, drivers for the discrete GPU need to be present in order to use them. However, no special X.org configuration should be necessary, as xrandr should detect the ports automatically. If not, follow the instructions in PRIME#Reverse PRIME.

Note: Disabling the built-in screen can lead to severely degraded graphics performance on external screens (around 2 FPS). This is probably caused by the NVIDIA GPU shutting down, though not further investigated. A workaround that produces the desired result is to set the screen brightness to 0%, or if increased power usage is not a concern, disabling hybrid graphics in the BIOS.

Disabling discrete GPU via acpi

The built in GPU can be disable and re-enabled on the fly via acpi call. This can significantly reduce power consumption and increase battery live up to a factor of 5.

See Hybrid graphics#Using acpi_call, the specific ACPI call for this device is \_SB.PCI0.PEG0.PEGP._OFF.

Fan control

The default operation of fans is noisy, as they are basically at medium power all the time. The thinkfanAUR program can be used to create a quieter operation, while retaining reasonable temperatures.

Here is an example /etc/thinkfan.conf configuration:

/etc/thinkfan.conf
sensors:
  # NVIDIA GPU
  - nvml: 01:00.0

  # acpitz
  # crit = 128°C
  - hwmon: /sys/class/hwmon
    name: acpitz
    indices: [1]
    correction: [0]

  # pch_cometlake
  - hwmon: /sys/devices/virtual/thermal/thermal_zone7
    name: pch_cometlake
    indices: [1]
    correction: [0]

  # nvme
  # high = 85°C
  - hwmon: /sys/devices/pci0000:00/0000:00:1b.0/0000:02:00.0/hwmon
    name: nvme
    indices: [2, 3]
    correction: [0, 0]

  # nvme
  # high = 85°C
  - hwmon: /sys/devices/pci0000:00/0000:00:1d.0/0000:55:00.0/hwmon
    name: nvme
    indices: [2, 3]
    correction: [0, 0]

  # coretemp
  # high = 100°C, crit = 100°C.
  - hwmon: /sys/devices/platform/coretemp.0/hwmon
    name: coretemp
    indices: [1, 2, 3, 4, 5, 6, 7, 8, 9]
    correction: [0, 0, 0, 0, 0, 0, 0, 0, 0]

  # thinkpad
  - hwmon: /sys/devices/platform/thinkpad_hwmon/hwmon
    name: thinkpad
    indices: [1, 2, 3, 4, 5, 6]
    correction: [0, 0, 0, 0, 0, 0]

  # thinkpad
  - hwmon: /sys/devices/platform/thinkpad_hwmon/hwmon
    name: thinkpad
    indices: [7]
    correction: [0]

  # thinkpad
  - hwmon: /sys/devices/platform/thinkpad_hwmon/hwmon
    name: thinkpad
    optional: true
    indices: [8]
    correction: [0]

  # iwlwifi_1
  - hwmon: /sys/class/hwmon
    name: iwlwifi_1
    optional: true
    indices: [1]
    correction: [0]

fans:
  - tpacpi: /proc/acpi/ibm/fan

levels:
  - [0, 0, 60]
  - [2, 60, 65]
  - [3, 65, 70]
  - [5, 70, 75]
  - [6, 75, 80]
  - [7, 80, 85]
  - ["level disengaged", 85, 255]

Enabling Turbo boost

By default, the CPU power governor does not allow CPU frequencies to reach turbo boost speeds. This can be fixed via, for instance, cpupower-guiAUR.

This can be changed by modifying the file /etc/cpupower_gui.conf:

/etc/cpupower_gui.conf
[Profile]
#This setting was: profile = Balanced
profile = Performance

Then start/enable cpupower-gui.service.

Firmware

This Device has fwupd support.