查看: 25129|回复: 75

[教程] 如何打开CPU降频的CSTInfo,如何正确显示降频的FID/VID参数?

[复制链接]
发表于 2011-4-17 14:19 | 显示全部楼层 |阅读模式 |IP属地湖北
快御云安全
本帖最后由 lunjen2009 于 2012-8-26 13:53 编辑

首先道谢CPU降频技术帖子的venicehuang、DSDT指导的道奇兔。没有他们,神舟本本恐怕早报废了。

最近几天有不少网友专门折腾CPU降频技术,遇到一些奇奇怪怪的问题,比如打不开CSTInfo,CPU降频参数的不正确,可能造成高温,甚至五国,严重会烧坏主板。打开SpeedStep的有几个方法,如:BIOS打开SpeedStep(i7才有这个功能),变色龙加二个参数实现SpeedStep降频,DSDT加载CPU降频数据+LPC(HPET规范)达到自动降频的目的。最近,有不少童鞋喜欢折腾DSDT引载原版SpeedStep的技术(https://bbs.pcbeta.com/viewthread-632561-1-1.html)。但有人用变色龙的二个参数都没有办法打开CSTInfo,甚至DSDT也无法打开,或者打开CSTInfo,而CPU参数的档数和参数却不正确。这个问题我研究,有了小小心得------造成上述N原因,可能除了硬件如CPU不支持SpeedStep,还有机箱设置参数影响CPU降频,原因是多方面的。如果排除了上述N问题仍无法打开SpeedStep(CSTInfo),最可能是DSDT中的HPET和LPC的问题。因个人时间有限,不能一个一个帮做CPU降频和LPC加载的DSDT,因此写帖,想方便童鞋朋友而己。(高人可以无视)

会玩DSDT的童鞋们都会做HPET替换标准规范代码,加LPC代码等。然而,有的网友都做好了CPU降频代码,MAC SL6也加载了AppleLPC,仍无法打开SpeedStep?(CPU降频代码正确无误)

我本本不是好牌--神舟,但支持MAC很给力的。为了方便了解AppleLPC,所以有必要讲一下神舟HP650的配置:板子是SW8标准系统,正确的说法是InteI平台ICH9M(与ICH9R[2916]有区别的),这个ICH9M的ID是2919(0x19,0x29),所以DSDT输入LPC代码写0x19,0x29,0x00,0x00(因为前不久新的变色龙boot 支持2919,见帖子https://bbs.pcbeta.com/viewthread-840612-1-1.html的“HPET支持型号”)

所以,我DSDT加写LPC代码
  1.             Device (LPCB)
  2.             {
  3.                 Name (_ADR, 0x001F0000)
  4.                 OperationRegion (LPC0, PCI_Config, 0xA4, 0x02)
  5.                 Field (LPC0, ByteAcc, NoLock, Preserve)
  6.                 {
  7.                     AG3E,   1
  8.                 }
  9.                 Method (_DSM, 4, NotSerialized)
  10.                 {
  11.                     Store (Package (0x02)
  12.                         {
  13.                             "device-id",
  14.                             Buffer (0x04)
  15.                             {
  16.                                 0x19, 0x29, 0x00, 0x00
  17.                             }
  18.                         }, Local0)
  19.                     DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  20.                     Return (Local0)
  21.                 }
复制代码
结果发现无法打开SpeedStep(CSTInfo),打开IORegistryExplorer查一下,AppleLPC也加载了,折腾一会没办法解决,后来试按照紫米的帖子提供的数据,修改“0x16, 0x29, 0x00, 0x00”(ICH9R标准),重启MAC后,终于打开了CPU降频,CSTInfo也开了。打开IORegistryExplorer看,结果如图:

4444.jpg

333.jpg

原来这样,要配合原生驱动输入正确的ID,才能引载原版SpeedStep降频节能技术,不能按照变色龙boot的HPET支持型号的ID来搞,否则只有这样见图:

2.jpg



所以,要加入LPC代码先要配合原生驱动,先查看原生驱动(AppleLPC.kext)的数据(如何找原生驱动数据请搜索),写入很近机箱的原生ID,才能加载SpeedStep降频节能技术。

或者,支持HPET的ID可添加至AppleLPC.kext(见下面作参考),   见21楼sblook反馈:".......因为我的芯片组是NM10,已经在支持列表里,但是AppleLPC.kext里没有,所以需要把对应的名称加到 AppleLPC.kext->content->plist里面去,多谢楼主的分享,这下Atom的cpu也能看到CSTInfo 鸟~~~~~"

  1. 参考:支持HPET的ID可添加至AppleLPC.kext

  2. HPET支持型号:
  3. 0x8086, 0x24dc, "ICH5"
  4. 0x8086, 0x2640, "ICH6"
  5. 0x8086, 0x2641, "ICH6M"
  6. 0x8086, 0x27b0, "ICH7 DH"
  7. 0x8086, 0x27b8, "ICH7"
  8. 0x8086, 0x27b9, "ICH7M"
  9. 0x8086, 0x27bd, "ICH7M DH"
  10. 0x8086, 0x27bc, "NM10"
  11. 0x8086, 0x2810, "ICH8R"
  12. 0x8086, 0x2811, "ICH8M-E"
  13. 0x8086, 0x2812, "ICH8DH"
  14. 0x8086, 0x2814, "ICH8DO"
  15. 0x8086, 0x2815, "ICH8M"
  16. 0x8086, 0x2912, "ICH9DH"
  17. 0x8086, 0x2914, "ICH9DO"
  18. 0x8086, 0x2916, "ICH9R"
  19. 0x8086, 0x2917, "ICH9M-E"
  20. 0x8086, 0x2918, "ICH9"
  21. 0x8086, 0x2919, "ICH9M"
  22. 0x8086, 0x3a14, "ICH10DO"
  23. 0x8086, 0x3a16, "ICH10R"
  24. 0x8086, 0x3a18, "ICH10"
  25. 0x8086, 0x3a1a, "ICH10D"
  26. 0x1106, 0x3372, "VT8237S"
复制代码



另外,转载紫米的HPET代码,这是苹果标准规范要替换,代码在下面:


  1.                 Device (HPET)
  2.                 {
  3.                     Name (_HID, EisaId ("PNP0103"))
  4.                     Name (ATT3, ResourceTemplate ()
  5.                     {
  6.                         IRQNoFlags ()
  7.                             {0}
  8.                         IRQNoFlags ()
  9.                             {8}
  10.                         Memory32Fixed (ReadWrite,
  11.                             0xFED00000,         // Address Base
  12.                             0x00000400,         // Address Length
  13.                             )
  14.                     })
  15.                     Name (ATT4, ResourceTemplate ()
  16.                     {
  17.                     })
  18.                     Method (_STA, 0, NotSerialized)
  19.                     {
  20.                         Return (0x0F)
  21.                     }
  22.                     Method (_CRS, 0, NotSerialized)
  23.                     {
  24.                         Return (ATT3)
  25.                     }
  26.                 }
复制代码

试验是否正确能输入二个命令:









  1. ioreg -lw0 | grep AICPMVersioreg -lw0 | grep PerformanceStateArray
复制代码
如成功打开了可看ヤo逸軒oο的教程帖子《修复自动降频DSDT的修改方法》

也可去看宅娘伴侣相关CPU降频的讨论和解决方法:《完美前的最后努力DSDT奉上 求大家帮忙增加降频》

结束语:没有接触过苹果会觉得新鲜,黑苹果折腾要花不少时间和精力,玩熟了会觉得没意思,象WIN7一样了。所以身体先要考虑到。

————————×——————————×————————×————————×——————————

神舟HP650   合适 MacBook Pro5,1

FakeSMC.kext的Info.plist
f.jpg

com.apple.Boot.plist
C.jpg

SMBIOS.plist
S.jpg

输入二个命令
E.jpg

————————————————————————————————————

祝贺sblook开CSTInfo成功,见17\20\21楼,可作参考!


评分

2

查看全部评分

发表于 2011-4-17 14:45 | 显示全部楼层 |IP属地广东
回复 lunjen2009 的帖子

不过我正确加载了LPC的ID和主板3A18(ICH10)。用原来的方法修改可以加载CPUPLimit和其他信息,就是不自动调频。
难道我是个例
回复

使用道具 举报

发表于 2011-4-17 14:58 | 显示全部楼层 |IP属地美国
请教楼主个问题,我的hpet这段的代码是这样的,请问是删除然后用你贴里的apple标准代码替换么?谢谢。
Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            _Y03)
                    })
                    OperationRegion (^LPCR, SystemMemory, 0xFED1F404, 0x04)
                    Field (LPCR, AnyAcc, NoLock, Preserve)
                    {
                        HPTS,   2,
                            ,   5,
                        HPTE,   1,
                                Offset (0x04)
                    }
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (OSFL (), Zero))
                        {
                            If (HPTE)
                            {
                                Return (0x0F)
                            }
                        }
                        Else
                        {
                            If (HPTE)
                            {
                                Return (0x0B)
                            }
                        }
                        Return (Zero)
                    }
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS, \_SB.PCI0.SBRG.HPET._Y03._BAS, HPT)
                        Multiply (HPTS, 0x1000, Local0)
                        Add (Local0, 0xFED00000, HPT)
                        Return (CRS)
                    }
                }
                OperationRegion (RX80, PCI_Config, Zero, 0xFF)
                Field (RX80, ByteAcc, NoLock, Preserve)
                {
                            Offset (0x80),
                    LPCD,   16,
                    LPCE,   16
                }
                Name (DBPT, Package (0x04)
                {
                    Package (0x08)
                    {
                        0x03F8,
                        0x02F8,
                        0x0220,
                        0x0228,
                        0x0238,
                        0x02E8,
                        0x0338,
                        0x03E8
                    },
                    Package (0x08)
                    {
                        0x03F8,
                        0x02F8,
                        0x0220,
                        0x0228,
                        0x0238,
                        0x02E8,
                        0x0338,
                        0x03E8
                    },
                    Package (0x03)
                    {
                        0x0378,
                        0x0278,
                        0x03BC
                    },
                    Package (0x02)
                    {
                        0x03F0,
                        0x0370
                    }
                })
                Name (DDLT, Package (0x04)
                {
                    Package (0x02)
                    {
                        Zero,
                        0xFFF8
                    },
                    Package (0x02)
                    {
                        0x04,
                        0xFF8F
                    },
                    Package (0x02)
                    {
                        0x08,
                        0xFCFF
                    },
                    Package (0x02)
                    {
                        0x0C,
                        0xEFFF
                    }
                }

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-4-17 16:48 | 显示全部楼层 |IP属地湖北
回复 ヤo逸軒oο 的帖子

这我看过你的帖子,按理是会有自动降频,郁闷. 原因不很清楚,好在把所有的信息都填全你居然解决了,黑苹果有意思,做这那必死,救那这又抽筋....耐心是成功必备之一.  

本本完美自动降频让我安心
回复

使用道具 举报

 楼主| 发表于 2011-4-17 16:53 | 显示全部楼层 |IP属地湖北
本帖最后由 lunjen2009 于 2011-4-17 17:31 编辑

回复 sblook 的帖子

你HPET没有
  •                         IRQNoFlags ()
  •                             {0}
  •                         IRQNoFlags ()
  •                             {8}

先加上面,如不行就替换HPET全码,要多试验,善用IORegistryExplorer,
黑苹果不能没有IORegistryExplorer

回复

使用道具 举报

发表于 2011-4-17 18:24 | 显示全部楼层 |IP属地山东
本帖最后由 xiaobangdelei 于 2011-4-17 18:27 编辑

回复 lunjen2009 的帖子

我的也是ICH9M.我应该是正确加载了LPC applelpc.jpg 但是输入ioreg -lw0 | grep CSTInfo 无反馈结果




acpi smc.jpg 此处看不到CSTInfo

点评

尝试下修改机型。  发表于 2011-4-17 18:58
回复

使用道具 举报

 楼主| 发表于 2011-4-17 18:39 | 显示全部楼层 |IP属地湖北
本帖最后由 lunjen2009 于 2011-4-21 09:09 编辑

回复 xiaobangdelei 的帖子

IORegistryExplorer查看正确无误之后,要考虑DSDT之外的问题,这帖子只是DSDT上问题的解决.
回复

使用道具 举报

 楼主| 发表于 2011-4-17 18:43 | 显示全部楼层 |IP属地湖北
回复 xiaobangdelei 的帖子

1.jpg

点击它可以展开吗?
要点击它.
回复

使用道具 举报

发表于 2011-4-17 19:53 | 显示全部楼层 |IP属地广东
1.jpg
我现在也不清楚我的是ICH9还是ICH9M……
屏幕快照 2011-04-17 下午07.42.07.png

屏幕快照 2011-04-17 下午07.41.47.png

这个是两个IORegistryExplorer的截图,不知道LPC正不正确。
ioreg -lw0 | grep CSTInfo
这个得不到数据
ioreg -lw0 | grep PerformanceStateArray

这个之前就一直可以得到数据

现在使用的是只加了加载AppleLPC和HPET的代码,HPET的那个用的是ACPIPatcher自动生成的,代码好像和1楼那个一样。至于AppleLPC那里,用的也是“0x16, 0x29, 0x00, 0x00”(ICH9标准)。
回复

使用道具 举报

 楼主| 发表于 2011-4-17 20:07 | 显示全部楼层 |IP属地湖北
回复 pengbangbo 的帖子

看到了,你输的是ICH10  3a18  DSDT要改为2916  即:0x16,0x29,0x00,0x00  检查一下你的DSDT
回复

使用道具 举报

发表于 2011-4-17 20:11 | 显示全部楼层 |IP属地广东
本帖最后由 pengbangbo 于 2011-4-17 20:12 编辑

回复 lunjen2009 的帖子

我记得明明改了啊,怎么又变成3a18了,反编译一下果然用的还是以前的,汗……
换上修改之后的再看看去咯~~多谢了
回复

使用道具 举报

发表于 2011-4-17 20:14 | 显示全部楼层 |IP属地山东
回复 lunjen2009 的帖子

点击可以展开,有8个值
回复

使用道具 举报

发表于 2011-4-17 20:17 | 显示全部楼层 |IP属地山东
回复 ヤo逸軒oο 的帖子

我从mbp3.1改成5.1,效果一样的!

评分

1

查看全部评分

回复

使用道具 举报

发表于 2011-4-17 20:21 | 显示全部楼层 |IP属地广东
屏幕快照 2011-04-17 下午08.24.02.png
这次换成2916了,变色龙开启Generate PStates和CStates,CSTInfo还是获取不到……郁闷。
回复

使用道具 举报

 楼主| 发表于 2011-4-17 20:24 | 显示全部楼层 |IP属地湖北
回复 pengbangbo 的帖子

有SMBIOS的吗?如果有尽量做近ICH9的机箱。

点评

我把smbios改成了mbp5.1 现在还是无法获取cstinfo,根据你的理解,一般是由什么情况造成的?  发表于 2011-4-17 20:44
回复

使用道具 举报

 楼主| 发表于 2011-4-17 20:48 | 显示全部楼层 |IP属地湖北
回复 xiaobangdelei 的帖子

MacPro4,1  试试

点评

非常感谢,马上尝试!  发表于 2011-4-17 20:50
回复

使用道具 举报

发表于 2011-4-17 21:28 | 显示全部楼层 |IP属地北京
请问楼主,根据你的说法,我的主板是NM10,HPET型号:0x8086, 0x27bc, "NM10" ,那么我转换后应该是0x27,0xbc么?谢谢
回复

使用道具 举报

发表于 2011-4-17 21:30 | 显示全部楼层 |IP属地重庆
好帖子,学习了。 有时间慢慢折腾。
回复

使用道具 举报

发表于 2011-4-17 21:42 | 显示全部楼层 |IP属地山东
回复 lunjen2009 的帖子

变色龙的smbios.plist改成macpro4,1后开机五国.......顺便问一下,s/l/e下面的smbios.kext要不要删除?

点评

这我没有接触,不了解. 五国说明不合适,venicehuang说推荐macpro3,1 macpro4,1  发表于 2011-4-17 21:48
回复

使用道具 举报

 楼主| 发表于 2011-4-17 21:45 | 显示全部楼层 |IP属地湖北
回复 sblook 的帖子

应该是:0xbc,0x27
但原生只有二个很近的ID : 27bd , 27b9  
一楼有第一张图片的绿框.


回复

使用道具 举报

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

本版积分规则

小黑屋手机版联系我们

Copyright © 2005-2024 PCBeta. All rights reserved.

Powered by Discuz!  CDN加速及安全服务由「快御」提供

请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。

远景在线 ( 苏ICP备17027154号 )|远景论坛 |Win11论坛 |Win10论坛 |Win8论坛 |Win7论坛 |WP论坛 |Office论坛

GMT+8, 2024-12-22 17:21

快速回复 返回顶部 返回列表