[分享]新手适用,图文详解定制安装ubuntu!!!

夏日炎炎, CPU温度一路攀升, 台式机还好, 笔记本就麻烦了. 搞得大家心神不宁的.
不过我已经找到了解决方法. 不是用散热托架, 是从源头上解决问题. 不仅能降温还能延长电池使用时间, 甚至延长CPU使用寿命.

肉测结果(3月初): 以前CPU100%的时候能达到61度以上, 现住运行mprime也只能达到53度了. mprime从此不能产生热情了.
平时使用的温度现住只有40度左右. 以前有时候达到50几度.
电池以前用1小时20分钟, 现住能用1小时35分钟.

警告(WARNING):
该程序可能损坏你的硬件
This program could cause damage to your Hardware!

有两种降低cpu电压的方法.
    1. 使用cpupowerd(amd专用)
    2. 使用linux-phc(Intel, amd都可以用)

[*]1. 使用cpupowerd(amd专用)

优点: 1直接用电压值调节, 简单. 2. 不用编译模块
缺点: 只支持amd k8(Athlon, Athlon64 (X2), Sempron, Opteron, Turion ...)
特点: 自带cpu频率调节器, 和cpufrequtils冲突且需要调节.

安装
arch安装直接
代码:
yaourt -S cpupowerd


ubuntu在这里下源码编译安装
http://sourceforge.net/projects/cpupowerd
代码:
tar -xzf cpupowerd-x.x.x.tar.gz
cd cpupowerd-x.x.x/src
make
sudo make install


安装好后先查看一下你的cpu参数

载入msr模块
代码:
sudo modprobe msr

载入powernow_k8模块
代码:
sudo modprobe powernow_k8

代码:
$sudo cpupowerd -s
cpupowerd 0.1.2
WARNING: This program could cause damage to your Hardware!
Vendor                      : AMD
Family                      : K8
Model                       : 7
  Mastercpuid               : 0
    Affected cpuids         : 0
    Current voltage (VID)   : 0.6750 V (39)
    Current frequency (FID) : 800 MHz (0)
    Supported frequencies   : 800 1600 MHz


可以看出默认的电压是1.0 V. 记住它

下面找出最低电压
由于每个频率可能的最低电压都不一样, 所有要一个频率一个频率地找.
先设置cpu频率为1600MHz
代码:
cpupowerd -F "0|1600"

然后慢慢降低电压(后面的表中有AMD所有可能的电压)
代码:
cpupowerd -V "0|0.9750"

直到电脑死机.
记下没有死机的最低电压.
然后重启测800MHz的最低电压.

然后用mprime测试能长时间稳定工作的电压.
arch中安装mprime
yaourt -S mprime
ubuntu在这里下
代码:
http://www.mersenne.org/freesoft/


先设置比最低电压高一, 二档的电压
cpupowerd -F "0|800" -V "0|0.6750"
然后用运行mprime, 如果几个小时没有出现错误或死机. 这个电压就没问题了.
如出现问题, 把电压调高一档再运行mprime, 直到找到稳定电压.
还可以做些其他的事情如游戏, 高清. 看系统核不核谐.


生成配置文件
sudo cpupowerd -a /etc/cpupowerd.conf
运行cpupowerd, 使之自动调节CPU频率
代码:
cpupowerd -d -c /etc/cpupowerd.conf

人工设置CPU使用率低于30%下降一个频率, 高于80%上升一个频率
代码:
cpupowerd -d -D 30 -U 80 -c /etc/cpupowerd.conf


Arch用户设置开机自动运行
编辑/etc/rc.conf
在MODULES=()里添加
powernow-k8 msr
去掉里面的cpufreq*, 如果有的话.
在DAEMONS=()里acpid后添加cpupowerd

DAEMONS=(syslog-ng hal alsa @network netfs crond acpid cpupowerd laptop-mode @hddtemp fam)

引用:
AMD K8 VOLTAGES:
----------------

AMD K8所有可能的电压值
如果你不是用的表上面的, cpupowerd会自动用最接近你输入电压的电压档.
The following CPU voltages are available:

1.5500 V 1.1500 V 0.7625 V 0.5625 V
1.5250 V 1.1250 V 0.7500 V 0.5500 V
1.5000 V 1.1000 V 0.7375 V 0.5375 V
1.4750 V 1.0750 V 0.7250 V 0.5250 V
1.4500 V 1.0500 V 0.7125 V 0.5125 V
1.4250 V 1.0250 V 0.7000 V 0.5000 V
1.4000 V 1.0000 V 0.6875 V 0.4875 V
1.3750 V 0.9750 V 0.6750 V 0.4750 V
1.3500 V 0.9500 V 0.6625 V 0.4625 V
1.3250 V 0.9250 V 0.6500 V 0.4500 V
1.3000 V 0.9000 V 0.6375 V 0.4375 V
1.2750 V 0.8750 V 0.6250 V 0.4250 V
1.2500 V 0.8500 V 0.6125 V 0.4125 V
1.2250 V 0.8250 V 0.6000 V 0.4000 V
1.2000 V 0.8000 V 0.5875 V 0.3875 V
1.1750 V 0.7750 V 0.5750 V 0.3750 V

The lowest voltage depends from the CPU Model (production process).
On some older Turion and Sempron CPUs (Model E, Stepping 6) the voltage
can't be set under 1.0750 V because they have a hardware voltage lock
inside. On some mainboards there are problems with undervolting under 0.8V.
AMD has extended the CPU voltage range from 0.8 - 1.55 V to 0.375 - 1.55 V
but some mainboard manufacturers don't implement this extension correctly
what could cause the CPU overvolting above 1.55V!
For CPU Models older than E included the lowest possible voltage is 0.8V!


[*]2. 使用linux-phc(Intel, amd都可以用)

优点: 支持Intel和AMD(k8)处理器
缺点: 1调节电压值麻烦. 2需要编译模块
特点: 不和cpufrequtils冲突. 可以继续使用ondemand, conservative等模式.

安装
Arch用户如果是Intel处理器
Those patches are tested with

Mobile Centrino,
Atom (N2xx),
Core/Core2 (T and P - Series)

CPU's
They may also be working for other or newer speedstepping Intel CPUs.
代码:
yaourt -S phc-intel

如果是AMD处理器
These patches supports undervolting for AMD K8 processors up to family 15. These include:

* AMD X2 processors
* AMD Turion64 processors
* AMD Turion X2 processors, except newer RM-* and ZM-* processors
代码:
yaourt -S phc-k8


Ubuntu用户在下面网址下源码安装
http://www.linux-phc.org/forum/viewtopic.php?f=13&t=2

设置每个频率CPU的电压值(以AMD为例)
phc-k8使用fid而不频率, 使用vid而不是电压.
可用上面的cpupowerd -s查看
代码:
      Current voltage (VID)   : 1.0000 V (22)
      Current frequency (FID) : 800 MHz (0)

也可以用计算公式.
frequency = 800MHz + (100MHz * fid)
fid = (frequency/100MHz) - 8

电压的公式根据CPU不同而不同. 比如Athlon64 (X2)是第一个公式.
最好通过上面的cpupowerd -s的结果找出正确的公式
代码:
AMD X2 processor:
vid = 16        => voltage = 1550 - 25 * 16 = 1150mV
Vid = 24        => voltage = 1550 - 25 * 24 =  950mV
Turion 64 processor:
vid =  4        => voltage = 1450 - 25 *  4 = 1350mV
Vid = 22        => voltage = 1450 - 25 * 22 =  900mV


查看默认的fid, vid. 或者两个一起看
代码:
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/phc_fids
8 0
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
22 22
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
8:22 0:22

经过计算可知有两个频率1600MHz和800MHz, 默认电压都为1.0V

设置电压(比如用的是Athlon64 (X2))
比如1600MHz用0.8250 800MHz用0.6750V
代码:
sudo su
echo '29 39' > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids

注意: 1. Vid越大, 电压才越低, 所有一定不要减小Vid值
2. 注意顺序, 比如例子中1600MHz是第一个, 800MHz是第二个.

Intel的设置方法应该和AMD类似, 不过我没有测试环境.
TODO

要找出最低工作电压的方法和上面用cpupowerd一样.
有个软件linux-phc-optimize可用自动找出最低电压, 但最好不要用, 在我这里, 运行时它是把电压往上升的.
还有一个图形界面phctool, 也最好不要用, 在我这里只能升高电压.

Arch用户开机自动降低电压
编辑/etc/rc.local
添加下如下面一行
代码:
echo 29 39 > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids


参考:
http://wiki.archlinux.org/index.php/PHC
/usr/share/doc/phc-k8/README
/usr/share/cpupowerd/README

作者: syrano   发布时间: 2010-03-15

来啊扑

作者: tenzu   发布时间: 2010-03-15

降频就可以了吧

作者: BigSnake.NET   发布时间: 2010-03-15

路过,台式机,慢慢烧

作者: leeaman   发布时间: 2010-03-15

BigSnake.NET 写道:
降频就可以了吧

再降一下 压, 效果岂不更好.
再说有很多时候不能降频, 比如游戏, 高清.

作者: syrano   发布时间: 2010-03-15

syrano 写道:
BigSnake.NET 写道:
降频就可以了吧

再降一下 压, 效果岂不更好.
再说有很多时候不能降频, 比如游戏, 高清.

电压太低会不稳定 ...

作者: BigSnake.NET   发布时间: 2010-03-15

BigSnake.NET 写道:
syrano 写道:
BigSnake.NET 写道:
降频就可以了吧

再降一下 压, 效果岂不更好.
再说有很多时候不能降频, 比如游戏, 高清.

电压太低会不稳定 ...

我用了半个月了, 都没什么问题.
默认的电压是很保守的.
比如我默认的电压是1.0V
800MHz用的是0.6750V, 1600MHz用的是0.8500
一点问题都没有.

如果不放心, 可用跑mprime跑几天测试稳定性.

作者: syrano   发布时间: 2010-03-15

作者: photor   发布时间: 2010-03-15

我只知道cpu的寿命很长。有块赛扬300a,从买时超频一直用到淘汰被打入杂物间,至今可用。

作者: hasee.wu   发布时间: 2010-03-15

hasee.wu 写道:
我只知道cpu的寿命很长。有块赛扬300a,从买时超频一直用到淘汰被打入杂物间,至今可用。

这有什么, 以前用赛扬1.7GHz 有一次风扇不转了, 温度打到97度, 还没有死机.

作者: syrano   发布时间: 2010-03-15

支持爱因斯坦的研究。
降压降频可以显著降低功耗。。。顺便还可以节省电费。

作者: wangdu2002   发布时间: 2010-03-15

能用这个来超频吗.......

作者: forever_snake   发布时间: 2010-03-15

forever_snake 写道:
能用这个来超频吗.......

应该不行.

作者: syrano   发布时间: 2010-03-15



good,mark

作者: delectate   发布时间: 2010-03-15

支持lz。。

作者: xjpvictor   发布时间: 2010-03-15

安装完linux-phc后要怎么加载那个内核模块?要怎么配置?不会啊。
我下载了linux-phc的源码,按照README说的执行
代码:
make prepare
make
sudo make install

执行这些命令编译没有问题,可是怎么启用这个模块不懂,LZ在1楼所说的也很混乱,看不明白哦
我的是intel的CPU,ubuntu 9.10
我去了linux-phc的主页论坛,看了一下在ubuntu 9.04下安装的帖子,貌似作者的意思是重新编译内核才可以用?

重启系统后/sys/devices/system/cpu/cpu0/cpufreq/目录下并没有phc_fids、phc_vids等文件的,说明那个phc-intel模块没有被加载

作者: Jarson   发布时间: 2010-03-15

以当前深圳的气温,我的本本CPU的温度已经上升到60度(目前能稳定在60度)了,很想尝试一下这东东,再望指教~~

作者: Jarson   发布时间: 2010-03-15

其实我想说,用powertop也行。

作者: momova   发布时间: 2010-03-16

附件:
截取选区_026.jpeg


您没有权限查看这个主题的附件。

作者: momova   发布时间: 2010-03-16

其实现在的cpu降频技术已经很好用了

比如我的core2 T9500,额定频率是2.66G,我设置了一个规则:

1 当cpu空闲或者占用不多时,最低速工作(800MHz)
2 当cpu负载达到40%以上时,全速工作(2.66G)
3 当温度大于70度时,cpu的最高工作频率是额定频率的80%

这样一来,平时cpu基本工作在最低频率,有需求的时候,上升到100%,运行完马上切换。

如果温度过高,又有事情要做,那么运行时频率稍微低一点,温度的升高没有那么快。

这个规则在我的本子上已经工作一年了,感觉还不错。

作者: hubert_star   发布时间: 2010-03-16

谢谢LS两位的解答,看来我也不用折腾了,不管它了。
似乎cpu的自动降频功能工作的还可以,就像hubert_star说的那样,一般情况下,cpu都是在最低频率上工作的,繁忙时满负荷运行。

作者: Jarson   发布时间: 2010-03-16

我觉得你还是要自己手动设定下,默认是跑在最高频率的。

作者: momova   发布时间: 2010-03-16

据说某些cpu降压会缩肛。

作者: zhuqin_83   发布时间: 2010-03-16

作者: leeaman   发布时间: 2010-03-16

zhuqin_83 写道:
据说某些cpu降压会缩肛。

大亮

作者: tenzu   发布时间: 2010-03-16

代码:
sudo cpupowerd -s
cpupowerd 0.2.1 written by Markus Strobl.
WARNING: This program could cause damage to your Hardware!
Quantity of all affected cpuids(1) is different to quantity of all cpuids(2)!
Initialisation failed!


代码:
dmesg | grep powernow                                                                                1
powernow-k8: Found 1 AMD Athlon(tm) 7750 Dual-Core Processor processors (2 cpu cores) (version 2.20.00)
powernow-k8:    0 : pstate 0 (2700 MHz)
powernow-k8:    1 : pstate 1 (1350 MHz)

我的明明支持k8嘛

作者: adagio   发布时间: 2010-03-16

fhc2007 写道:
安装完linux-phc后要怎么加载那个内核模块?要怎么配置?不会啊。
我下载了linux-phc的源码,按照README说的执行
代码:
make prepare
make
sudo make install

执行这些命令编译没有问题,可是怎么启用这个模块不懂,LZ在1楼所说的也很混乱,看不明白哦
我的是intel的CPU,ubuntu 9.10
我去了linux-phc的主页论坛,看了一下在ubuntu 9.04下安装的帖子,貌似作者的意思是重新编译内核才可以用?

重启系统后/sys/devices/system/cpu/cpu0/cpufreq/目录下并没有phc_fids、phc_vids等文件的,说明那个phc-intel模块没有被加载

sudo modprobe phc-intel

作者: syrano   发布时间: 2010-03-16

zhuqin_83 写道:
据说某些cpu降压会缩肛。

作者: syrano   发布时间: 2010-03-16

我用ubuntu自带的cpuset

作者: rediscover   发布时间: 2010-03-22

降压以后即使频率不变,性能也会下降。这很好地印证了天下没有白吃的午餐这句话。另外还可能导致意外当机。

作者: 右京样一   发布时间: 2010-03-28

右京样一 写道:
降压以后即使频率不变,性能也会下降。这很好地印证了天下没有白吃的午餐这句话。另外还可能导致意外当机。

我没发现性能下降, 而且电压测试好后从来没有当机.

作者: syrano   发布时间: 2010-03-28

10.04本身就有自动降频。

作者: rediscover   发布时间: 2010-03-29

syrano 写道:
右京样一 写道:
降压以后即使频率不变,性能也会下降。这很好地印证了天下没有白吃的午餐这句话。另外还可能导致意外当机。

我没发现性能下降, 而且电压测试好后从来没有当机.

嗯,弄好的话当机问题可以避免。不过跑跑benchmark就可以发现性能确实下降了。平时不会满负荷所以不容易看出来。

作者: 右京样一   发布时间: 2010-04-11

BigSnake.NET 写道:
降频就可以了吧

以前可以 现在额的降频也不行了... 相当郁闷.

作者: pocoyo   发布时间: 2010-04-11

mark,=amd的fusion

作者: 速腾1994   发布时间: 2010-04-14

syrano 写道:
hasee.wu 写道:
我只知道cpu的寿命很长。有块赛扬300a,从买时超频一直用到淘汰被打入杂物间,至今可用。

这有什么, 以前用赛扬1.7GHz 有一次风扇不转了, 温度打到97度, 还没有死机.


可能当时的主板没有检测cpu温度的功能

作者: Aneer   发布时间: 2010-04-23

赞一个 话说俺的机器温度一直不高

作者: nmsfan   发布时间: 2010-04-25

我喜欢用powernowd,不过现在比较新的硬件都直接识别并且应用cpufreq了,所以无所谓了

作者: Strange   发布时间: 2010-04-25

学习了

作者: 里怒系   发布时间: 2010-04-30

安装成功了,但不会设置:fid与vid的关系确定不了。LZ帮忙看看,指点一下。
CPU型号:
代码:
Intel(R) Core(TM)2 Duo CPU     T5870  @ 2.00GHz

安装后的情况:
代码:
jarson@jarson-laptop:~$ ls /sys/devices/system/cpu/cpu0/cpufreq/phc_*
/sys/devices/system/cpu/cpu0/cpufreq/phc_controls          /sys/devices/system/cpu/cpu0/cpufreq/phc_fids
/sys/devices/system/cpu/cpu0/cpufreq/phc_default_controls  /sys/devices/system/cpu/cpu0/cpufreq/phc_version
/sys/devices/system/cpu/cpu0/cpufreq/phc_default_vids      /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
jarson@jarson-laptop:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
11:45 10:37 8:30 6:23 136:15
jarson@jarson-laptop:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_default_controls
11:45 10:37 8:30 6:23 136:15
jarson@jarson-laptop:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_default_vids
45 37 30 23 15
jarson@jarson-laptop:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
45 37 30 23 15
jarson@jarson-laptop:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_fids
11 10 8 6 136
jarson@jarson-laptop:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_version
0.3.2:2


附上ubuntu 10.04下的安装方法(非10.04版本的安装方法应该相同):
参考http://linuxundich.de/de/ubuntu/mit-dem-phc-kernel-unter-ubuntu-karmic-strom-sparen/这篇文章(虽然是德语,不过只看命令就行,^_^)

代码:
sudo add-apt-repository ppa:linux-phc/ppa
sudo apt-get update
sudo apt-get install build-essential linux-generic-phc linux-headers-generic-phc

安装完后重启(选择刚刚安装的内核启动)
下载phc-intel源码http://www.linux-phc.org/forum/viewtopic.php?f=13&t=2,然后进入下载目录,执行
代码:
tar xf phc-intel*
cd phc-intel*

make prepare
make
sudo make install

sudo modprobe -r acpi-cpufreq
sudo modprobe phc-intel


开机自动加载模块:
代码:
sudo gedit /etc/modules

在末尾添加
代码:
phc-intel

作者: Jarson   发布时间: 2010-05-08

还有一个问题是:
代码:
jarson@jarson-laptop:~$ sudo su
root@jarson-laptop:/home/jarson# echo '49 41 34 27 19' > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
root@jarson-laptop:/home/jarson# cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
45 37 30 23 15

那个 /sys/devices/system/cpu/cpu0/cpufreq/phc_vids 的值并没有变化。
类似的问题这个帖子http://ubuntuforums.org/showthread.php?t=1426413里也提到了。

不解

作者: Jarson   发布时间: 2010-05-08

Jarson 写道:
还有一个问题是:
代码:
jarson@jarson-laptop:~$ sudo su
root@jarson-laptop:/home/jarson# echo '49 41 34 27 19' > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
root@jarson-laptop:/home/jarson# cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
45 37 30 23 15

那个 /sys/devices/system/cpu/cpu0/cpufreq/phc_vids 的值并没有变化。
类似的问题这个帖子http://ubuntuforums.org/showthread.php?t=1426413里也提到了。

不解


同样不解.
我只用过amd的, 对intel不太清楚.

作者: syrano   发布时间: 2010-05-13

syrano 写道:
警告(WARNING):
该程序可能损坏你的硬件
This program could cause damage to your Hardware!


看到这句,我顿生敬畏之心。

作者: zhustwo   发布时间: 2010-05-19

同上。。。。用了不久的本本。。搞完了就没得玩了。。

作者: remeber Jiraiya   发布时间: 2010-05-25

我等到夏天在试~~~~~mark

作者: lwt8787   发布时间: 2010-06-11