红联Linux门户
Linux帮助

利用thermald和Intel P-state防止笔记本过热

发布时间:2016-06-09 11:11:59来源:linux网站作者:kewangwuxian12

thermald是Intel开源技术中心开发的一款用于监视和控制cpu温度并防止其过热的工具,但它不会对系统性能产生重大的影响。值得一提的是仅在温度达到某个阈值的时候thermald才会应用各种降温方式,所以如果你的电脑通常情况下温度不够高的话,使用它将不会感到有什么不同。这位作者说他在其官方页面中找不到thermald支持哪些类型的处理器的信息,但根据Debian wiki,其只支持 Intel Sandy Bridge 和更新的CPUs,另外有一个bug指出其对Haswell支持的不够好。

默认情况下,thermald安装好后,是不需要怎么配置的,但如果有需要可以编辑/etc/thermald/thermal-conf.xml 文件,更多信息请参考thermal-conf.xml的man page ("man thermal-conf.xml")。


如何在ubuntu14.04中开启intel_pstate
注意这仅仅适用于ubuntu14.04,不要在老版本的ubuntu中尝试,否则你可能会遭遇各种问题。
在Intel P-stat开启的情况下,thermald会工作的更好。Intel P-stat在ubuntu14.04默认没有开启,但你能很容易地开启它(就作者所知道的在Fedora, Arch Linux 以及OpenSUSE中是默认开启的)。


1.为了在ubuntu14.04开启Intel P-stat(仅当你的笔记本使用 Sandy Bridge或者 Ivy Bridge CPUs),以root身份用文本编辑器编辑 /etc/default/grub,在下面作者采用Gedit。
gksu gedit /etc/default/grub
找到"GRUB_CMDLINE_LINUX_DEFAULT=" 这一行,改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=enable"
确保你的操作正确否则可能导致你启动失败,然后保存并且运行
sudo update-grub


2.重启你的笔记本,通过下面的命令检查intel_pstate是否开启
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
此命令将会返回"intel_pstate". 。
另外一种检查方式是使用下面的命令
cpupower frequency-info
其输出将会是类似下面这样的信息:
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 0.97 ms.
hardware limits: 800 MHz - 3.10 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 800 MHz and 3.10 GHz.
The governor "performance" may decide which speed to use
within this range.
boost state support:
Supported: yes
Active: yes
25500 MHz max turbo 4 active cores
25500 MHz max turbo 3 active cores
25500 MHz max turbo 2 active cores
25500 MHz max turbo 1 active cores

如果采用上面的步骤发现没有开启intel_pstate ,这可能意味着你的CPU不支持intel_pstate ,所以这时你需要禁用掉它(只需简单地从 /etc/default/grub中 移除"intel_pstate=enable" ,保存然后sudo update-grub就行了)。


3.intel_pstate只有两个 cpufreq governors: performance 和 powersave (没有 "ondemand")。你可以通过下面的命令手动在两者之间切换:
- 使用 "powersave" intel_pstate cpufreq governor:
sudo cpupower frequency-set -g powersave
- 使用 "performance" cpufreq intel_pstate governor:
sudo cpupower frequency-set -g performance
你能通过下面的命令看到当前激活的 cpufreq governor
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor


4.如果你想让 "powersave" governor在ubuntu中成为默认(使用之前的命令将会在重启后失效),。首先安装 cpufrequtils:
sudo apt-get install cpufrequtils
然后编辑/etc/init.d/cpufrequtils 文件 并且将 GOVERNOR值 设置为"powersave" (即GOVERNOR="powersave"). 你也可以使用下面的命令::
sudo sed -i 's/^GOVERNOR=.*/GOVERNOR="powersave"/' /etc/init.d/cpufrequtils
为了恢复这一设置并将governor值设为默认 (默认为 "ondemand" 并且它不可用于Intel P-State, 作者加入这条是考虑到你可能不再想使用 Intel P-State )。使用下面的命令:
sudo sed -i 's/^GOVERNOR=.*/GOVERNOR="ondemand"/' /etc/init.d/cpufrequtils


值得一提的是 TLP 支持 Intel P-State。

安装thermald

使用下面的命令:
sudo apt-get install thermald


本文永久更新地址:http://www.linuxdiyf.com/linux/21370.html