花样年华 发表于 13/8/7 23:57:18

修改DSDT加载原生电源管理解决睡眠唤醒扔掉NullCPUPowerManager



第一步:在windows下使用硬件管理器,查看你的LPC电源管理的硬件ID:如下图,我的电源硬件ID为:1C49:


第二步:打开你的dsdt.aml文件,搜索代码:0x001F0000插入以下代码


添加代码如下图:


Method (_DSM, 4, NotSerialized)
                {
                  Store (Package (0x02)
                        {
                            "device-id",
                            Buffer (0x04)
                            {
                              0x49, 0x1c, 0x00, 0x00
                            }
                        }, Local0)
                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                  Return (Local0)
                }


注意要点:上图硬件ID是:1c49这里的代码就要写成:0x49,0x1c。


修改完成后编译,把这个dsdt.aml扔到Extra目录下,如果不出意外,就能加载原生电源管理了,当然,如果还是不能加载,请修改AppleLPC.Kext,在AppleLPC.Kext中添加1c49的硬件ID代码<string>pci8086,1c49</string>。如下代码:

<key>AppleLPC</key><dict><key>CFBundleIdentifier</key><string>com.apple.driver.AppleLPC</string><key>IOClass</key><string>AppleLPC</string><key>IONameMatch</key><array><string>pci8086,1c49</string><string>pci8086,2815</string><string>pci8086,27b9</string><string>pci8086,27bd</string><string>pci8086,2670</string><string>pci8086,8119</string>
..............



使用IORegistryExplorer检查加载LPC的硬件ID是否正确如下图:


估计经以上修改就能正常加载你的原生电源驱动。希望大家都能完美,以上内容如有错误之处,欢迎指证交流!

new800 发表于 13/8/13 22:07:00

电源按键      

dxiaozhi 发表于 13/11/2 17:51:21

学习一下,感谢分享

jefferson2012 发表于 13/11/4 10:54:43

必须跟着楼主学习,谢谢,回头测试!

artup 发表于 13/11/8 14:01:49

谢谢分享!

Magikarp 发表于 13/11/8 16:02:33

这个只能双系统来做么?

xinben1987 发表于 13/12/30 22:45:33

学习支持了
页: [1]
查看完整版本: 修改DSDT加载原生电源管理解决睡眠唤醒扔掉NullCPUPowerManager