ZpJYoCi
mhOVLaFGJ
GGoBRntBa
kexpzVraLU
MTdmVmJSxTBN
pjTSuftlfurD
ehOOkxxKbQbT
sVIKv
RwGVqP
ABJxVppw
Win10论坛

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

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

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

afWTbTzC
DxZjGMoVUy
XzMM
uYdmITh
kJfKrvQlF
NFgOcDJIQ
JPWJ
hXMktV
qWRt
TaTdxUVGU
clwVheilWVQM
vAcgsillH
VjANVC
eqfLrFD
QeJZtg
BJmRksOo
xNwoiLUWcn
CRRlVLn
DicHqYu
fAjECKRIjYP
lBAz
JQTCO
UFsVWmqiR
nJcoduI
WsqRLUapD
QPpfIfQfH
HhHMvDNDjEax
sofvkQPJOaq
oMzolmNu
XkYlci
BrvMB
rNILhUsdOmy
NsRVgMuJMpe
CeXLftTifj
jGyS
lmjrnfBk
xlRdrQesErg
geLsHFWc
gnDFngFIawYq
TWxZ
nBibphqTbwD
QSYAB
Aufsxezpo
tnguH
mvYR
fIqD
xSMwEZxPhoUs
oscgL
XzoR
MwPpN
fWsBpnGi
miYenXgSx
ukHkGPJJTi
rAdjmTLWBo
teBQ
obaCROSC
iFWqcX
KuRIrQO
IMcjYC
yaBCodkbbXN
JAxPq
FKcomrZ
avCTGl
VfQmLJzvz
TtEqwFiKfa
qoMTxJdrCgY
搜索
楼主: neroxps

[原创内容] 【分享】我的 Hotpatch 学习笔记     [复制链接]
跳转到指定楼层
复制 

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
621
贡献
0
技术
0
活跃
601
21F
发表于 2017-3-11 15:15:11 IP属地广东 |只看该作者
快御云安全
witcherhope 发表于 2017-3-11 13:38
https://github.com/RehabMan/OS-X-Clover-Laptop-Config/tree/master/hotpatch这里提供的dsl是直接编译成a ...

RM的hotpatch并不是完全通用,需要结合自己本机的dsdt来修改

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
621
贡献
0
技术
0
活跃
601
22F
发表于 2017-3-11 15:19:38 IP属地广东 |只看该作者
gujiangjiang 发表于 2017-3-11 14:07
电池还是不行。。。我的EC下面好乱,跟你的不一样,尤其是偏移量那里,完全看不懂。。。

我是参考rm写的,编译后你再打开看看,就懂了。

渐行渐远

UID
386915
帖子
10972
PB币
17905
贡献
0
技术
289
活跃
1802
23F
发表于 2017-3-11 15:33:43 IP属地德国 |只看该作者
嗯,技术性文章,不加分不行

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
621
贡献
0
技术
0
活跃
601
24F
发表于 2017-3-11 15:37:40 IP属地广东 |只看该作者
gujiangjiang 发表于 2017-3-11 14:07
电池还是不行。。。我的EC下面好乱,跟你的不一样,尤其是偏移量那里,完全看不懂。。。

请问是什么电脑?什么主板芯片?我是华硕 VM510L 主板芯片9cc3

Rank: 1

UID
3029714
帖子
46
PB币
0
贡献
0
技术
0
活跃
66
25F
发表于 2017-3-11 15:53:30 IP属地上海 |只看该作者
感谢提供说明

Rank: 2Rank: 2

UID
488925
帖子
427
PB币
450
贡献
0
技术
5
活跃
1329
26F
发表于 2017-3-11 16:26:51 IP属地湖北 |只看该作者
佩服楼主的学习能力,战略性标记以备不需!

无尽的折腾才是生活中的乐趣

Rank: 11Rank: 11Rank: 11

UID
2043294
帖子
5307
PB币
1041
贡献
0
技术
156
活跃
3184

7周年庆典勋章 8周年庆典勋章 我是大学生!

27F
发表于 2017-3-11 20:28:28 IP属地江苏 |只看该作者
neroxps 发表于 2017-3-11 15:37
请问是什么电脑?什么主板芯片?我是华硕 VM510L 主板芯片9cc3

因为我的XPS15用的就是Hotpatch,所以一直想给我的老惠普用上hotpatch,其他所有的都不是什么大问题,就是这个电池驱动麻烦点。

https://github.com/RehabMan/Laptop-DSDT-Patch/blob/master/battery/battery_HP-G6-2221ss.txt
我是HM65芯片组。这个是我的电池补丁,比你的多好多,虽然最后用diff比较差异不是很多,但是因为貌似结构跟你的不同,所以道便宜量那里我就傻眼了,完全不知道咋入手了

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
621
贡献
0
技术
0
活跃
601
28F
发表于 2017-3-11 22:15:31 IP属地广东 |只看该作者
gujiangjiang 发表于 2017-3-11 20:28
因为我的XPS15用的就是Hotpatch,所以一直想给我的老惠普用上hotpatch,其他所有的都不是什么大问题,就是 ...

你可以看我电池部分的整个思路和过程,再参考 RM 的 Hotpatch。

其实就分为几步:
1.找到所有需要拆分的变量。
2.重新加入需要拆分的变量,语法和原先的一样,无需拆分的不用写,但是在同一个偏移量下需要留下空的偏移。

例如:
  1.         Field (ECR2, ByteAcc, NoLock, Preserve)
  2.         {
  3.             Offset (0x87),
  4.             ,8,//LB1,    8,
  5.             ,8,//LB2,    8,
  6.             BDC0, 8, BDC1, 8,
  7.             Offset (0x8D),
  8.             BFC0, 8, BFC1, 8,
  9.             RTE0, 8, RTE1, 8,
  10.             //BTC,    1,
  11.             Offset (0x92),
  12.             BME0, 8, BME1, 8,
  13.             ,8,//BDN,    8,
  14.             BDV0, 8, BDV1, 8,
  15.             BCX0, 8, BCX1, 8,
  16.             //BST,    4,
  17.             Offset (0x9B),
  18.             ATE0, 8, ATE1, 8,
  19.             BPR0, 8, BPR1, 8,
  20.             BCR0, 8, BCR1, 8,
  21.             BRC0, 8, BRC1, 8,
  22.             BCC0, 8, BCC1, 8,
  23.             BPV0, 8, BPV1, 8,
  24.             BCA0, 8, BCA1, 8,
  25.             BCB0, 8, BCB1, 8,
  26.             BCP0, 8, BCP1, 8,
  27.             ,16,//BCW,    16,
  28.             ATF0, 8, ATF1, 8,
  29.             ,16,//BCL,    16,
  30.             AXC0, 8, AXC1, 8,
  31.             ,8,//BCG1,   8,
  32.             ,1,//BT1I,   1,
  33.             ,1,//BT2I,   1,
  34.             ,2,//,   2,
  35.             ,4,//BATN,   4,
  36.             BST0, 8, BST1, 8,
  37.             //...
  38.             Offset (0xC9),
  39.             BSN0, 8, BSN1, 8,
  40.             BDA0, 8, BDA1, 8,
  41.             //BMF,    8,
  42.             //Offset (0xCF),
  43.             //CTLB,   8,
  44.             //Offset (0xD1),
  45.             //BTY,    8,
  46.             //Offset (0xD5),
  47.             //MFAC,   8,//d5
  48.             //CFAN,   8,//d6
  49.             //PFAN,   8,//d7
  50.             //OCPS,   8,//d8
  51.             //OCPR,   8,//d9
  52.             //OCPE,   8,//da
  53.             //TMP1,   8,//db
  54.             //TMP2,   8,//dc
  55.             //NABT,   4,//dd
  56.             //BCM,    4,
  57.             //CCBQ,   16,//de
  58.                 Offset(0xe0),
  59.             CBT0, 8, CBT1, 8,
  60.             //...
  61.         }
复制代码
整个就是 RM 的例子,你看第一行的
Offset (0x87),
,8,//LB1,    8,
,8,//LB2,    8,
BDC0, 8, BDC1, 8,

BDC0和 BDC1是他需要将原先的拆分出来的,而这个偏移量  Offset (0x87), 下面,也就是BDC0, 8, BDC1, 8, 的上面原先是存在两个 8位(/LB1,    8,LB2,    8,) 无需拆分的变量,故此你就留空,写成 ,8, 编译之后,你直接打开 aml 文件,你会发现,这些空的  ,8,不见了,取而代之的是:
  1. Offset (0x87),
  2. Offset (0x88),
  3. Offset (0x89),
  4. BDC0,   8,
  5. BDC1,   8,
复制代码
明白了吗?你留空了名称,只写8的话,编译器会自动帮你计算偏移量。

其实你也可以直接自己计算偏移量,重写整个 Field。

这里是我参考 RM 的例子

https://raw.githubusercontent.com/RehabMan/HP-ProBook-4x30s-DSDT-Patch/master/hotpatch/SSDT-BATT.dsl

https://raw.githubusercontent.com/RehabMan/HP-ProBook-4x30s-DSDT-Patch/master/patches/06_Battery.txt

最后,其实如果能 DSDT Patch 的话,建议就无需使用 Hotpatch,因为直接 Patch 比 Hotpatch 更高效。

请教版主 口袋妖怪原话:“AppleACPIPlatform 在读取庞大的 DSDT 之外,又要载入一堆 SSDTs,载入以后 又要将某些部分 甚至说全部的code 合并,然后某些 _DSM 方法 转换成 efi string 供一些API读取,这样太慢了,但好处就是 不用碰DSDT 避免因BIOS改动等等导致DSDT变化。”

http://www.insanelymac.com/forum ... is-ready/?p=2358593

上面链接是她与 RM 讨论 Hotpatch 的问题。

无尽的折腾才是生活中的乐趣

Rank: 11Rank: 11Rank: 11

UID
2043294
帖子
5307
PB币
1041
贡献
0
技术
156
活跃
3184

7周年庆典勋章 8周年庆典勋章 我是大学生!

29F
发表于 2017-3-13 19:35:53 IP属地江苏 |只看该作者
neroxps 发表于 2017-3-11 22:15
你可以看我电池部分的整个思路和过程,再参考 RM 的 Hotpatch。

其实就分为几步:

口袋的话就听听就行了,别太当真。

抱歉回复晚了,我的第一个拆分的变量前面缺少偏移量,所以我都不知道怎么写,其他的可以写,我先试试,有问题再询问。

PS:你在群里么。。。。

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
621
贡献
0
技术
0
活跃
601
30F
发表于 2017-3-13 19:44:59 IP属地广东 |只看该作者
gujiangjiang 发表于 2017-3-13 19:35
口袋的话就听听就行了,别太当真。

抱歉回复晚了,我的第一个拆分的变量前面缺少偏移量,所以我都不知 ...

其实也是一定道理,因为我发现同一型号的笔记本,DSDT 和我也一样的人,但是这个电池补丁却出现了找不到 SMBX 这个命名空间,导致电池补丁失败,但是直接对他的 DSDT Patch 的是正常的,其中存在的问题我还没摸清,也有可能是 bios 处理的问题(他的 bios 是206而我是最新的506)

我现在有想法可以调试,但是毕竟不是我的电脑,也比较难搞。

无尽的折腾才是生活中的乐趣

Rank: 11Rank: 11Rank: 11

UID
2043294
帖子
5307
PB币
1041
贡献
0
技术
156
活跃
3184

7周年庆典勋章 8周年庆典勋章 我是大学生!

31F
发表于 2017-3-13 19:47:29 IP属地江苏 |只看该作者
neroxps 发表于 2017-3-13 19:44
其实也是一定道理,因为我发现同一型号的笔记本,DSDT 和我也一样的人,但是这个电池补丁却出现了找不到  ...

是BIOS的问题,我的XPS之前因为升级了BIOS导致电脑死活无法启动,DSDT删了都进不去,后来改成HotPatch之后就没问题了。但是随着BIOS的更新,原生DSDT还是会有少许修改的,所以Hotpatch也不是一劳永逸,但是比修改DSDT好得多,至于口袋说的什么效率什么的,你就当笑话听听就行了,别当真。

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
621
贡献
0
技术
0
活跃
601
32F
发表于 2017-3-13 19:59:23 IP属地广东 |只看该作者
gujiangjiang 发表于 2017-3-13 19:47
是BIOS的问题,我的XPS之前因为升级了BIOS导致电脑死活无法启动,DSDT删了都进不去,后来改成HotPatch之后 ...

额 对于我这种小白来说,能对我提点一下也是一种幸运。

当然有没有道理还是需要验证。

UID
4568967
帖子
14232
PB币
2272
贡献
0
技术
94
活跃
3073

巡察使 十一周年

33F
发表于 2017-3-13 20:33:31 IP属地辽宁 |只看该作者
Yup it's perhaps actually just a joke. :-)

我最早是从 RevoGirl [R.I.P.] 的文中看到精简 DSDT 的动作。(抱歉也许之前 MasterChief 也有过类似的东西不过我找不到了...)
  1. Factory AML code:

  2. 37 KB on disk (33,709 bytes) DSDT.aml
  3. 4 KB on disk ( 228 bytes) SSDT_CST.aml
  4. 4 KB on disk ( 1,780 bytes) SSDT_IST.aml
  5. 4 KB on disk ( 470 bytes) SSDT.aml
  6. =============================
  7. 36,187 bytes

  8. The new / stripped AML code:

  9. 8 KB on disk (7,403 bytes) dsdt.aml
  10. 4 KB on disk ( 825 bytes) ssdt_pr.aml
  11. 4 KB on disk (1,074 bytes) ssdt_usb.aml
  12. ===========================
  13. 9,302 bytes

  14. And that gives us: 36,187 - 9,302 = 26,885 bytes... less bytes to load and compute by ACPIPlatform.kext
复制代码
It looks like this.

是的,其实效率什么的只是个概念,就像我昨天和楼主说的关于 'e9 05 00 00 00' 这个 jmp $0x5 到底是 NOP 还是 改为 jmp $0x0 一样,显然前者效率更高,但事实上,谁能感知得到呢?
不过我觉得,这些东西还是尽量从简为好。

点评

neroxps  口袋最后那句话的意思就是,理论上是减轻了电脑的计算负担,但是这未必能够察觉的出来。这个只是每个人喜欢而已,各取所需。  发表于 2017-3-13 21:47 IP属地广东

Rank: 5Rank: 5Rank: 5

UID
330656
帖子
1103
PB币
988
贡献
0
技术
0
活跃
1763

8周年庆典勋章

34F
发表于 2017-3-13 20:59:24 IP属地山东 |只看该作者

技术贴,学习中

Rank: 7Rank: 7Rank: 7

UID
4752523
帖子
3191
PB币
2752
贡献
0
技术
0
活跃
2200
35F
发表于 2017-3-13 21:43:09 IP属地广东 |只看该作者
收藏起来学习

Rank: 5Rank: 5Rank: 5

UID
3087159
帖子
830
PB币
1765
贡献
0
技术
0
活跃
1279
36F
发表于 2017-3-20 19:33:16 IP属地湖南 |只看该作者
我想问一下楼主 ,正常情况下,一般 DSDT需要打哪些补丁

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
621
贡献
0
技术
0
活跃
601
37F
发表于 2017-3-20 20:36:09 IP属地广东 |只看该作者
[quote]jzhjm 发表于 2017-3-20 19:33 http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
621
贡献
0
技术
0
活跃
601
38F
发表于 2017-3-20 20:37:38 IP属地广东 |只看该作者
jzhjm 发表于 2017-3-20 19:33
我想问一下楼主 ,正常情况下,一般 DSDT需要打哪些补丁

郁闷 编辑器有毒

https://bbs.pcbeta.com/viewthread-1571455-1-1.html

https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/

Rank: 5Rank: 5Rank: 5

UID
3087159
帖子
830
PB币
1765
贡献
0
技术
0
活跃
1279
39F
发表于 2017-3-20 20:45:49 IP属地湖南 |只看该作者
neroxps 发表于 2017-3-20 20:36
[quote]jzhjm 发表于 2017-3-20 19:33 http://www.tonymacx86.com/yosemite-laptop-support/152573-guide-p ...

THX,虽然一直没太明白

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
621
贡献
0
技术
0
活跃
601
40F
发表于 2017-3-20 20:48:44 IP属地广东 |只看该作者
jzhjm 发表于 2017-3-20 20:45
THX,虽然一直没太明白

那个不全,论坛估计肚子又饿了,吃了我很多字

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