[原创]你想如windows 那样给你的PM CPU 降低电压吗?那么看这里~是在标准电压基础上降低 不

CPU/显卡/打印机/USB设备等硬件问题
回复

成功了吗?

成功了
1
50%
没成功
1
50%
没意义
0
没有投票
像lz扔番茄
0
没有投票
 
总计票数: 2
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

[原创]你想如windows 那样给你的PM CPU 降低电压吗?那么看这里~是在标准电压基础上降低 不

#1

帖子 晶晶守护神 » 2007-12-24 16:38

1 如果你不知道我在说什么 ,就不要往下看了
2 如果你不愿意或者不会编译内核 也不要看了
3 如果你不知道自己cpu稳定的工作电压 也不要看了
4 如果你用台机 也不需要降低电压
5 如果你电池很nb 更不需要了~~
6 以上条件 都不满足的可以往下看~~



~~PM 1代和2代~~首先给内核打补丁 补丁文件在附件里面~~~
然后 打开 /linux/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
会看到如下几个结构
static struct cpufreq_frequency_table banias_900[] =
{
OP(600, 844),
OP(800, 988),
OP(900, 1004),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Ultra Low Voltage Intel Pentium M processor 1000MHz (Banias) */
static struct cpufreq_frequency_table banias_1000[] =
{
OP(600, 844),
OP(800, 972),
OP(900, 988),
OP(1000, 1004),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Low Voltage Intel Pentium M processor 1.10GHz (Banias) */
static struct cpufreq_frequency_table banias_1100[] =
{
OP( 600, 956),
OP( 800, 1020),
OP( 900, 1100),
OP(1000, 1164),
OP(1100, 1180),
{ .frequency = CPUFREQ_TABLE_END }
};


/* Low Voltage Intel Pentium M processor 1.20GHz (Banias) */
static struct cpufreq_frequency_table banias_1200[] =
{
OP( 600, 956),
OP( 800, 1004),
OP( 900, 1020),
OP(1000, 1100),
OP(1100, 1164),
OP(1200, 1180),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Intel Pentium M processor 1.30GHz (Banias) */
static struct cpufreq_frequency_table banias_1300[] =
{
OP( 600, 956),
OP( 800, 1260),
OP(1000, 1292),
OP(1200, 1356),
OP(1300, 1388),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Intel Pentium M processor 1.40GHz (Banias) */
static struct cpufreq_frequency_table banias_1400[] =
{
OP( 600, 956),
OP( 800, 1180),
OP(1000, 1308),
OP(1200, 1436),
OP(1400, 1484),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Intel Pentium M processor 1.50GHz (Banias) */
static struct cpufreq_frequency_table banias_1500[] =
{
OP( 600, 956),
OP( 800, 1116),
OP(1000, 1228),
OP(1200, 1356),
OP(1400, 1452),
OP(1500, 1484),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Intel Pentium M processor 1.60GHz (Banias) */
static struct cpufreq_frequency_table banias_1600[] =
{
OP( 600, 956),
OP( 800, 1036),
OP(1000, 1164),
OP(1200, 1276),
OP(1400, 1420),
OP(1600, 1484),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Intel Pentium M processor 1.70GHz (Banias) */
static struct cpufreq_frequency_table banias_1700[] =
{
OP( 600, 956),
OP( 800, 1004),
OP(1000, 1116),
OP(1200, 1228),
OP(1400, 1308),
OP(1700, 1484),
{ .frequency = CPUFREQ_TABLE_END }
};

#undef OP

/* Dothan processor datasheet 30218903.pdf defines 4 voltages for each
frequency (VID#A through VID#D) - this macro allows us to define all
of these but we only use the VID#C voltages at compile time - this may
need some work if we want to select the voltage profile at runtime. */

#define OP(mhz, mva, mvb, mvc, mvd) \
{ \
.frequency = (mhz) * 1000, \
.index = (((mhz)/100) << 8) | ((mvc - 700) / 16) \
}

/* Intel Pentium M processor 715 / 1.50GHz (Dothan) */
static struct cpufreq_frequency_table dothan_1500[] =
{
OP( 600, 700, 700, 700, 700),
OP( 800, 988, 988, 988, 988),
OP(1000, 1052, 1052, 1052, 1052),
OP(1200, 1180, 1180, 1180, 1180),
OP(1500, 1212, 1212, 1212, 1212),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Intel Pentium M processor 725 / 1.60GHz (Dothan) */
static struct cpufreq_frequency_table dothan_1600[] =
{
OP( 600, 988, 988, 988, 988),
OP( 800, 1068, 1068, 1052, 1052),
OP(1000, 1132, 1132, 1116, 1116),
OP(1200, 1212, 1196, 1180, 1164),
OP(1400, 1276, 1260, 1244, 1228),
OP(1600, 1340, 1324, 1308, 1276),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Intel Pentium M processor 735 / 1.70GHz (Dothan) */
static struct cpufreq_frequency_table dothan_1700[] =
{
OP( 600, 988, 988, 988, 988),
OP( 800, 1052, 1052, 1052, 1052),
OP(1000, 1116, 1116, 1116, 1100),
OP(1200, 1180, 1180, 1164, 1148),
OP(1400, 1244, 1244, 1228, 1212),
OP(1700, 1340, 1324, 1308, 1276),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Intel Pentium M processor 745 / 1.80GHz (Dothan) */
static struct cpufreq_frequency_table dothan_1800[] =
{
OP( 600, 988, 988, 988, 988),
OP( 800, 1052, 1052, 1052, 1036),
OP(1000, 1116, 1100, 1100, 1084),
OP(1200, 1164, 1164, 1148, 1132),
OP(1400, 1228, 1212, 1212, 1180),
OP(1600, 1292, 1276, 1260, 1228),
OP(1800, 1340, 1324, 1308, 1276),
{ .frequency = CPUFREQ_TABLE_END }
};

/* Intel Pentium M processor 755 / 2.00GHz (Dothan) */
static struct cpufreq_frequency_table dothan_2000[] =
{
OP( 600, 700, 700, 700, 700),
OP( 800, 700, 700, 700, 700),
OP(1000, 700, 700, 700, 700),
OP(1200, 1084, 1084, 1084, 1084),
OP(1400, 1116, 1116, 1116, 1116),
OP(1600, 1148, 1148, 1148, 1148),
OP(1800, 1196, 1196, 1196, 1196),
OP(2000, 1244, 1244, 1244, 1244),
{ .frequency = CPUFREQ_TABLE_END }
};
看到OP 后面的4个数字了吗 不错那就是电压值 前面是cpu的频率 后面的值/100 就是实际的电压值

如果里面没有你的cpu可以跟改一个为你的cpu~~型号 如果觉得变频档次不够可以自己添加 最多
是1个倍频1档次

cpu的稳定电压可以在windows 用rmclock 测试出来~~~电压值可以参考里面的~

然后如一般情况编译次内核 拷贝你的.config 到/usr/src/linux
~~cd /usr/src/linux
make&&make modules_install&&make install
如果安装了fglrx驱动清重新安装一次~~~~
上次由 晶晶守护神 在 2007-12-24 19:02,总共编辑 2 次。
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#2

帖子 晶晶守护神 » 2007-12-24 16:56

编译内核的注意的几点~~

如果希望用cpufreq 则全部加为模块~~
下面的设备不要 选
ACPI Processor P-States driver
选了以后speedstep将失效~~~speedstep是比acpi 更低层的驱动 有更好的性能
选了这个将加载不了speedstep模块 上面的电压更改就没有用了~~~~~~~~


直接 将上面lsmod的模块写进etc/modules里面
上次由 晶晶守护神 在 2007-12-24 18:20,总共编辑 3 次。
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#3

帖子 猛将兄 » 2007-12-24 17:08

如果我没记错,Ubuntu内核是支持cpu调速的,楼主大概转来的03年的文章?
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

发图

#4

帖子 晶晶守护神 » 2007-12-24 17:13

发图发图发图发图
已经增加了我添加的频率

电压应该是有变换的 ~~~不知道怎么看~~
出了手工选择以外自动适应的话 对于 具体的定义可以在 /etc/cpufreq.conf里面 有详细的定义~~

lsmod 里面应该有这几个
cpufreq_powersave 1664 0
cpufreq_stats 4740 0
cpufreq_performance 1984 0
cpufreq_ondemand 7672 0
cpufreq_conservative 6496 1


speedstep_lib 3968 0
speedstep_centrino 6088 0








下载补丁后去掉.bz2扩展名就行了 不要解压~~~没有压缩~~
freq_table 4164 3 cpufreq_stats
附件
cpufreq-speedstep-dothan-3.patch.bz2
(3.62 KiB) 已下载 55 次
cpu.jpg
上次由 晶晶守护神 在 2007-12-24 17:21,总共编辑 2 次。
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#5

帖子 晶晶守护神 » 2007-12-24 17:16

ps(因为我的cpu oc 了的 1.5 oc 2.0
但是 系统和bios 认不出来 只有cpuz 和windows 和linux 自检信息里面认出了 2000mhz~~
所以要细分频率才能有好处
对于我的cpu来说 系统里面显示的频率*1。33才行~~~

所以电压没降低太多 在0。7 到1。212之间变换)
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#6

帖子 晶晶守护神 » 2007-12-24 17:17

猛将兄 写了:如果我没记错,Ubuntu内核是支持cpu调速的,楼主大概转来的03年的文章?
我原创的 不是转贴当然我也有参考~~ubuntu是能调节cpu频率 并且不同频率分配不同电压

但是我发帖的目的是 降低每一级别~~cpu电压 ~~看清楚 ~~~~
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#7

帖子 晶晶守护神 » 2007-12-24 17:25

cpu 和功耗成二次关系~~ 这么改造以后 电池延长很多使用时间~~~

如果你在windows下用过rmclock 或者什么那个就nch的工具软件 就知道 我的意思啦~~
顶~~~~~~
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#8

帖子 晶晶守护神 » 2007-12-24 17:34

DING ~~~~~~~~~~~~~~ 8) 8) 8) 8)
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#9

帖子 晶晶守护神 » 2007-12-24 18:08

这么好的帖子杂个没人看呢 zf去了~~~~~~
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#10

帖子 晶晶守护神 » 2007-12-24 18:46

:em21 :em21 :em21 :em21 :em21 :em21
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
shellex
帖子: 2180
注册时间: 2007-02-18 19:33
系统: OSX
来自: lyric.im
联系:

#11

帖子 shellex » 2007-12-24 19:36

挺好挺好
头像
shellex
帖子: 2180
注册时间: 2007-02-18 19:33
系统: OSX
来自: lyric.im
联系:

#12

帖子 shellex » 2007-12-24 19:37

但是我不想用....
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#13

帖子 晶晶守护神 » 2007-12-24 21:46

我的机器看不了电压 没有~~~ns的 pc87591 驱动 木办法~~
但是风扇不怎么装了 说明电压是降低了的~~
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#14

帖子 晶晶守护神 » 2007-12-25 0:15

鼎鼎
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非
回复