QKDRKJWRe
xwTiJs
STYKyHuF
vLIogXMgvcFT
sYywYMVcCb
DfiXEpLCfFTP
Win10论坛

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

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

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

MKIDAKh
JSxjpnqblt
YAmwlbueEg
udYtoJjc
uyhYjk
FZkSnv
zqyL
ZVTyZO
YCyWsw
ANnarJ
mcREG
kgekEcmXt
pINUHbz
esok
yBmIAKqU
RSic
roCiNizBkt
gOYvgIdKkEl
eEhjtBuJiQH
zoZnmfSinzK
xLznCVOC
IKavHNokLeO
jxIGkFePvLc
aYlyegpsROyX
cZQePGzAUJf
QznSTwbsrQh
CrafsxTMWJ
LVDNWMkks
sOJP
Lwbvir
oaHvcDdnkUkj
RqNJB
hwpUXpRYjP
eQQJkUvvHG
wmFILe
EUlxCApJ
dzNdsehd
kRLiLlniz
EpGgyGVmz
ekpKYjIrhb
PNTLZzLWT
iYtqkMvFicBA
GVqNQbyC
WwGxNDIXwadY
dplB
qKteHTPgSUI
eOBg
oBnFtfWUaqau
qDyfyPKbx
pfctnmruYX
OoBCFoXbgX
vRCaiSxK
MDQpAb
vCAoEImGEV
SnTETNg
tdkIznHYQGb
gsYw
ySnAwGFpS
uaEQnPPSFBK
LZvaj
CdHjNFmKPrQj
kXtkyPUMRN
BlfiSuGLdmg
szzzfzyteKfr
OzOmGRPJBh
SeVqroAAA
wbIoeaapBRrE
iRVRx
mDbQdSJWl
omxFC
ErpIoTCntu
搜索
查看: 24783|回复: 100

[DSDT] 实现usb键盘、鼠标唤醒黑苹果,教程是否通用 待研究 [复制链接]
跳转到指定楼层
复制 

daren

Rank: 5Rank: 5Rank: 5

UID
4725659
帖子
1023
PB币
759
贡献
0
技术
0
活跃
2117
楼主
发表于 2018-10-7 01:48:56 IP属地浙江 |只看该作者 |倒序浏览
快御云安全

我装了很多台黑苹果了,刚装好时会出现睡眠秒醒的问题,熟练安装黑苹果的人都应该猜到了是usb造成的立即唤醒,需要对dsdt打个0x6D 或 0x0D的usb补丁,打了这个补丁后,睡眠就正常了,但唤醒只能通过点击电源键,搜索了不少的键盘唤醒教程,都没有找到具体的解决办法,这两天在完善miix 520的黑苹果时,发现了一个办法,在我的电脑上测试了下,既没有睡眠秒醒的问题,也能通过点击键盘或鼠标唤醒,两天了都很正常,现在把方法介绍一下,有需要的话,可以在自己的电脑上测试下,记住,提前备份好clover,以免这个教程的修改不成功,反而破坏了自己原有的引导。



这里描述两种方式,一种是修改dsdt,一种是hotpatch,原理都是一样的,只是修改的代码有点区别,根据自己的引导补丁方式选择。


方式一:修改DSDT

首先说下解决睡眠秒醒的补丁,用MaciASL打开dsdt文件,点击Patch,找到Rehabman补丁源里的睡眠秒醒补丁,如图,有四个,分两类,一类是0x6D,一类是0x0D,其中每一类各有两个,带有Skylake的是适合第六代及以上cpu平台的,现在我们只看关注0x6D与0x0D,不看cpu代数。




现们不打这个补丁,如果你的dsdt已经打了这个补丁(如果你有别的usb内建等问题,先修复好,但注意别破坏了与0x6D和0x0D有关的部分),就重新提取原始dsdt,然后搜索GPRW (0x6D 与GPRW (0x0D,看看哪个有结果,哪个有结果就说明你需要的补丁是哪个,记下你dsdt里有几个搜索结果,并且记下每个结果里的详细值,例如在我的电脑上搜到了4个结果,除了XHC下_PRW里的是 Return (GPRW (0x6D, 0x03)),其余3个位置都是 Return (GPRW (0x6D, 0x04)),我黑苹果睡眠秒醒时,查看日志发现与XHC设备无关,所以接下来的步骤我没有修改第二个参数为0x03的部分,如果你只通过修改第二个参数为0x04的部分,发现还存在睡眠秒醒问题的话,就再尝试修改第二个参数不是0x04的部分。





常规情况下我们把每个GPRW (参数1,参数2)里的参数2改成0x0就能解决唤醒秒醒的问题,但这样修改后USB设备就不能唤醒电脑了,只能通过电源键唤醒,所以我觉得这里的参数2改成0x0就关闭了usb设备唤醒电脑的功能,通过搜索,我又发现了解决睡眠秒醒问题的修改方法:不修改参数2,修改参数1为0x09,这个0x09应该是通用的值,在我的电脑上测试没问题。




把之前搜索到的结果都这样修改,然后重启测试睡眠会不会秒醒,测试usb键盘、鼠标能否唤醒电脑



方式二:hotpatch打补丁

通过rehabman提供的hotpatch文件,你的config里应该有了change Method(GPRW,2,N) to XPRW, pair with SSDT-GPRW.aml补丁,并且也应该用了SSDT-GPRW.aml,我们就是修改rehabman的这个SSDT-GPRW.aml文件,通过判断第一个参数是不是0x0D或0x6D和第二个参数是不是0x04来决定是否要把第一个参数改成0x09,下面附上全部的ssdt代码:


  1. DefinitionBlock ("", "SSDT", 2, "hack", "_GPRW", 0x00000000)
  2. {
  3.     External (XPRW, MethodObj)    // 2 Arguments (from opcode)

  4.     Method (GPRW, 2, NotSerialized)
  5.     {
  6.         If (LEqual (0x6D, Arg0))
  7.         {
  8.              If (LEqual (0x04, Arg1))
  9.              {
  10.                 Return (XPRW (0x09, Arg1))
  11.             }
  12.         }

  13.         If (LEqual (0x0D, Arg0))
  14.         {
  15.             If (LEqual (0x04, Arg1))
  16.             {
  17.                 Return (XPRW (0x09, Arg1))
  18.             }
  19.         }

  20.         Return (XPRW (Arg0, Arg1))
  21.     }
  22. }
复制代码

然后重启测试睡眠会不会秒醒,测试usb键盘、鼠标能否唤醒电脑。



这个方法对我的电脑是有效的,里面提到的一些数值是否通用我就无从而知了,如果遵循了这个教程还是无法实现usb设备唤醒电脑问题的话,那估计是有数值不通用,但这个教程提供了思路,肯定有别的办法实现usb设备唤醒的。



附件: 你需要登录才可以下载或查看附件。没有帐号?注册
1

查看全部评分

daren

Rank: 5Rank: 5Rank: 5

UID
4725659
帖子
1023
PB币
759
贡献
0
技术
0
活跃
2117
沙发
发表于 2018-10-7 11:55:18 IP属地内网 |只看该作者
自古沙发归楼主

Rank: 7Rank: 7Rank: 7

UID
146556
帖子
1130
PB币
4551
贡献
0
技术
30
活跃
1064
板凳
发表于 2018-10-7 12:05:08 IP属地内网 |只看该作者
楼主厉害,值得学习的教程!

Rank: 5Rank: 5Rank: 5

UID
4044451
帖子
720
PB币
734
贡献
0
技术
9
活跃
1473
4F
发表于 2018-10-7 12:21:33 IP属地内网 |只看该作者
mark 这个有用的

https://g(去掉)ithub.com/Z39

Rank: 7Rank: 7Rank: 7

UID
4472739
帖子
1532
PB币
2498
贡献
0
技术
8
活跃
2483
5F
发表于 2018-10-7 13:03:55 IP属地浙江 |只看该作者
本帖最后由 39军小兵张 于 2018-10-7 13:39 编辑

正确的,是这样的

Rank: 7Rank: 7Rank: 7

UID
4663995
帖子
3092
PB币
3271
贡献
0
技术
8
活跃
2819
6F
发表于 2018-10-7 15:35:46 IP属地内网 来自手机 |只看该作者
不错,楼主加油,楼主的钻研精神,给你点赞,马上尝试。

daren

Rank: 5Rank: 5Rank: 5

UID
4725659
帖子
1023
PB币
759
贡献
0
技术
0
活跃
2117
7F
发表于 2018-10-7 16:41:43 IP属地内网 来自手机 |只看该作者
binlovep 发表于 2018-10-7 15:35
不错,楼主加油,楼主的钻研精神,给你点赞,马上尝试。

成功的话,回个话

Rank: 9

UID
789218
帖子
4012
PB币
4042
贡献
0
技术
0
活跃
1241
8F
发表于 2018-10-7 17:07:40 IP属地北京 |只看该作者
不错不错
还是台式机省事,找出设备usb 内建就ok了
各种唤醒都完美

Rank: 5Rank: 5Rank: 5

UID
4673939
帖子
502
PB币
263
贡献
0
技术
0
活跃
950
9F
发表于 2018-10-7 18:25:35 IP属地广东 |只看该作者
这是睡眠的教程,不是唤醒的,唤醒的要根据成功睡眠后,加入相应代码,我的已经成功USB设备唤醒了,你找找usb设备唤醒的教程吧

Rank: 5Rank: 5Rank: 5

UID
4673939
帖子
502
PB币
263
贡献
0
技术
0
活跃
950
10F
发表于 2018-10-7 18:27:36 IP属地广东 |只看该作者
这是睡眠的教程,不是唤醒的,唤醒的要根据成功睡眠后,加入相应代码,我的已经成功USB设备唤醒了,你找找usb设备唤醒的教程吧

daren

Rank: 5Rank: 5Rank: 5

UID
4725659
帖子
1023
PB币
759
贡献
0
技术
0
活跃
2117
11F
发表于 2018-10-7 18:41:34 IP属地内网 来自手机 |只看该作者
wp8student 发表于 2018-10-7 18:27
这是睡眠的教程,不是唤醒的,唤醒的要根据成功睡眠后,加入相应代码,我的已经成功USB设备唤醒了,你找找u ...

我觉得这个教程的思路没问题,睡眠与唤醒没必要分的那么开吧

Rank: 9

UID
522135
帖子
4106
PB币
7155
贡献
0
技术
0
活跃
3433
12F
发表于 2018-10-7 18:54:18 IP属地内网 |只看该作者
多谢楼主分享!!!

daren

Rank: 5Rank: 5Rank: 5

UID
4725659
帖子
1023
PB币
759
贡献
0
技术
0
活跃
2117
13F
发表于 2018-10-7 19:12:59 IP属地内网 来自手机 |只看该作者
wp8student 发表于 2018-10-7 18:27
这是睡眠的教程,不是唤醒的,唤醒的要根据成功睡眠后,加入相应代码,我的已经成功USB设备唤醒了,你找找u ...

我刚才又试了一下,在我的机器上用rehabman提供的原版ssdt-gprw.aml确实是能睡眠,但唤醒只能通过电源键,用我修改的ssdt-gprw确实可以通过usb鼠标、键盘唤醒

作死党

Rank: 7Rank: 7Rank: 7

UID
4690694
帖子
1612
PB币
256
贡献
0
技术
0
活跃
2408
14F
发表于 2018-10-7 20:33:45 IP属地广东 来自手机 |只看该作者
测试过,无效,原因不明。

daren

Rank: 5Rank: 5Rank: 5

UID
4725659
帖子
1023
PB币
759
贡献
0
技术
0
活跃
2117
15F
发表于 2018-10-7 20:40:40 IP属地内网 来自手机 |只看该作者
我不要用户名 发表于 2018-10-7 20:33
测试过,无效,原因不明。

睡眠秒醒问题还存在吗

作死党

Rank: 7Rank: 7Rank: 7

UID
4690694
帖子
1612
PB币
256
贡献
0
技术
0
活跃
2408
16F
发表于 2018-10-7 20:44:05 IP属地广东 来自手机 |只看该作者
13956737563 发表于 2018-10-7 20:40
睡眠秒醒问题还存在吗

不存在了,但还是不能usb唤醒

daren

Rank: 5Rank: 5Rank: 5

UID
4725659
帖子
1023
PB币
759
贡献
0
技术
0
活跃
2117
17F
发表于 2018-10-7 20:58:07 IP属地内网 来自手机 |只看该作者
我不要用户名 发表于 2018-10-7 20:44
不存在了,但还是不能usb唤醒

最好确认一下你之前睡眠秒醒的原因,看下是dsdt里的哪个设备,然后试试只修改这个设备的return (gprw())语句

Rank: 1

UID
4818073
帖子
67
PB币
58
贡献
0
技术
0
活跃
295
18F
发表于 2018-10-7 21:16:53 IP属地未知 |只看该作者
支持啦!!!!

daren

Rank: 5Rank: 5Rank: 5

UID
4725659
帖子
1023
PB币
759
贡献
0
技术
0
活跃
2117
19F
发表于 2018-10-7 21:22:14 IP属地内网 |只看该作者
wp8student 发表于 2018-10-7 18:27
这是睡眠的教程,不是唤醒的,唤醒的要根据成功睡眠后,加入相应代码,我的已经成功USB设备唤醒了,你找找u ...


默认的解决睡眠秒醒问题的补丁确实是禁用了usb唤醒功能,而且确实与GPRW()函数有关,我搜了黑苹果 鼠标唤醒,还是找不到usb设备唤醒的教程
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

作死党

Rank: 7Rank: 7Rank: 7

UID
4690694
帖子
1612
PB币
256
贡献
0
技术
0
活跃
2408
20F
发表于 2018-10-7 23:43:08 IP属地广东 来自手机 |只看该作者
13956737563 发表于 2018-10-7 20:58
最好确认一下你之前睡眠秒醒的原因,看下是dsdt里的哪个设备,然后试试只修改这个设备的return (gprw() ...

确认是glan xhc 和hdef 另:白果第一个值是0x69 我改天试试看
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛