Win10论坛

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

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

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

搜索
楼主: neroxps

[原创内容] 【分享】我的 Hotpatch 学习笔记     [复制链接]

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
599
贡献
0
技术
0
活跃
558
发表于 2017-3-11 15:15:11 |显示全部楼层
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币
599
贡献
0
技术
0
活跃
558
发表于 2017-3-11 15:19:38 |显示全部楼层
gujiangjiang 发表于 2017-3-11 14:07
电池还是不行。。。我的EC下面好乱,跟你的不一样,尤其是偏移量那里,完全看不懂。。。

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

渐行渐远

UID
386915
帖子
10972
PB币
18591
贡献
0
技术
289
活跃
965
发表于 2017-3-11 15:33:43 |显示全部楼层
嗯,技术性文章,不加分不行

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
599
贡献
0
技术
0
活跃
558
发表于 2017-3-11 15:37:40 |显示全部楼层
gujiangjiang 发表于 2017-3-11 14:07
电池还是不行。。。我的EC下面好乱,跟你的不一样,尤其是偏移量那里,完全看不懂。。。

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

Rank: 1

UID
3029714
帖子
41
PB币
2
贡献
0
技术
0
活跃
42
发表于 2017-3-11 15:53:30 |显示全部楼层
感谢提供说明

Rank: 2Rank: 2

UID
488925
帖子
416
PB币
450
贡献
0
技术
5
活跃
1079
发表于 2017-3-11 16:26:51 |显示全部楼层
佩服楼主的学习能力,战略性标记以备不需!

苦逼的医学生。。。考试月勿扰,扣扣一概不回!

Rank: 11Rank: 11Rank: 11

UID
2043294
帖子
4556
PB币
319
贡献
0
技术
151
活跃
2025

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

发表于 2017-3-11 20:28:28 |显示全部楼层
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币
599
贡献
0
技术
0
活跃
558
发表于 2017-3-11 22:15:31 |显示全部楼层
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
帖子
4556
PB币
319
贡献
0
技术
151
活跃
2025

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

发表于 2017-3-13 19:35:53 |显示全部楼层
neroxps 发表于 2017-3-11 22:15
你可以看我电池部分的整个思路和过程,再参考 RM 的 Hotpatch。

其实就分为几步:

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

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

PS:你在群里么。。。。

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
599
贡献
0
技术
0
活跃
558
发表于 2017-3-13 19:44:59 |显示全部楼层
gujiangjiang 发表于 2017-3-13 19:35
口袋的话就听听就行了,别太当真。

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

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

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

苦逼的医学生。。。考试月勿扰,扣扣一概不回!

Rank: 11Rank: 11Rank: 11

UID
2043294
帖子
4556
PB币
319
贡献
0
技术
151
活跃
2025

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

发表于 2017-3-13 19:47:29 |显示全部楼层
neroxps 发表于 2017-3-13 19:44
其实也是一定道理,因为我发现同一型号的笔记本,DSDT 和我也一样的人,但是这个电池补丁却出现了找不到  ...

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

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
599
贡献
0
技术
0
活跃
558
发表于 2017-3-13 19:59:23 |显示全部楼层
gujiangjiang 发表于 2017-3-13 19:47
是BIOS的问题,我的XPS之前因为升级了BIOS导致电脑死活无法启动,DSDT删了都进不去,后来改成HotPatch之后 ...

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

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

Vanilla.

UID
4568967
帖子
13702
PB币
33049
贡献
0
技术
94
活跃
2664

巡察使 十一周年

发表于 2017-3-13 20:33:31 |显示全部楼层
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

Rank: 5Rank: 5Rank: 5

UID
330656
帖子
1020
PB币
1255
贡献
0
技术
0
活跃
872

8周年庆典勋章

发表于 2017-3-13 20:59:24 |显示全部楼层

技术贴,学习中

Rank: 7Rank: 7Rank: 7

UID
4752523
帖子
2622
PB币
2140
贡献
0
技术
0
活跃
1277
发表于 2017-3-13 21:43:09 |显示全部楼层
收藏起来学习

Rank: 5Rank: 5Rank: 5

UID
3087159
帖子
727
PB币
1340
贡献
0
技术
0
活跃
960
发表于 2017-3-20 19:33:16 |显示全部楼层
我想问一下楼主 ,正常情况下,一般 DSDT需要打哪些补丁

Rank: 5Rank: 5Rank: 5

UID
633916
帖子
538
PB币
599
贡献
0
技术
0
活跃
558
发表于 2017-3-20 20:36:09 |显示全部楼层
[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币
599
贡献
0
技术
0
活跃
558
发表于 2017-3-20 20:37:38 |显示全部楼层
jzhjm 发表于 2017-3-20 19:33
我想问一下楼主 ,正常情况下,一般 DSDT需要打哪些补丁

郁闷 编辑器有毒

http://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
帖子
727
PB币
1340
贡献
0
技术
0
活跃
960
发表于 2017-3-20 20:45:49 |显示全部楼层
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币
599
贡献
0
技术
0
活跃
558
发表于 2017-3-20 20:48:44 |显示全部楼层
jzhjm 发表于 2017-3-20 20:45
THX,虽然一直没太明白

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

http://bbs.pcbeta.com/viewthread-1571455-1-1.html
关闭

站长推荐

已经开启实名认证了哟
这里可以进行实名操作:点我点我点我
回顶部
Copyright (C) 2005-2019 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件