dsdt错误求助 添加DTGP函数 Object does not exist

dsdt错误求助 添加DTGP函数 Object does not exist,第1张

以select * from A where exists(select * from B where A.a=B.a)为例, exists表示,对于A中的每一个记录,如果,在表B中有记录,其属性a的值与表A这个记录的属性a的值相同,则表A的这个记录是符合条件的记录, 如果是NOT exists,则表示如果表B中没有

很多同学都还在为mac系统的高温不降烦恼,高温其实没那么可怕,

首先需要知道为什么mac系统的温度会这么高,

电脑的主要温度来源于CPU和显卡。

CPU温度和显卡温度降下来了,电脑温度还会这么高吗?

这就要选择适合自己的DSDT,SSDT了,这两个东西很重要,

第一、CPU温度高主要就是频率引起的,如果CPU长期高频不降,温度肯定下不来,

为什么CPU会高频不降呢,主要就是不能变频的问题,

或者是AGPM不能正确加载导致CPU高频不降,温度居高不下。

AGPM的正确加载和SMBIOS文件的关系很大,

需要选择一个合适的机型才能加载AGPM,

比如我选择的就是macbook pro 9.2,之前试过macbookpro 8.1,

发现就没加载AGPM,没做其他修改,就只是改了机型文件就成功加载了,

至于改机型也不能加载的同学请自行远景搜索加载AGPM的修改方法。

论坛里有介绍,因为我原生可以加载就没研究了。

第二、就是由于独立显卡长期的高功率引起的CPU高频不降了。

由于现在很多的独显切换技术的原因,大部分笔记本独立显卡都是不能工作的,

虽然正确识别,但是不能切换, 不仅如此,而且还一直处于满负荷工作状态,

不仅耗电量巨大,还导致CPU一直高频率为它提供处理。

这个时候需要的就是DSDT屏蔽独立显卡了,

第三、就是一个适合自己的SSDT了,以前在网上下载过几个相同CPU的I5-3210M的SSDT文件,

虽然也能正确变频,频率还很多,但是总觉得不适合自己的电脑,

开机时会有PS,CS错误,也就是变频的错误。使用ssdtPRGen生成的原版SSDT呢档位太少,达不到满意。

忘了说了,当然做这些的前提是能加载原生的CPU电源管理和LPC,至于加载LPC,只需要在DSDT中搜索0x001F0000在搜索到的

Name (_ADR, 0x001F0000)正下方添加 如下代码

Method (_DSM, 4, NotSerialized)

{

Store (Package (0x02)

{

"device-id",

Buffer (0x04)

{

0x18, 0x3A, 0x00, 0x00

}

}, Local0)

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Return (Local0)

}

因为此代码会调用DTGP,所以还需要在DSDT中添加DTGP的函数。

DTGP的函数代码为,添加到DSDT的最后一个 } 之前就可以了。

Method (DTGP, 5, NotSerialized)

{

If (LEqual (Arg0, Buffer (0x10)

{

/* 0000 */0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,

/* 0008 */0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B

}))

{

If (LEqual (Arg1, One))

{

If (LEqual (Arg2, Zero))

{

Store (Buffer (One)

{

0x03

}, Arg4)

Return (One)

}

If (LEqual (Arg2, One))

{

Return (One)

}

}

}

Store (Buffer (One)

{

0x00

}, Arg4)

Return (Zero)

}

AppleIntelCPUPowerManagement.kext

AppleIntelCPUPowerManagementClient.kext

虽然很多人在DSDT修改了LPC可以加载原生电源管理,但是更大一部分人还是需要使用破解的

AppleIntelCPUPowerManagement.kext

才能不五国,才可以顺利进入系统。分享一份修改过的CPU电源管理,

10.9.4原版修改的,10.10上也在用,没发现什么问题。

Nvidia Graphic Card Injection 英伟达显卡驱动

第1部分:地址位置

1。启动您的系统与GraphicsEnabler=Yes

2。下载名为ioreg的应用在这里

2。打开名为ioreg:

4。找到你的Nvidia图形卡的地址位置:

5.记录设备名称及地址:

注意在这个例子中,设备是PCI1

第二步, 要有 DSDT Edit

1.打开你的DSDT位于你的Extra的文件夹在启动驱动器根目录:

2.找到你的硬件位置

3.检查设备的代码:

4.在最后的中间开始添加代码

下载编辑工具 Text Document here

6. 复制下面的代码 粘贴进去

Device (GFX0) /** for Nvidia Fermi Graphics Cards **/

{

Name (_ADR, Zero)

Name (_SUN, One)

Method (_DSM, 4, NotSerialized)

{

Store (Package (0x1E)

{

“AAPL,slot-name”,

“PCI x16″,

“@0,compatible”,

Buffer (0x0B)

{

“NVDA,NVMac”

},

“@0,connector-type”,

Buffer (0×04)

{

0×00, 0×08, 0×00, 0×00

},

“@0,device_type”,

Buffer (0×08)

{

“display”

},

“@0,name”,

Buffer (0x0F)

{

“NVDA,Display-A”

},

“@1,compatible”,

Buffer (0x0B)

{

“NVDA,NVMac”

},

“@1,connector-type”,

Buffer (0×04)

{

0×00, 0×08, 0×00, 0×00

},

“@1,device_type”,

Buffer (0×08)

{

“display”

},

“@1,name”,

Buffer (0x0F)

{

“NVDA,Display-B”

},

“NVCAP”,

Buffer (0×18)

{

/* 0000 */ 0×04, 0×00, 0×00, 0×00, 0×00, 0×00, 0×03, 0×00,

/* 0008 */ 0x0C, 0×00, 0×00, 0×00, 0×00, 0×00, 0×00, 0x0A,

/* 0010 */ 0×00, 0×00, 0×00, 0×00

},

“VRAM,totalsize”,

Buffer (0×04)

{

0×00, 0×00, 0×00, 0xc0

},

“device_type”,

Buffer (0x0C)

{

“NVDA,Parent”

},

“model”,

Buffer (0×10)

{

“GeForce GTX 580″

},

“rom-revision”,

Buffer (0x1D)

{

“nVidia GTX 580 OpenGL Engine”

},

“hda-gfx”,

Buffer (0x0A)

{

“onboard-1″

}

}, Local0)

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Return (Local0)

}

}

Device (HDAU)

{

Name (_ADR, One)

Method (_DSM, 4, NotSerialized)

{

Store (Package (0×02)

{

“hda-gfx”,

Buffer (0x0A)

{

“onboard-1″

}

}, Local0)

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Return (Local0)

}

}

复制代码

7. 添加继续 修复看下是不是有错误。注意 里面的显卡参数是可以修改的 根据自己的硬件修改 继续看下

第三步就是修复错误

找到下面的代码

“VRAM,totalsize”,

Buffer (0×04)

{

0×00, 0×00, 0×00, 0xc0

},

复制代码

这个代码意思就是显卡 显存 大小修改 512M 256M 1G 2G等等

怎么修改 我们给大家列出来

0xc0=3072=3GB

0×80=2048=2GB

0×60=1536=1.5GB

0×40=1024=1GB

0×20=512=0.5GB

只需修改最后 一个数值就可以了 比如 你的显卡是1G 的

就应该是下面的代码,明白了吧 。

“VRAM,totalsize”,

Buffer (0×04)

{

0×00, 0×00, 0×00, 0x40

},

复制代码

8.找到显卡Model 这个就是显卡型号 修改的

“model”,

Buffer (0×10)

{

“GeForce GTX 580″

},

复制代码

注意在这了修改显卡型号 要注意,在这里我们都是十六进制的 比如“GeForce GTX 580”这几个数值里 总共有15个位置,一定要把空格算上,我们要把这个位置数值+1,比如这里的“GeForce GTX 580”也就是15+1=16 ,这里16的十六位进制 就是10,不会的可以百度查询 16的十六进制就知道了

大家可能知道了这里的10 对应的就是 Buffer(0×10),这个数值。对应正确即可。

9.继续看下面 找到下面的DSDT

“rom-revision”,

Buffer (0x1D)

{

“nVidia GTX 580 OpenGL Engine”

},

复制代码

这里是修改显卡ROM修正,修改方法 跟上面对应 是一样的 数值对应即可。

最后就是编辑下编译DSDT


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7848337.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存