找回密码
 注册
快捷导航
查看: 12801|回复: 8

【原创】Linux下的cpu降压内核补丁——phc

[复制链接] |自动提醒
阅读字号:

142

回帖

0

积分

70

资产值

入门会员 Rank: 1

注册时间
2007-3-23
发表于 2008-2-24 11:56:02| 字数 383| - 中国–广东–广州–黄埔区 电信 | 显示全部楼层 |阅读模式
Windows下的cpu降压软件有nhc,rmc,linux当然也有类似的东西,这就是phc kernel patch,和windows下的单个软件的实现不同,phc是内核补丁,应用过程涉及内核编译、cpu电压调整等,可能造成你的系统和硬件不稳定,风险自负。

phc现在的主页在http://phc.athousandnights.de/

phc适用的cpu类型,支持acpi-cpufreq,speedstep-cpufreq和powernow-k8的cpu,一般而言,pentiumM、Core和Core2, AMD的mobile Athlon64, Turion64 anc compatible。

1、选择补丁类型
2、给内核源码打补丁
3、配置编译内核
4、内核安装,phc系统接口检查
5、phc设置,系统脚本安装

[ Edited by  cchalpha on 2008-2-24 15:12 ]
T42 8ZU 725->2.13,1G,160G,端口复制器II
MZ915 735A->2.46,2G,1T
X200 SL9400 4G

142

回帖

0

积分

70

资产值

入门会员 Rank: 1

注册时间
2007-3-23
 楼主| 发表于 2008-2-24 12:05:50| 字数 1,022| - 中国–广东–广州–黄埔区 电信 | 显示全部楼层
1、选择补丁类型
http://phc.athousandnights.de/files,我们可以下载phc的补丁代码,根据你内核选择cpufreq processor驱动的不同,分别有3个不同驱动的补丁

patches for acpi-cpufreq
patches for speedstep-centrino
patches for powernow-k8

先看看这些不同的cpufreq驱动在内核中的描述

CONFIG_X86_ACPI_CPUFREQ:                                       
  │                                                                         │  
  │ This driver adds a CPUFreq driver which utilizes the ACPI               │  
  │ Processor Performance States.                                           │  
  │ This driver also supports Intel Enhanced Speedstep.

支持ESS,可以用于pentium M、Core和Core2的cpu。

CONFIG_X86_POWERNOW_K8:                                                 │  
  │                                                                         │  
  │ This adds the CPUFreq driver for mobile AMD Opteron/Athlon64 processors │  
  │                                                                         │  
  │ To compile this driver as a module, choose M here: the                  │  
  │ module will be called powernow-k8.

AMD的,不太熟悉,不过已经列出cpu型号了,mobile AMD Opteron/Athlon64。

CONFIG_X86_SPEEDSTEP_CENTRINO:                                          │  
  │                                                                         │  
  │ This is deprecated and this functionality is now merged into            │  
  │ acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of             │  
  │ speedstep_centrino.                                                     │  
  │ This adds the CPUFreq driver for Enhanced SpeedStep enabled             │  
  │ mobile CPUs.  This means Intel Pentium M (Centrino) CPUs                │  
  │ or 64bit enabled Intel Xeons.  

也是支持ESS cpu的驱动,不过描述里面已经建议用acpi_cpufreq (X86_ACPI_CPUFREQ)了。

所以不难选择,intel选acpi-cpufreq,amd选powernow-k8。

[ Edited by  cchalpha on 2008-2-24 15:12 ]
T42 8ZU 725->2.13,1G,160G,端口复制器II
MZ915 735A->2.46,2G,1T
X200 SL9400 4G
回复 支持 反对

使用道具 举报

142

回帖

0

积分

70

资产值

入门会员 Rank: 1

注册时间
2007-3-23
 楼主| 发表于 2008-2-24 12:07:18| 字数 1,015| - 中国–广东–广州–黄埔区 电信 | 显示全部楼层
2、给内核源码打补丁

2.1 下载phc补丁
下载phc需要用到版本管理工具subversion,一般系统没有缺省安装,可以先装上,
  1. aptitude install subversion
复制代码

然后按http://phc.athousandnights.de/files上的提示下载你需要的补丁
例如,
  1. svn co [url]http://phcpatches.googlecode.com/svn/trunk/acpi-cpufreq[/url] phcpatches/cpufreq
复制代码

将acpi-cpufreq的phc补丁下载到当前目录的phcpatches/cpufreq

2.2下载内核代码
你可以从www.kernel.org下载内核代码,也可以下载你所用系统提供的内核的代码,详细的内核下载安装不在这个帖子的讨论范围,请自行搜索相关信息。

ubunto中取得某内核映像源码
  1. apt-get source linux-image-2.6.24-8-generic
复制代码


正常情况下内核源码会自动解压缩到/usr/src下

2.3给内核打phc补丁
在phc补丁目录内找到与内核源码版本相符的补丁文件,拷贝到内核源码目录
  1. cp acpi-cpufreq/patches/linux-phc-kernel-vanilla-2.6.24-rc1.patch /usr/src/ubuntu-hardy/
复制代码


到源码目录,先跑一次,测试一下

  1. root@ubuntu:/home/alpha/phc# cd /usr/src/ubuntu-hardy/
  2. root@ubuntu:/usr/src/ubuntu-hardy# cat linux-phc-kernel-vanilla-2.6.24-rc1.patch  | patch -p1 --dry-run
  3. patching file arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
  4. Hunk #4 succeeded at 741 (offset -1 lines).
  5. Hunk #5 succeeded at 760 (offset -1 lines).
复制代码


没问题就打补丁

  1. root@ubuntu:/usr/src/ubuntu-hardy# cat linux-phc-kernel-vanilla-2.6.24-rc1.patch  | patch -p1
复制代码

[ Edited by  cchalpha on 2008-2-24 12:53 ]
T42 8ZU 725->2.13,1G,160G,端口复制器II
MZ915 735A->2.46,2G,1T
X200 SL9400 4G
回复 支持 反对

使用道具 举报

142

回帖

0

积分

70

资产值

入门会员 Rank: 1

注册时间
2007-3-23
 楼主| 发表于 2008-2-24 12:09:07| 字数 210| - 中国–广东–广州–黄埔区 电信 | 显示全部楼层
3、配置编译内核
内核配置和编译这里不详细说明,不过内核配置中需要把需要的cpufreq驱动选上。如图,



ubuntu的内核编译可以参考https://help.ubuntu.com/community/Kernel/Compile

例如

  1. AUTOBUILD=1 NOEXTRAS=1 fakeroot debian/rules binary-generic
复制代码

[ Edited by  cchalpha on 2008-2-24 14:09 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
T42 8ZU 725->2.13,1G,160G,端口复制器II
MZ915 735A->2.46,2G,1T
X200 SL9400 4G
回复 支持 反对

使用道具 举报

142

回帖

0

积分

70

资产值

入门会员 Rank: 1

注册时间
2007-3-23
 楼主| 发表于 2008-2-24 12:10:04| 字数 651| - 中国–广东–广州–黄埔区 电信 | 显示全部楼层
4、内核安装,phc系统接口检查

内核成功编译后可以安装了,不过建议保留一个可以启动的内核。

重新用带phc补丁的内核启动后,可以在/sys/devices/system/cpu/cpu0/cpufreq/下见到phc的接口。


  1. root@ubuntu:/sys/devices/system/cpu/cpu0/cpufreq# ls
  2. affected_cpus         phc_default_vids               scaling_driver
  3. cpuinfo_cur_freq      phc_fids                       scaling_governor
  4. cpuinfo_max_freq      phc_version                    scaling_max_freq
  5. cpuinfo_min_freq      phc_vids                       scaling_min_freq
  6. ondemand              scaling_available_frequencies  stats
  7. phc_controls          scaling_available_governors
  8. phc_default_controls  scaling_cur_freq
复制代码


检查缺省的频率/电压控制

  1. root@ubuntu:/sys/devices/system/cpu/cpu0/cpufreq# cat phc_default_controls
  2. 17:40 14:34 12:30 10:26 8:22 6:18
复制代码


这些fid:vid,fid可以看做倍频,vid的计算公式是 电压(伏)=(700+vid x 16)/1000

[ Edited by  cchalpha on 2008-2-24 14:44 ]
T42 8ZU 725->2.13,1G,160G,端口复制器II
MZ915 735A->2.46,2G,1T
X200 SL9400 4G
回复 支持 反对

使用道具 举报

142

回帖

0

积分

70

资产值

入门会员 Rank: 1

注册时间
2007-3-23
 楼主| 发表于 2008-2-24 12:10:53| 字数 1,426| - 中国–广东–广州–黄埔区 电信 | 显示全部楼层
5、phc设置,系统脚本安装

5.1 cpu最低运行电压
至于cpu在每个频率下降到那个电压运行,建议nhc,rmc等工具先测出来,然后直接在linux下配置。

5.2 cpu温度显示工具
在设置phc前,我们需要一个工具来检测cpu温度的变化,在gnome下,可以安装sensors-applet。

然后添加到panel上,如图



配置显示CPU的温度,如图



5.3 设置phc
phc提供的接口中只有两个是可写的,分别是phc_controls和phc_vids,一般使用phc_vids就可以了。

phc设置命令可以用

  1. echo "40 31 24 16 9 2" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
复制代码

其中数字是每个频率下的vid,必须一一对应。

设置phc后,cpu温度的降低可以从sensors-applet看到。

5.4 phc系统脚本安装
如果需要系统启动后就自动设置phc的配置,可以安装phc的系统脚本工具,该工具可以在http://phc.athousandnights.de/files 下载。


  1. svn co [url]http://phctool.googlecode.com/svn/trunk/[/url] phctool
复制代码


在tools/init-scripts/有gentoo和ubuntu系统的系统初始化脚本,安装就只需把下面的目录拷贝到相应的系统目录。

然后编辑/etc/phc-config/undervolt


  1. # CONFIG_FILE FOR UNDERVOLTAGING
  2. #

  3. # Path to the voltage table sysfs interface file
  4. VTABLE_PATH="/sys/devices/system/cpu/cpu0/cpufreq/phc_vids"

  5. # Switch back to DEFAULT_VTABLE if undervoltage is stopped? [yes/no]
  6. SWITCH_BACK="no"


  7. # Default voltages that will be restored at shutdown if SWITCH_BACK=yes
  8. # DEFAULT_VTABLE="15 14 13 11 10 7"

  9. DEFAULT_VTABLE="40 34 30 26 22 18"


  10. # Custom voltages that will be applied at boot time
  11. # CUSTOM_VTABLE="8 6 4 2 1 0"

  12. CUSTOM_VTABLE="40 31 24 16 9 2"

  13. # Set the following to "yes" when the all the settings are configured
  14. # This is a safety to disable setting the voltages with the default
  15. # values of this file that are probably wrong for your CPU

  16. IS_CONFIGURED="yes"
复制代码


这里主要是修改CUSTOM_VTABLE为自己的vid序列,修改IS_CONFIGURED为"yes",让系统启动后自动设置phc。

[ Edited by  cchalpha on 2008-2-24 15:53 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
T42 8ZU 725->2.13,1G,160G,端口复制器II
MZ915 735A->2.46,2G,1T
X200 SL9400 4G
回复 支持 反对

使用道具 举报

6056

回帖

150

积分

1万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2003-4-28
铜牌荣誉勋章(注册8年以上会员)
发表于 2008-2-24 12:58:15| 字数 28| - 美国 加州大学欧文分校 | 显示全部楼层
这个应当谨慎操作,毕竟每个cpu能降多少电压是不一样的。
回复 支持 反对

使用道具 举报

1万

回帖

182

积分

5万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2004-8-16
银牌荣誉勋章(注册10年以上会员)月全勤勋章
发表于 2008-4-30 16:11:32| 字数 7| - 中国–广东–东莞 博路电信科技公司 | 显示全部楼层
不错,收藏了,
为什么要结婚?
---资源的优化组合。
回复 支持 反对

使用道具 举报

325

回帖

0

积分

999

资产值

入门会员 Rank: 1

注册时间
2004-11-7
发表于 2008-4-30 18:25:26| 字数 19| - 美国–华盛顿州–金–雷德蒙德 Microsoft | 显示全部楼层
不错不错,还没有尝试过给内核打补丁呢。
T61p:T7500/2G+1G/320G BEVT+160G/128M Quadro FX 570M/14.1SXGA+/4965AGN/Archlinux
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-2-13 02:03 , Processed in 0.107685 second(s), 38 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部