您尚未登录。

#1 2012-01-11 02:41:56

ReiFFEXzyx
古悠行者
注册时间: 2011-08-20
帖子: 187

使用k10ctl(AMD)/c2ctl(Intel)给CPU调压调频

k10ctl(AMD)适用于肥龙1肥龙2处理器
c2ctl(Intel)适用于扣肉1扣肉2处理器
AUR地址
k10ctl https://aur.archlinux.org/packages.php?ID=34279
c2ctl https://aur.archlinux.org/packages.php?ID=34035

我手上没有扣肉,就拿我的肥1 X3 8450说事,k10ctl/c2ctl的设置基本差不多

使用效果
Phenom X3 8450 + N的750a主板 + 9600GSO高频G92
使用前 2.10GHz@1.25V 北桥@1.25V 160-170W(新的3.2内核),
以前的内核如果碰上kworker不停占用CPU资源,功耗能飙到200-220W
使用后 2.10GHz@1.05V 北桥@1.05V 140-150W
降频后 1.05GHz@0.90V 北桥@1.00V 130W左右

内核需求
MSR支持和/dev/cpu/*/msr写权限

A Linux kernel with MSR support (Processor type and features --> /dev/cpu/*/msr - Model-specific register support) and write access to /dev/cpu/*/msr

k10ctl额外需要/proc/bus/pci/00/18.3读权限

我用的ck内核,不需要考虑这些麻烦事

[repo-ck]
Server = http://repo-ck.com/$arch

使用
k10ctl a
打印a核心的当前状态
k10ctl 0-x
打印所有核心的当前状态(x为核心数-1)
k10ctl 0-2 0
对0-2核心使用预设状态0(P-State 0)

参数设定
以下"<>"均不在命令行中出现
-nv <0-127的数字> 设定北桥电压VID
-nd <0-1的数字> 设定北桥DID(K10 CPU不支持NbDid=1)
-cv <0-127的数字> 设定CPU电压VID
-cd <0-7的数字> 设定CPU DID
-cf <0-63的数字> 设定CPU FID

计算公式
功耗:
当vid>=124,功耗U=0 mV(断电)
否则功耗U=1550mV - vid*12.5mV

CPU频率:
CPU倍频 = (CpuFid + 16) / (2^(CpuDid+1))
CPU外频通常为200MHz

范例
k10ctl默认设置
               NbVid   NbDid  CpuVid  CpuDid  CpuFid           UNb   CpuMult      UCpu     PCore
P-State 0:        24       0      24       0       5      1250.0mV  10.50000  1250.0mV   30625mW
P-State 1:        24       0      40       1       5      1250.0mV   5.25000  1050.0mV   20265mW

我目前的个人设置
               NbVid   NbDid  CpuVid  CpuDid  CpuFid           UNb   CpuMult      UCpu     PCore
P-State 0:        40       0      40       0       5      1050.0mV  10.50000  1050.0mV   ?????mW
P-State 1:        44       0      52       1       5      1000.0mV   5.25000   900.0mV   ?????mW

写入配置文件
k10ctl的配置文件在/etc/conf.d/k10ctl
打印的CPU当前状态是横向显示的,VID、FID、DID的设置是纵向的

我目前的个人设置

# Change to "true" after you configurated the settings for your CPU
# WARNING: Be SURE that the following values are correct and safe for
# your system before doing this!
[b]CONFIGURATED=true[/b]

# Number of cores for your CPU
CORES=3

# List of P-states you want to change.
# NOTE: all following arrays must have the same size!
PSTATES=( 0 1 2 )

# List of Northbridge VIDs
NBVID=( 40 44 44 )

# List of CPU VIDs
CPUVID=( 40 52 52 )

# List of CPU FIDs
FID=( 5 5 0 )

# List of CPU DIDs
DID=( 0 1 0 )

运行
sudo /etc/rc.d/k10ctl start
开机自动运行
/etc/rc.conf的DAEMONS=中添加k10ctl
打印当前状态
sudo k10ctl 0-2
加载P-State 1
sudo k10ctl 0-2 1

注意:
确定你的设置正确后,再修改CONFIGURATED为true,否则等着屏幕不响应、黑屏或者重启吧
每个CPU的情况是不同的,请在k10ctl 0-x打印出的默认配置上修改
VID可以慢慢提高,直到找到能使系统稳定的最高值(即稳定的最低电压)


[fracting的大作]Wine使用中的一些常见误区
http://forum.ubuntu.org.cn/viewtopic.php?f=121&t=363147
顺便学习一下对待开源软件的正确态度

离线

#2 2012-01-11 09:09:25

dryland718
会员
所在地: 3.1415926535897932384626433832
注册时间: 2011-10-30
帖子: 66
个人网站

Re: 使用k10ctl(AMD)/c2ctl(Intel)给CPU调压调频

我现在连cpu电压多少都不知道,lm_sensors也测不出来。。

离线

页脚