New post
This commit is contained in:
parent
75f0d50d75
commit
ab99ad87ba
92
_posts/sysadm/2023-11-17-cooling-down-thinkpad-p1-gen-5.tl
Normal file
92
_posts/sysadm/2023-11-17-cooling-down-thinkpad-p1-gen-5.tl
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
title: Cooling down ThinkPad P1 gen 5
|
||||||
|
date: 2023-11-17 21:58 +0100
|
||||||
|
tags: ThinkPad
|
||||||
|
---
|
||||||
|
P1 heats up considerably, even when running on battery. This makes it unpleasant
|
||||||
|
to hold on your lap, puts stress on NVME drives, and even causes the keyboard
|
||||||
|
keys to get hot.
|
||||||
|
|
||||||
|
h2. Power off discrete GPU.
|
||||||
|
|
||||||
|
* "Hybrid graphics - Archlinux wiki":https://wiki.archlinux.org/title/Hybrid_graphics#Fully_Power_Down_Discrete_GPU
|
||||||
|
* "optimus-switch - Github":https://github.com/dglt1/optimus-switch
|
||||||
|
* "Intel - Gentoo wiki":https://wiki.gentoo.org/wiki/Intel
|
||||||
|
* "Intel graphics - Archlinux wiki":https://wiki.archlinux.org/title/intel_graphics
|
||||||
|
|
||||||
|
It's impossible to turn off Nvidia GPU through BIOS. Energy consumption of
|
||||||
|
discrete GPU can be monitored with:
|
||||||
|
|
||||||
|
{% highlight bash %}
|
||||||
|
nvidia-smi
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
In reality the above value (4W on battery, 5W on AC in desktop environment) seems to be
|
||||||
|
underestimation. Powering off the dGPU using steps below changes energy
|
||||||
|
consumption reported by @powertop@ from *24W before* to *16W after* on battery.
|
||||||
|
|
||||||
|
# Make sure kernel driver for Intel GPU is compiled (@DRM_I915@).
|
||||||
|
|
||||||
|
#_ Remove _/etc/modprobe.d/nvidia.conf_ if present.
|
||||||
|
|
||||||
|
#_ Blacklist @nvidia@ kernel modules and configure @i915@ appropriately.
|
||||||
|
|
||||||
|
{% highlight file caption=/etc/modprobe.d/intel.conf %}
|
||||||
|
blacklist nouveau
|
||||||
|
blacklist ttm
|
||||||
|
install nvidia /bin/false
|
||||||
|
install nvidia-modeset /bin/false
|
||||||
|
install nvidia-peermem /bin/false
|
||||||
|
install nvidia-drm /bin/false
|
||||||
|
install nvidia-uvm /bin/false
|
||||||
|
|
||||||
|
# Stops display from "blinking" or "flashing"
|
||||||
|
# during boot when using the intel driver.
|
||||||
|
options i915 enable_fbc=1
|
||||||
|
options i915 fastboot=1
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
#_ Configure _xorg_ to use Intel device with @modesetting@ driver
|
||||||
|
(@xf86-video-intel@ is outdated and does not suppot hardwware acceleration on
|
||||||
|
newer GPU models). Use @lspci@ to find bus ID of Intel GPU.
|
||||||
|
|
||||||
|
{% highlight file caption=/etc/X11/xorg.conf.d/20intel.conf %}
|
||||||
|
Section "Device"
|
||||||
|
Identifier "Intel Graphics"
|
||||||
|
Driver "modesetting"
|
||||||
|
BusID "PCI:0:2:0"
|
||||||
|
#Option "AccelMethod" "glamor" # default
|
||||||
|
#Option "TearFree" "true"
|
||||||
|
EndSection
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
#_ Power off Nvidia PCI device on every boot using _udev_ rules.
|
||||||
|
|
||||||
|
{% highlight file caption=/etc/udev/rules.d/00-nvidia-remove.rules %}
|
||||||
|
# Remove NVIDIA USB xHCI Host Controller devices, if present
|
||||||
|
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||||
|
|
||||||
|
# Remove NVIDIA USB Type-C UCSI devices, if present
|
||||||
|
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||||
|
|
||||||
|
# Remove NVIDIA Audio devices, if present
|
||||||
|
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||||
|
|
||||||
|
# Remove NVIDIA VGA/3D controller devices
|
||||||
|
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1"
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
#_ Regenerate _initramfs_ and reboot.
|
||||||
|
|
||||||
|
{% highlight bash %}
|
||||||
|
genkernel initramfs
|
||||||
|
reboot
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
|
||||||
|
h2. Limit CPU/platform/integrated GPU energy usage with @tlp@
|
||||||
|
|
||||||
|
Active seetings can be verified using:
|
||||||
|
* @tlp-stat -p@ for CPU and platform,
|
||||||
|
* @tlp-stat -g@ for GPU
|
Loading…
x
Reference in New Issue
Block a user