首先需要知道为什么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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)