- 积分
- 845
- 最后登录
- 2024-4-25
- 精华
- 0
- 阅读权限
- 40
- 主题
- 79
- UID
- 47215
- 帖子
- 1363
- PB币
- 4223
- 威望
- 50
- 贡献
- 0
- 技术
- 284
- 活跃
- 1245
111111
- UID
- 47215
- 帖子
- 1363
- PB币
- 4223
- 贡献
- 0
- 技术
- 284
- 活跃
- 1245
|
本帖最后由 duanmuxiyu 于 2012-6-19 09:36 编辑
安装上DP4后,发现睡眠唤醒后会死机,具体问题见我这个帖子:
https://bbs.pcbeta.com/viewthread-1055824-1-1.html
后来发现这个死机问题是10.8修改了AHCI 驱动所导致的 ,详细情况见这个帖子的讨论:
https://bbs.pcbeta.com/viewthread-1056875-1-4.html
于是我替换了10.7.4 里面的AppleAHCIPort.kext 和IOAHCIFamily.kext 两个驱动,问题得到解决。在patch了AppleRTC .kext后,睡眠唤醒正常,手动、自动睡眠均正常。
但是我还不满足使用10.7.4的两个旧版本的驱动,于是我想到的DSDT内的硬件地址欺骗的方法。电脑配置见签名,H55芯片组,AHCI地址是 0x22, 0x3B ,这个地址在AppleAHCIPort.kext中是有定义的,所以即使dsdt中只保留
- Device (SATA)
- {
- Name (_ADR, 0x001F0002
- }
复制代码
这4行代码,系统也可以识别出SATA,并且能够热插拔(硬盘图标为橙色,需要用橙色图标补丁),但这给我的黑_苹_果造成了困扰。我测试了大多数人都使用的方法,在dsdt中加入代码,使用ICH6 ESB2 的硬件地址:
- Method (_DSM, 4, NotSerialized)
- {
- Store (Package (0x02)
- {
- "device-id",
- Buffer (0x04)
- {
- 0x81, 0x26, 0x00, 0x00
- }
- }, Local0)
- DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
- Return (Local0)
- }
复制代码 但是不能解决我的问题,用IORegistryExplorer查看,AHCI Port Hot Plug 依然为 True ,如下图(借张图)
于是我用了一种更直接的地址欺骗手段,修改AppleAHCIPort.kext中的地址定义 把下图中的地址由原来的
0x81, 0x26, 0x00, 0x00 (正常定义的 ICH6 ESB2 地址)
改为
0x22, 0x3B, 0x00, 0x00 (H55 AHCI 地址)
然后删除掉对于 Intel5SeriesAHCI的描述
修改后为:
修复权限,缓存,重启回来,睡眠唤醒后不再死机,并且橙色图标问题解决了,可以看到
AHCI Port Hot Plug 已经变为 False
为了安装升级方便,我制作了仿冒驱动 LegacyAppleAHCIPort.kext,从此一切那么美好。
LegacyAppleAHCIPort.kext.zip
(3.16 KB, 下载次数: 75)
注:仿冒驱动不可照搬我的这个,需要根据自己的硬件AHCI地址修改。
另外,在10.8 DP4中,鼠标的滚轮的滑动效果已经没有了,网页上下滚动时候很迟钝,滚轮动一下页面才走那么一点,但是使用apple自家的触控板却很平滑,强烈鄙视Apple。。。。
|
-
4
查看全部评分
-
|