我的设置:联想 Thinkpad P14s,英特尔(R) Core(TM) i7-10510U CPU @ 1.80GHz
软件 :Ubuntu 21.10,Gnome 40.4.0,Linux 5.13.0
背景 :
联想有一个“联想智能散热解决方案”,它硬连线到一些运动传感器,这些传感器可以检测笔记本电脑何时被移动并切换到“膝上模式”,从而限制笔记本电脑的温度,以免底部过热,从而确保笔记本电脑在膝上安全使用。几个月来,这在 Linux 上造成了问题,因为 Linux 不支持此功能,因此笔记本电脑始终停留在膝上模式,性能始终受到限制。这个问题自 2020 年中期以来已经得到修复,有关此问题的详细信息可在本文档中找到:https://web.archive.org/web/20190926163900if_/https://forums.lenovo.com/lnv/attachments/lnv/Special_Interest_Linux/13642/1/Linux%20Thermal%20throttling.pdf
我现在遇到以下问题:
移动笔记本电脑时会触发“圈数模式”,因此“性能”电源模式被禁用,并自动设置为“平衡电源”。大约 5 分钟后,“圈数模式”关闭,我可以将电源模式重新设置为“性能”,但这是手动操作。
我找到了两种解决此问题的方法:
- 我可以每分钟在 crontab 中运行此脚本,以尽快自动将电源模式转为“性能”:
p=$(powerprofilesctl) ; if echo "$p" | grep -qF "* balanced" && ! echo "$p" | grep -qF "Inhibited: yes" ; then powerprofilesctl set performance ; fi
- 我可以完全禁用 CPU 热节流,但这是一个“核选项”,如https://wiki.archlinux.org/title/Lenovo_ThinkPad_X1_Extreme#Disabling_BDPROCHOT_to_prevent_throttling_on_battery
所以我想知道,有没有办法保持热节流启用,但仅禁用膝上模式检测? 当然,只要我将笔记本电脑移到另一个房间,就会检测到这种“膝上模式”,但我从未将它放在膝盖上使用它……
附言:
这是powerprofilesctl
检测到“lap mode”时的命令输出。Gnome设置的“power”页面给出了类似的信息。
$ powerprofilesctl
performance:
Driver: platform_profile
Inhibited: yes (lap-detected)
* balanced:
Driver: platform_profile
power-saver:
Driver: platform_profile
答案1
我在 Thinkpad T590 上遇到了同样的问题!这是由一个小型加速度计引起的,旨在当笔记本电脑不平整且不稳定时禁用性能模式。
花了几个小时试图找出解决方案后,最好的解决方法就是修改内核,使其始终报告传感器为负值。这是一个非常简单的修复方法,您只需更改一行即可thinkpad_acpi模块。
我已经编写了一个补丁程序,可以使用 dkms 自动执行此操作,因此它会在您更新内核时继续存在。
如果你反对修补内核模块,你可以“猴子补丁”内核的侵入性要小得多。之前链接的 repo 中也有一些关于此的详细信息。