「笔电上的Linux」我的CPU,我做主
发表于 : 2012-06-28 18:50
我把原文写在我的博客里,大家可以看:http://hougeubuntu.blogspot.com/2012/06/linuxcpu.html
本文旨在解决笔记本上使用Linux一系列功耗问题,CPU频率升高而不降低,温度过高,电池续航能力等等。
1、从修改启动内核参数下手。方法尤其容易,Ubuntu启动终端后sudo gedit /etc/default/grub,如果是Fedora,sudo vi /boot/grub2/grub.cfg(我发现Fedora上不能用sudo启动包括kate, kwrite, gedit,呃,Anyway...),然后在GRUB_CMDLINE_LINUX_DEFAULT=""中加入如下的代码:pcie_aspm=force i915.semaphores=1 acpi_osi=Linux acpi_backlight=vendor elevator=noop i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1。注意:acpi_backlight=vendor 大家不需要添加,这是我的笔电特殊性导致的。然后,Ubuntu保存配置文件后来个sudo update-grub,Fedora的保存文件后,来个sudo grub-mkconfig -o /boot/grub2/grub.cfg,就能刷新grub,以实现更新启动参数。
2、lm-sensors。关于这个我不赘述,基本操作就是安装,然后sudo sensors-detect,然后一路YES/回车。
3、laptop-mode-tools,这里感谢推友@ukyoi朋友,是他介绍我安装并使用这个工具,Ubuntu上直接就能安装上去,Fedora源里没有,需要去官方网站去下载tar.gz包,随后解压就能用脚本安装,我记得我安装的时候缺少一个叫做acpid的,大家可以先安装,看看是否缺少依赖,缺少再安装一遍。Ubuntu12.04和Fedora17上安装这个以后使用不需要额外配置,至少我这里是这样。另外说一下如何确认启用了laptop-mode,在插电源的时候,终端运行:cat /proc/sys/vm/laptop_mode,如果返回的值是0,那么说明没有启动,如果用电池启动笔电,在运行上面的那条命令,返回值是非零的任何一个数字,就说明启用了。关于laptop-mode的原理,我不是很懂,貌似是降低硬盘的转速!?各位如果还有问题,参阅官方的Q&A。
4、CPU频率动态管理(本文核心)。这里主要推荐两个工具,一个是耳熟能详的Jupiter,另一个是Cpufreqd
先介绍Jupiter,安装方法简单,Ubuntu加PPA源,Fedora用户推荐先安装一个叫做FedoraUtils的软件,里面提供了下载/安装Jupiter的方法,或者我叫它一键安装法。安装后,启动一下,以后重启的时候就随系统启动而启动了,然后调节CPU频率通过手动完成。自己动手丰衣足食。
我个人推荐Cpufreqd(Fedora下我没有试过,不过道理是相通的)。cpufreqd需要APM,ACPI,PMU以守护进程的形式启动,并且能够调节GForce2-Atxp1功耗和NV显卡的核心显存频率(不晓得独显的情况,有Geek愿意尝试下,不反对,注意要备份)。Ubuntu用户apt-get install cpufreqd indicator-cpufreq,后者是个面板小插件,提供手动更改频率的选项。安装完成后,重启,我通过htop查看进程后出现以下进程:
大家应该都看见cpufreqd加载的文件是cpufreqd.conf,这个文件的位置也显而易见,这个就是下面我们需要去根据自己的情况修改的对象。不论你用gedit还是vi,我建议先cat看看这个文件具体在说些神马。
默认情况下,ondemand这个调节器被注释了,我启用了它,并将修改了相关的策略,使得外接电源使用时,使用ondemand high,电池的时候用powersaver,总而言之,这个配置文件提供了很多hacking的机会,这样以来,你的CPU频率将根据计算机具体使用情况而变化,不需要手动干预。我一般不用performance调节器,毕竟我的笔电不玩游戏,也不造核弹。
P.S 这里需要强调一点,不要在笔记本上同时安装cpufreqd、jupiter或者类似的CPU动态调频工具,这里主要强调一下cpufreqd和jupiter的冲突,前者是以root权限运行,而后者仅仅是以用户自己的权限运行,效果是不一样滴,如果两个安装,jupiter是没有能力进行调节的。
另外laptop-mode-tool里也自带了cpufreq调节工具,ubuntu的配置文件位置在/etc/laptop-mode/conf.d/cpufreq.conf,当你用电池的时候,如果安装了cpufreqd,那么这两个工具将同时起作用,也会发生冲突。关闭laptop-mode对cpu调频的控制是编辑这个cpufreq.conf,把里面CONTROL_CPU_FREQUENCY=设置为零即可,即关闭调节。
本文旨在解决笔记本上使用Linux一系列功耗问题,CPU频率升高而不降低,温度过高,电池续航能力等等。
1、从修改启动内核参数下手。方法尤其容易,Ubuntu启动终端后sudo gedit /etc/default/grub,如果是Fedora,sudo vi /boot/grub2/grub.cfg(我发现Fedora上不能用sudo启动包括kate, kwrite, gedit,呃,Anyway...),然后在GRUB_CMDLINE_LINUX_DEFAULT=""中加入如下的代码:pcie_aspm=force i915.semaphores=1 acpi_osi=Linux acpi_backlight=vendor elevator=noop i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1。注意:acpi_backlight=vendor 大家不需要添加,这是我的笔电特殊性导致的。然后,Ubuntu保存配置文件后来个sudo update-grub,Fedora的保存文件后,来个sudo grub-mkconfig -o /boot/grub2/grub.cfg,就能刷新grub,以实现更新启动参数。
2、lm-sensors。关于这个我不赘述,基本操作就是安装,然后sudo sensors-detect,然后一路YES/回车。
3、laptop-mode-tools,这里感谢推友@ukyoi朋友,是他介绍我安装并使用这个工具,Ubuntu上直接就能安装上去,Fedora源里没有,需要去官方网站去下载tar.gz包,随后解压就能用脚本安装,我记得我安装的时候缺少一个叫做acpid的,大家可以先安装,看看是否缺少依赖,缺少再安装一遍。Ubuntu12.04和Fedora17上安装这个以后使用不需要额外配置,至少我这里是这样。另外说一下如何确认启用了laptop-mode,在插电源的时候,终端运行:cat /proc/sys/vm/laptop_mode,如果返回的值是0,那么说明没有启动,如果用电池启动笔电,在运行上面的那条命令,返回值是非零的任何一个数字,就说明启用了。关于laptop-mode的原理,我不是很懂,貌似是降低硬盘的转速!?各位如果还有问题,参阅官方的Q&A。
4、CPU频率动态管理(本文核心)。这里主要推荐两个工具,一个是耳熟能详的Jupiter,另一个是Cpufreqd
先介绍Jupiter,安装方法简单,Ubuntu加PPA源,Fedora用户推荐先安装一个叫做FedoraUtils的软件,里面提供了下载/安装Jupiter的方法,或者我叫它一键安装法。安装后,启动一下,以后重启的时候就随系统启动而启动了,然后调节CPU频率通过手动完成。自己动手丰衣足食。
我个人推荐Cpufreqd(Fedora下我没有试过,不过道理是相通的)。cpufreqd需要APM,ACPI,PMU以守护进程的形式启动,并且能够调节GForce2-Atxp1功耗和NV显卡的核心显存频率(不晓得独显的情况,有Geek愿意尝试下,不反对,注意要备份)。Ubuntu用户apt-get install cpufreqd indicator-cpufreq,后者是个面板小插件,提供手动更改频率的选项。安装完成后,重启,我通过htop查看进程后出现以下进程:
大家应该都看见cpufreqd加载的文件是cpufreqd.conf,这个文件的位置也显而易见,这个就是下面我们需要去根据自己的情况修改的对象。不论你用gedit还是vi,我建议先cat看看这个文件具体在说些神马。
默认情况下,ondemand这个调节器被注释了,我启用了它,并将修改了相关的策略,使得外接电源使用时,使用ondemand high,电池的时候用powersaver,总而言之,这个配置文件提供了很多hacking的机会,这样以来,你的CPU频率将根据计算机具体使用情况而变化,不需要手动干预。我一般不用performance调节器,毕竟我的笔电不玩游戏,也不造核弹。
P.S 这里需要强调一点,不要在笔记本上同时安装cpufreqd、jupiter或者类似的CPU动态调频工具,这里主要强调一下cpufreqd和jupiter的冲突,前者是以root权限运行,而后者仅仅是以用户自己的权限运行,效果是不一样滴,如果两个安装,jupiter是没有能力进行调节的。
另外laptop-mode-tool里也自带了cpufreq调节工具,ubuntu的配置文件位置在/etc/laptop-mode/conf.d/cpufreq.conf,当你用电池的时候,如果安装了cpufreqd,那么这两个工具将同时起作用,也会发生冲突。关闭laptop-mode对cpu调频的控制是编辑这个cpufreq.conf,把里面CONTROL_CPU_FREQUENCY=设置为零即可,即关闭调节。