- 积分
- 845
- 最后登录
- 2024-3-28
- 精华
- 0
- 阅读权限
- 40
- 主题
- 79
- UID
- 47215
- 帖子
- 1363
- PB币
- 4223
- 威望
- 50
- 贡献
- 0
- 技术
- 284
- 活跃
- 1239
111111
- UID
- 47215
- 帖子
- 1363
- PB币
- 4223
- 贡献
- 0
- 技术
- 284
- 活跃
- 1239
|
发表于 2012-6-18 20:41:20
IP属地未知
|显示全部楼层
本帖最后由 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
查看全部评分
-
|