- UID
- 591921
- 最后登录
- 1970-1-1
- 阅读权限
- 70
- 精华
- 主题
- 回帖
- 0
- 积分
- 3244
- PB币
-
- 威望
-
- 贡献
-
- 技术
-
- 活跃
-
|
本帖最后由 道奇兔 于 2011-4-21 18:07 编辑
原本根据修改DSDT自动降频的帖子修改的地址:
https://bbs.pcbeta.com/viewthread-632561-1-1.html
今天看到这个帖子的工具,才发现自己原先修改的自动降频根本无效。
https://bbs.pcbeta.com/viewthread-859522-1-1.html
后来使用变色龙添加自动降频参数后,取得数据,做以下修改:
首先使用变色龙加入自动降频参数进入系统:
在com.apple.Boot.plist里加入以下代码:
<key>GenerateCStates</key>
<string>YES</string>
<key>GeneratePStates</key>
<string>YES</string>
在终端输入:
ioreg -lw0 | grep PerformanceStateArray
取得以下信息:
- <c4090000000000000a0000000a000000204c000001000000><60090000000000000a0000000a0000001f0c000002000000><fc080000000000000a0000000a0000001f4b000003000000><98080000000000000a0000000a0000001f0b000004000000><34080000000000000a0000000a0000001f4a000005000000><d0070000000000000a0000000a0000001e0a000006000000><6c070000000000000a0000000a0000001e49000007000000><08070000000000000a0000000a0000001e09000008000000><a4060000000000000a0000000a0000001e48000009000000><40060000000000000a0000000a0000001d0800000a000000><dc050000000000000a0000000a0000001d4700000b000000><78050000000000000a0000000a0000001d0700000c000000><14050000000000000a0000000a0000001d4600000d000000><b0040000000000000a0000000a0000001c0600000e000000>
复制代码 然后再将每个档位,分成6个数组,每个数组8个数字。
再反序排列下,例如:
第一个档位:c4090000 00000000 0a000000 0a000000 204c0000 01000000
第二个档位:60090000 00000000 0a000000 0a000000 1f0c0000 02000000
第一个档位: 0x000009c4 //0x09C4 0x00000000 //Zero 0x0000000a //0x0A 0x0000000a //0x0A 0x00004c20 //0x4C20 0x00000001 //One 第二个档位: 0x00000960 //0x0960 0x00000000 //Zero 0x0000000a //0x0A 0x0000000a //0x0A 0x00000c1f //0x0C1F 0x00000002 //0x02
还是使用原来的自动降频帖子中提到的代码修改DSDTScope (_PR.CPU0) { Method (_PSS, 0, NotSerialized) { Return (Package (0x0R) { Package (0x06) { Zero, Zero, 0x10, 0x10, 0xSSSS, //PState 0(CPU最高频率挡)的FID、VID值 Zero // PState序列0 }, Package (0x06) { Zero, Zero, 0x10, 0x10, 0xSSSS, //PState 1的FID、VID值 One // PState序列1 }, Package (0x06) { Zero, Zero, 0x10, 0x10, 0xSSSS, //PState 2的FID、VID值 0x02 //PState序列2 } }) } Method (_PSD, 0, NotSerialized) { Return (Package (0x05) { 0x05, Zero, Zero, 0xFC, 0x04 }) } Method (_CST, 0, NotSerialized) { Return (Package (0x02) { One, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000000, // Address 0x01, // Access Size ) }, One, 0x9D, 0x03E8 } }) } } Scope (_PR.CPU1) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (Package (0x04) { 0x03, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000000, // Address ,) }, One, Zero, 0x03E8 }, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, // Bit Width 0x00, // Bit Offset 0x0000000000000414, // Address ,) }, 0x02, One, 0x01F4 }, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, // Bit Width 0x00, // Bit Offset 0x0000000000000415, // Address ,) }, 0x03, 0x55, 0xFA } }) } } Scope (_PR.CPU2) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (^^CPU1._CST ()) } } Scope (_PR.CPU3) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (^^CPU1._CST ()) } }
修改大部分相同,就直接从venicehuang贴中直接复制过来了。
若你的CPU为双核,则删除上述代码144行以后部分(CPU2、CPU3部分),4核无需;
R(上述代码第5行的0x0R)表示你的CPU可使用PState挡数,打开PStateChanger点击PState项,如图所示,此CPU可使用PState挡数为3挡,则R应改为3,若你的CPU为4挡则改为4,依此类推;
SSSS为该PState挡的FID(倍频)、VID(默认电压)值(不是10进制),如图PState0 FID值为08,VID值为20,则SSSS应为0820;
0xSSSS下面的Zero、One、0x02等表示该PState挡的序列,如PState0为Zero,PState1为One,PState2为0x02,PState3为0x03 ......依此类推自行修改;
你的CPU有几挡PState,则有几份如下代码Package (0x06) { Zero, Zero, 0x10, 0x10, 0xSSSS, //PState 0(CPU最高频率挡)的FID、VID值 Zero // PState序列0 }, 这里不同的修改是6处都需要做修改,也就是上面从终端提取的数据。例如: Package (0x06) { 0x09C4, Zero, 0x0A, 0x0A, 0x4C20, One }, Package (0x06) { 0x0960, Zero, 0x0A, 0x0A, 0x0C1F, 0x02 },
基本和venicehuang贴子是相同的,只是修改一小部分。
另外看到一些朋友说无法加载VoodooPState这个驱动。可以使用终端手动加载,如VoodooPState放在桌面:
sudo chown -R root:wheel ~/Desktop/VoodooPState.kext
sudo chmod -R 755 ~/Desktop/VoodooPState.kext
sudo kextload ~/Desktop/VoodooPState.kext
即可加载了。
後續..如果發現CSTInfo沒有打開請參考
https://bbs.pcbeta.com/viewthread-862415-1-2.html
|
评分
-
8
查看全部评分
-
|