sm1314 发表于 2013-6-14 21:30

联想Y550,10.8.4完美驱动,可睡眠,可显示电源,CPU,GPU自动降频

本帖最后由 sm1314 于 2013-6-14 22:52 编辑

机型Y550,10.8.4完美驱动。原生电源管理,可睡眠,可显示电源,CPU,GPU可自动降频。itunes,imessage,facetime等都能正常工作。能够啃到较为完美的黑苹果,和论坛的各种大牛的经验分享是分不开的。所以我也把自己的成果分享出来,帮助更多的机油~~我对整个黑苹果的运作原理了解的不是很深,如果有错误还请包涵~~

1. 硬件配置
主板:型号KIWB1芯片组英特尔 4 Series - ICH9M 笔记本芯片组
内存:DDR3 1067MHz 2GB
CPU:Intel 酷睿2双核 P8700   (淘宝买的,原来是T6600)
显卡:GT130M声卡:ALC272
有线网卡:BCM5784M
无线网卡:AR9287   (淘宝买的,25块包邮)
硬盘:西数320G,5400转


2. ML10.8.4安装过程
安装过程我就不详细说了,是按照绝情奶牛的那个帖子一步步来做的: 传送门
注意安装的时候要把安装盘中S/L/E里面的集显驱动KEXT全部删除,即除了两个AppleIntelCPU*,将所有AppleIntel*的KEXT删除,否则安装进不去。安装前要确保org.chameleon.Boot.plis中有:
<key>GraphicsEnabler</key><string>Yes</string>安装的过程中要不断晃动鼠标,不然10分钟左右会白屏死机。安装完之后要把安装盘中的EXTRA文件夹拷贝到系统根目录下。
安装完之后会发现,显卡自动驱动,无电池显示,无声音,有线无线网卡都没有驱动。

3. 各种功能的实现
3.1 显卡和CPU的自动降频
CPU变频图:

可以从图中看到CPU支持11个倍频。
GPU变频只是靠感觉来的,刚装上系统后风扇转得很猛,总以为是CPU不能降频,不过拆了后盖一摸才发现是显卡在大量发热。经过以下步骤处理之后,只开10来个Safari没有flash的标签页,风扇几乎是不转的,转的话也是转1~2分钟之后就听不到了,温度很低。
CPU和GPU变频的具体处理方法是:由于130M显卡只是9600M的一个马甲,而Macbook Pro 5,1 恰好使用的CPU是P8700,而GPU是9600M,我们只要利用fakesmc.kext和SMbios将笔记本伪装成Macbook Pro 5,1,便可使用到原生的变频。
SMbios可以使用Chameleon Wizard改动,下载:
同时fakesmc也要做相应的改动,改动方法见:传送门
改好之后用Kext Utility修复权限,重建缓存等,就不说了,还要记得删除掉/Extra下面的NullCPUPowerManagement.kext,使其能够加载两个原生的CPU电源管理驱动。如下图所示。

需要注意的是,用上述方法实现CPU和GPU变频的过程中,我在DSDT中没有添加相关的代码。如果在DSDT添加了CPU部分或者GPU部分的代码,我是不能够启动的。

3.2 ALC272声卡驱动

DSDT+KEXT替换,
KEXT下载:
DSDT修改的具体方法是在Device(PCI0)中添加红色的代码:
Device(PCI0)
{
          Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Name (_PRW, Package (0x02)
                {
                  0x05,
                  0x04
                })
                OperationRegion (HDAR, PCI_Config, 0x4C, 0x10)
                Field (HDAR, WordAcc, NoLock, Preserve)
                {
                  DCKA,   1,
                            Offset (0x01),
                  DCKM,   1,
                        ,   6,
                  DCKS,   1,
                            Offset (0x08),
                        ,   15,
                  PMES,   1
                }
                Method (_DSM, 4, NotSerialized)
                {
                  Store (Package (0x12)
                        {
                            "AAPL,slot-name",
                            Buffer (0x09)
                            {
                              "Built-In"
                            },
                            "codec-id",
                            Buffer (0x04)
                            {
                              0x72, 0x02, 0xEC, 0x10
                            },
                            "built-in",
                            Buffer (One)
                            {
                              0x00
                            },
                            "layout-id",
                            Buffer (0x04)
                            {
                              0x10, 0x01, 0x00, 0x00
                            },
                            "name",
                            Buffer (0x0F)
                            {
                              "Realtek ALC272"
                            },
                            "model",
                            Buffer (0x0F)
                            {
                              "Realtek ALC272"
                            },
                            "device_type",
                            Buffer (0x06)
                            {
                              "sound"
                            },
                            "hda-gfx",
                            Buffer (0x0A)
                            {
                              "onboard-1"
                            },
                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                  Return (Local0)
                }
            }

            Device(MIR)
            {
                  略。。。。
            }
             略。。。。
}
需要注意的是确保启动时变色龙加载Extra文件夹,新版默认是不加载的。不加载的话修改org.chameleon.Boot.plist,增加:      <key>Kernel Flags</key>      <string>-f</string>就可以了。
如图,声卡内建,麦克风可用。


3.3 有线网卡驱动
解决方法:修改DSDT配合KEXT驱动。
DSDT修改:在Device(PCI0)中添加红色代码
Device(PCI0)
{
          略。。。
          Device (RP06)
          {
                Name (_ADR, 0x001C0005)
                OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
                Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x12),
                        ,   13,
                  LASX,   1,
                            Offset (0x1A),
                  ABPX,   1,
                        ,   2,
                  PDCX,   1,
                        ,   2,
                  PDSX,   1,
                            Offset (0x1B),
                  LSCX,   1,
                            Offset (0x20),
                            Offset (0x22),
                  PSPX,   1,
                            Offset (0x9C),
                        ,   30,
                  HPSX,   1,
                  PMSX,   1
                }
                Device (PXSX)
                {
                  Name (_ADR, Zero)
                  Name (_SUN, 0x05)
                  Method (_DSM, 4, NotSerialized)
                  {
                        Store (Package (0x06)
                            {
                              "device_type",
                              Buffer (0x14)
                              {
                                    "Ethernet Controller"
                              },
                              "model",
                              Buffer (0x34)
                              {
                                    "Broadcom BCM5784M PCI-E Gigabit Ethernet Controller"
                              },
                              "built-in",
                              Buffer (One)
                              {
                                    0x00
                              }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                  }
                  Name (_PRW, Package (0x02)
                  {
                        0x09,
                        0x04
                  })
                }
                Name (_PRW, Package (0x02)
                {
                  0x09,
                  0x04
                })
                Method (_PRT, 0, NotSerialized)
                {
                  If (PICM)
                  {
                        Return (AR05)
                  }
                  Return (PR05)
                }
          }
         略。。。。
}

KEXT驱动下载:, 放到/E或/S/L/E下面,修复权限。
重启之后就可以了。
如图:


3.4无线网卡驱动
解决方法:手工换AR9287,我买的AR9287貌似是半高的,然后Y550的AG5100是全高的,只能手工焊了两根引线接地,不过效果还不错。换无线网卡要刷主板白名单,不然主板点不亮。

然后是修改DSDT。添加红色部分代码,如下:
Device(PCI0)
{
            略。。。
            Device (RP04)
            {
                Name (_ADR, 0x001C0003)
                OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
                Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x12),
                        ,   13,
                  LASX,   1,
                            Offset (0x1A),
                  ABPX,   1,
                        ,   2,
                  PDCX,   1,
                        ,   2,
                  PDSX,   1,
                            Offset (0x1B),
                  LSCX,   1,
                            Offset (0x20),
                            Offset (0x22),
                  PSPX,   1,
                            Offset (0x9C),
                        ,   30,
                  HPSX,   1,
                  PMSX,   1
                }
                Device (PXSX)
                {
                  Name (_ADR, Zero)
                  Name (_PRW, Package (0x02)
                  {
                        0x0B,
                        0x05
                  })
                  Method (_DSM, 4, NotSerialized)
                  {
                        Store (Package (0x0C)
                            {
                              "AAPL,slot-name",
                              Buffer (0x08)
                              {
                                    "AirPort"
                              },
                              "device-id",
                              Unicode ("*"),
                              "device_type",
                              Buffer (0x08)
                              {
                                    "AirPort"
                              },
                              "model",
                              Buffer (0x34)
                              {
                                    "Atheros AR9287 Wireless Network Adapter"
                              },
                              "subsystem-id",
                              Buffer (0x04)
                              {
                                    0x8F, 0x00, 0x00, 0x00
                              },
                              "subsystem-vendor-id",
                              Buffer (0x04)
                              {
                                    0x6B, 0x10, 0x00, 0x00
                              }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                  }
                }
                Name (_PRW, Package (0x02)
                {
                  0x09,
                  0x04
                })
                Method (_PRT, 0, NotSerialized)
                {
                  If (PICM)
                  {
                        Return (AR07)
                  }
                  Return (PR07)
                }
         }
      略。。。
}
如图,相比于直接用Ar9287的驱动KEXT+修改id的方法,这种方法的好处是对加密网络支持的非常好,不会中途掉线。


3.5 鼠标、键盘、触控板、读卡器、蓝牙
蓝牙原生驱动,鼠标、键盘、触控板、读卡器都是用以下两个KEXT驱动的,不需要改DSDT。触控板能够实现两点触控。
KEXT下载:
如图:


3.6 电源管理以及电池驱动
除了3.1所说的两个CPU电源管理驱动,还需要修改DSDT来成功加载AppleLPC.KEXT实现原生电源管理。这里有个教程,我就不写了:传送门
如果完成了教程中描述的内容,并且主板支持的话,就能开启原生电源管理了。不过在10.8.4中电池信息还获取不到,因为从Lion以后,苹果修改了AppleACPIPlatform.kext对DSDT电池信息的读取方式,一次只能读8字节什么的。因此解决方法有两个,一是搜一个雪豹系统的AppleACPIPlatform.kext,替换掉原系统的。二是修改DSDT的电池部分,具体方法可以搜索论坛,关键词用“DSDT 电池驱动”,多爬几楼就可以了。
我用的是第一种方法,原因有两个。一是Y550DSDT中电池表的修改太麻烦了,而且我也没有搜到有Y550成功修改好的DSDT。第二个原因是有部分机油反应,修改DSDT后,电池信息容易出现错乱。比如拔掉电源线,使用电池到60%以下会出现已连接到电源的图标,比较蛋疼。
替换好AppleACPIPlatform.kext后,还要增加一个AppleACPIBatteryManager.kext获取电池信息。
这两个文件打包下载:
修复权限,重建缓存后,重启就可以看到了:


3.7 睡眠和唤醒
想要实现睡眠和唤醒的首要条件是加载原生电源管理,以及USB内建。Y550USB内建教程:传送门,按照这个教程修改DSDT后便可以实现睡眠和唤醒。如果你实现了原生电源管理和USB内建,声卡仿冒,就不会发生唤醒后鼠标不能用、没有声音等乱七八糟的问题。

3.8 其他优化
3.8.1 启动速度加速
变色龙增加use kernel cache 一项,开启前菊花转40转,开启后菊花转20转左右。
3.8.2 防主板重置
下载这个KEXT: 放到/E下。
3.8.3 双系统时间补丁
自己搜索

4 还需要解决的问题
4.1 开机扁苹果
开机时扁苹果,把变色龙分辨率设为1366*768也没有用。
4.2 亮度调节小太阳
虽然可以用上下键+Fn调节亮度,但是不显示小太阳,还是挺不爽的。

希望能够帮到爱折腾的机油们~~ 也希望大牛帮我解决下上面的两个问题~~







补充内容 (2013-6-23 17:13):
cpu变频可以勾变色龙的CPU选项,GPU变频通过设置机型MBP6,2,并该AGPM中的相关代码,添加显卡id 10de 0652

ABlacK 发表于 2013-6-15 23:19

感謝分享!!學習再學習

sm1314 发表于 2013-6-16 17:27

哈哈,终于有人回复了。

ruydo1988 发表于 2013-6-16 18:22

添加
        <key>Graphics Mode</key>
        <string>1280x720x32</string>
开机完美苹果显示

xuqiang1990 发表于 2013-6-16 18:43

xiexiefenx

kimzoe 发表于 2013-7-1 16:18

mark
牛x

kimzoe 发表于 2013-7-1 18:47

请教如何让cpu和gpu变频呢??可以指导一下吗??你写的太抽象了!!

formlak 发表于 2013-7-1 19:25

感谢楼主

kimzoe 发表于 2013-7-2 13:04

sm1314 发表于 2013-6-16 17:27 static/image/common/back.gif
哈哈,终于有人回复了。

lz 关于降频的这个问题还是没弄太懂!!可不可以
请教一下

huangdou0204 发表于 2013-7-2 15:08

很完美了,我都不能进安装,,,,学习学习!顶贴!

孤野空冥 发表于 2013-7-2 21:48

感觉黑苹果用处不大 玩不懂就放弃了

tomcat71526 发表于 2013-7-2 23:07

感谢楼主

yongchaohe 发表于 2013-7-3 09:40

啥时候出Y400的黑苹果方案啊

xuqingjian 发表于 2013-7-5 22:06

CPU的图貌似是无限网卡的。
不对,那就是无线网卡的图{:9_617:}

cmminmin 发表于 2013-7-10 08:23

已经装好了,但是传送门的奶牛的那个IOS,是错误的,装了半天装不上去,后来换了一个好了

harveyprince 发表于 2013-7-16 14:25

10.8.3也类似操作的吧,,,

obuil 发表于 2013-7-22 16:27

Chameleon

obuil 发表于 2013-7-22 16:27

Chameleon

zhendoqi888 发表于 2013-7-23 19:12

谢谢分享,一直解决不了电池问题,看看有没有效果

tzq123456 发表于 2013-7-29 21:20

需要修改权限 ?
页: [1] 2 3 4
查看完整版本: 联想Y550,10.8.4完美驱动,可睡眠,可显示电源,CPU,GPU自动降频