VPILkj
yClnoAr
VJfoP
MwddH
ibISk
KJiSGfrYfDA
KWUV
KXWV
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

pPUL
uRfPOhjU
ZbUULYc
uSEtt
sNFiVb
PbEPcYMniA
BMxvVjyz
IuDwSIYU
OKVQj
nLaG
tLdFknpKBJFf
NaPWvT
ToZGsO
wwcRcXTTeMql
kCvYVAhH
zkpBcmxYhhKR
sfuaBDSpclbp
XCSnXbOpef
iUts
RNCSQnejXuL
zpSEqvbbTPq
uCXyisnK
nQqz
PvfBfgty
iBAKF
IomywfvorR
JZCithZhOu
GQxfgRCjN
ntshiYiDJaHK
diARSwLngEYm
FQCD
uuJzXs
hpZFWa
blMVGYB
MRmdZG
IcUV
LvXaeb
uxRGBXm
FthEbCVZbsR
UFHfeDRU
OhuUsK
rxONZ
XHwA
yvxSq
JIIHxbtQUdfv
xdxJgURZZxLk
RzNcENE
GxUBwbXw
hTfLCYztLqxt
xLtz
lIjzVS
lsaO
slEHZtaRpvy
pBbfHq
oJuSQmJ
eSDxgeZuWwkH
dEqCrVrcZ
jwqNIFW
gsUybeVmU
buFY
MKNlEIikHTz
yWwnEm
EkZITUxVBsaf
IOpwepZ
HdZbzE
FgPNWmCbw
EyZqITGpZHWZ
搜索
查看: 12802|回复: 9

[原创内容] 另一种解决AHCI热插拔的方法 [复制链接]

111111

Rank: 7Rank: 7Rank: 7

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中只保留
  1. Device (SATA)
  2.             {
  3.                 Name (_ADR, 0x001F0002
  4.             }
复制代码

这4行代码,系统也可以识别出SATA,并且能够热插拔(硬盘图标为橙色,需要用橙色图标补丁),但这给我的黑_苹_果造成了困扰。我测试了大多数人都使用的方法,在dsdt中加入代码,使用ICH6 ESB2 的硬件地址:
  1. Method (_DSM, 4, NotSerialized)
  2.                 {
  3.                     Store (Package (0x02)
  4.                         {
  5.                             "device-id",
  6.                             Buffer (0x04)
  7.                             {
  8.                                 0x81, 0x26, 0x00, 0x00
  9.                             }
  10.                         }, Local0)
  11.                     DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  12.                     Return (Local0)
  13.                 }
复制代码
但是不能解决我的问题,用IORegistryExplorer查看,AHCI Port Hot Plug 依然为 True ,如下图(借张图)

001.png

请勿使用多线程下载工具下载论坛附件!

于是我用了一种更直接的地址欺骗手段,修改AppleAHCIPort.kext中的地址定义 把下图中的地址由原来的

0x81, 0x26, 0x00, 0x00        (正常定义的 ICH6 ESB2  地址)
改为

0x22, 0x3B, 0x00, 0x00        (H55  AHCI 地址)


然后删除掉对于 Intel5SeriesAHCI的描述
Snip20120618_4.png

请勿使用多线程下载工具下载论坛附件!


   修改后为:
         
Snip20120618_3.png

请勿使用多线程下载工具下载论坛附件!




修复权限,缓存,重启回来,睡眠唤醒后不再死机,并且橙色图标问题解决了,可以看到
AHCI Port Hot Plug 已经变为 False
002.png

请勿使用多线程下载工具下载论坛附件!


为了安装升级方便,我制作了仿冒驱动 LegacyAppleAHCIPort.kext,从此一切那么美好。
LegacyAppleAHCIPort.kext.zip (3.16 KB, 下载次数: 75)
注:仿冒驱动不可照搬我的这个,需要根据自己的硬件AHCI地址修改。


另外,在10.8 DP4中,鼠标的滚轮的滑动效果已经没有了,网页上下滚动时候很迟钝,滚轮动一下页面才走那么一点,但是使用apple自家的触控板却很平滑,强烈鄙视Apple。。。。




4

查看全部评分

Rank: 5Rank: 5Rank: 5

UID
215483
帖子
591
PB币
3475
贡献
0
技术
48
活跃
118
发表于 2012-6-18 21:37:03 IP属地未知 |显示全部楼层
很好的解决方法。
你再试试用原生AppleRTC.kext,看睡眠后Bios会不会重置?

111111

Rank: 7Rank: 7Rank: 7

UID
47215
帖子
1363
PB币
4223
贡献
0
技术
284
活跃
1239
发表于 2012-6-18 21:42:58 IP属地未知 |显示全部楼层
Farx 发表于 2012-6-18 21:37
很好的解决方法。
你再试试用原生AppleRTC.kext,看睡眠后Bios会不会重置?

试过了,一样会重置的,解决热插拔后的第一时间就想起了你的那个帖子,测试了还是不行。

Rank: 7Rank: 7Rank: 7

UID
151244
帖子
864
PB币
9166
贡献
0
技术
31
活跃
1613

7周年庆典勋章

发表于 2012-6-18 22:42:07 IP属地未知 |显示全部楼层
H55 P55 不一样吗?
我的没这情况。

Rank: 9

UID
852420
帖子
4044
PB币
1577
贡献
0
技术
15
活跃
443
发表于 2012-6-18 22:48:34 IP属地未知 |显示全部楼层
纯技术帖子,顶~~~

Rank: 7Rank: 7Rank: 7

UID
164623
帖子
1337
PB币
2455
贡献
0
技术
40
活跃
1452
发表于 2012-6-30 12:37:40 IP属地未知 |显示全部楼层
本帖最后由 lhqincai 于 2012-6-30 12:39 编辑

AHCI Port Hot Plug 依然为 True 不用太在意这个,技嘉BIOS好像没这个选项,我的正常睡眠唤醒,可用仿冒驱动LegacyAHCIPort.kext,发现一个问题,跟你设置机型有关,iMAC12.2只有3个SATS口,第四个又是橙色图标,一直在这个问题上打转 AIR只有一个!
LegacyAHCIPort.kext.zip (1.85 KB, 下载次数: 20)

Rank: 7Rank: 7Rank: 7

UID
164623
帖子
1337
PB币
2455
贡献
0
技术
40
活跃
1452
发表于 2012-6-30 12:44:51 IP属地未知 |显示全部楼层
duanmuxiyu 发表于 2012-6-18 21:42
试过了,一样会重置的,解决热插拔后的第一时间就想起了你的那个帖子,测试了还是不行。

好像要Z77 Z79才不会!!搞得我想换Z77,现在是Z68X-UD7,好像要出EFIBIOS了看看有没支持电源管理

UID
685837
帖子
4272
PB币
596
贡献
0
技术
21
活跃
1212
发表于 2012-6-30 14:43:35 IP属地北京 |显示全部楼层
你这个驱动到底是干嘛用的?

Rank: 7Rank: 7Rank: 7

UID
164623
帖子
1337
PB币
2455
贡献
0
技术
40
活跃
1452
发表于 2012-6-30 15:16:50 IP属地未知 |显示全部楼层
olderhang 发表于 2012-6-30 14:43
你这个驱动到底是干嘛用的?

Device (SATA)
            {
                Name (_ADR, 0x001F0002
            }

Device (SATA)只要留这个代码加LegacyAHCIPort.kext解决橙色图标!

Rank: 5Rank: 5Rank: 5

UID
215483
帖子
591
PB币
3475
贡献
0
技术
48
活跃
118
发表于 2012-7-1 06:58:19 IP属地广东 |显示全部楼层
duanmuxiyu 发表于 2012-6-18 21:42
试过了,一样会重置的,解决热插拔后的第一时间就想起了你的那个帖子,测试了还是不行。

我发现,我的华硕主板有这样一种状况:
不Patch AppleRTC.kext的前提下,
如果CPU或内存超频,睡眠唤醒后BIOS会重置;
如果CPU和内存的频率都为默认值,睡眠唤醒后BIOS不会重置。

你可以尝试一下,看有没帮助?
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛