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, 13d3:56ff |
Yes |
Ethernet | 8086:06f0 |
Yes |
Bluetooth | 8087:0026 |
Yes |
SD-card reader | 10ec:525a |
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.
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.
GDM/GNOME Shell gets stuck at boot
This seems to be due to GNOME's attempt to use some kind of hybrid graphics setup which causes problems, if both the Intel iGPU and NVIDIA dGPU are enabled. Either disable use of the Intel iGPU in the UEFI and only use NVIDIA, or set DRI_PRIME=0 in the /etc/environment file to force GNOME to not attempt to use a secondary GPU.
Another problem is that GDM may load earlier than KMS driver code. The solution for this is to add the relevant driver modules to the initrd. For example in mkinitcpio.conf, this would be:
When using the nvidia or nvidia-open drivers:
MODULES=(i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm)
And when using the nouveau driver:
MODULES=(i915 nouveau)
Problems with s2idle/S0ix sleep mode
While s2idle/S0ix is supported by the hardware, it seems to assume that the laptop is only suspended by closing the lid. If you suspend using "systemctl suspend" or through a GUI menu, the laptop can't be woken up again using the keyboard, power button etc. and only closing and opening the lid wakes it up.
It is unclear if this is a Linux kernel/userspace bug, or a bug in the laptop firmware. Either way, it is buggy behaviour. It's recommended to use S3 suspend for now for more predictable behaviour.