查看: 66413|回复: 88

[分享] Hotpatch简易教程(修复声卡、屏蔽独显、驱动核显、快捷键调节亮度)

[复制链接]
xuezou 发表于 2017-10-27 16:45 | 显示全部楼层 |阅读模式
快御云安全
前一段时间了解了一下Hotpatch,据说比静态DSDT、SSDT更完美,更接近白果,于是乎昨晚花了几个小时的时间研究了一下Hotpatch,成功改为Hotpatch补丁模式,但是存在三个问题:1)mic无法和siri交流,验证后发现是输入太小(静态补丁时也这样 ps:我用的是AppleALC)2)笔记本自带键盘部分快捷键有问题 比如cmd+option+esc 打开强制退出
3)自带触摸板对多手势几乎是不支持(成功机率小),估计是硬件太渣,这个没办法,不搞
除以上外,暂时还未发现问题,以上问题求大神指教

先瞎说一段(纯属个人观点,欢迎指正
关于静态DSDT、SSDT理解:
这其实是电脑的“硬件表”,是用来告诉操作系统我有哪些硬件,电脑厂家不一样,这个表是有微小差别的,所以不同电脑对DSDT、SSDT都是无法通用的,操作系统根据这些表正确驱动我们的硬件,Linux和Windows是可以几乎完美驱动这些表的,但是我们的Mac是没办法的我的理解是:
1)我们在提取、编译、反编译的过程中会产生错误,所以需要排错
2)Mac和Windows、Linux它们的硬件表里面某些硬件名称、方法或参数不同,以致于无法驱动硬件,所以需要打补丁

这大概是正文了:
https://www.tonymacx86.com/threads/guide-using-clover-to-hotpatch-acpi.200137/

先贴大佬帖子,大概意思就是讲Hotpatch不需要提取本机的DSDT、SSDT这些“硬件表”,因为Clover有一个机制:Clover的Acpi中有一个Drop OEM这个选项勾选上就代表在Clover启动时加载你放在EFI/CLOVR/ACPI/patched中的静态DSDT、SSDT,也就是我们自己提取、修改、打补丁的文件。反之,不勾选就是加载硬件里的DSDT、SSDT这些表,Hotpatch就是如此,加载自带“硬件”表,但是自带“硬件表”有以上提到的问题,这时候Hotpatch就很强大了,这也是Rehabman牛逼的地方,他应该实验过N多次,总结出Mac系统和其它系统“硬件表”中的不同,而这些不同点又是相同的,所以我们可以直接加载硬件本身的“硬件表”,只需要针对它们的不同来做对应修改即可(这是原理了,从中也可以看出Hotpatch确实比静态方法更接近原生Mac),修改方法如下(部分):
重命名
GFX0 - > IGPU
SAT0 - > SATA
EHC1 - > EH01
EHC2 - > EH02
XHCI - > XHC
HECI - > IMEI
MEI - > IMEI
LPC - > LPCB
HDAS - > HDEF
AZAL - > HDEF




我的方法:我对比了一些Hotpatch的配置文件,如果存在并使用了以上方法config.plist-Acpi-DSDT-Patches中Comment、Find、Replace下的参数都相同,所以我只需要:
以下的所有SSDT-****.dsl文件修改好以后必需先编译为SSDT-****.aml文件再放到EFI/CLOVER/ACPI/patched中,最后配置文件config.plist中Acpi右下角SortedOrder中添加SSDT-****.aml这个字段

1)提取我的DSDT.aml或者DSDT.dsl(推荐在Clover选择系统的页面按f4或者fn+f4提取到EFI/CLOVER/ACPI/origin)然后用MaciASL打开DSDT.aml或者DSDT.dsl


2)如上所诉,在我的DSDT.aml或者DSDT.dsl中搜索Rehabaman 提供的Hotpatch文件夹config.plist-Acpi-DSDT-Patches中的方法名,如果有就不要勾选那个方法后面的Disable...,并且将对应需要的SSDT-****.dsl文件编译为SSDT-****.aml,放到EFI/CLOVER/ACPI/patched中,最后配置文件config.plist中Acpi右下角SortedOrder中添加SSDT-****.aml这个字段即可。反之,没有那个方法就勾选Disable或者删除即可。


       Rehabaman的Hotpatch文件下载:
如果安装了github,打开终端输入:git clone https://github.com/RehabMan/OS-X-Clover-Laptop-Config   就会把相应文件下载到用户下的OS-X-Clover-Laptop-Config文件夹中,Hotpatach全套文件都在OS-X-Clover-Laptop-Config/hotpatch中


若没有安装github,前往https://github.com/RehabMan/OS-X-Clover-Laptop-Config右边也能下载


     hotpatch文件夹分析:
其实只需要知道:
SSDT-GPRW.dsl / SSDT-GPRW.dsl
——这是唤醒相关文件,在你的DSDT中搜索GPRW或GPRW,最多的是哪一个则用哪一个即可

SSDT-Config.dsl
——这是hotpatch的配置SSDT内容:

我的Hotpatch背光修复方法
这个文件中建议像我一样设置背光相关的部分:SSDT-Config.dsl中对应填(IGPI,Ones)、(BKLT,1);根据平台填写其中的 * (LMAX,*)  请手打,不要复制。
config.plist中注入显卡的intelGFX、ig-platform-id、以及SystemParameters中 Backlight Level (开机亮度值)
我的Haswell用的第一组:
ig-platform-id 0xa2e0008  Backlight Level :0x56c
ig-platform-id 0xa260006 Backlight Level :0xad9
Device 中intelGFX都为 0x04128086
然后在SortedOrder中添加SSDT-PNLF.aml
就能实现亮度调节


SSDT-HDAU.dsl
——这是声卡相关,SSDT-Config.dsl中写入了ID,这里也要写,config.plist中就不需要声卡id了


config.plist
——这是Clover配置文件,建议直接用RehabMan的这个文件,把你正在在使用的配置文件的除Acpi节点外其余全部覆盖,就是说我们把RehabMan的这个配置文件只保留Acpi这个节点,其余改成我们自己的包括KernelandKext Patches,Device、Graphics、SystemParameters部分内容根据以上内容修改。

说明:如果SSDT-Config.dsl、SSDT-HDAU.dsl中都加入了声卡ID,这里就不需要加入了



以下文件只需要在配置文件config.plist中Acpi右下角SortedOrder添加各自编译后的文件名及扩展名即可自带实现功能,如放入SSDT-Disable_DGPU.aml,添加SSDT-Disable_DGPU.aml即可


SSDT-Disable_DGPU.dsl
——屏蔽独显
SSDT-PluginType1.dsl
——intel 4代及更高平台变频使用,或者你可以使用ssdtPRGen来生成,论坛找,不多说。
SSDT-PNLF.dsl
——有了这个才能实现快捷键亮度调节












本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
xuezou  楼主| 发表于 2017-10-27 21:58 | 显示全部楼层
一楼,楼主遇到了很奇怪的问题
回复

使用道具 举报

xuezou  楼主| 发表于 2017-10-27 22:04 | 显示全部楼层
xuezou 发表于 2017-10-27 21:58
一楼,楼主遇到了很奇怪的问题

冷启动后,几分钟之内风扇狂转,然后规律性报警,小键盘指示灯,大写指示灯以及另一个指示灯同时闪烁,会自动断电关机,换回静态补丁却没问题。求助如何解决
回复

使用道具 举报

ozyb 发表于 2017-10-28 00:50 | 显示全部楼层
tip 学习学习
回复

使用道具 举报

阿菲 发表于 2017-10-28 14:30 | 显示全部楼层
表示。。 有点迷糊 没怎么看懂  具体怎么使用好像没说清楚啊啊
回复

使用道具 举报

xuezou  楼主| 发表于 2017-10-28 14:46 | 显示全部楼层
阿菲 发表于 2017-10-28 14:30
表示。。 有点迷糊 没怎么看懂  具体怎么使用好像没说清楚啊啊

修改好文件对应放EFI/CLOVER里面就可以了,唯一等不同,在DropOEM那里,SortedOrder下面需添加你加入的SSDT**** .aml即可加载成功
回复

使用道具 举报

lzm806409605 发表于 2017-10-28 14:56 | 显示全部楼层
谢谢楼主,感觉好高大上的样子,国际惯例先收藏
回复

使用道具 举报

LIAOHONGFEI 发表于 2017-10-28 15:29 | 显示全部楼层
学习学习,也许也能用上!
回复

使用道具 举报

billgao2 发表于 2017-10-28 16:07 | 显示全部楼层
我的并没有在SortedOrder下面添加加入的SSDt就能加载,添加了反而不能加载,反正能用。我现在和楼主一样开机风扇狂转,但是并不报警,先前用hotpatch的时候也不会风扇狂转,我在想是不是和什么地方冲突了。楼主解决了的话在这个帖子里总结下,谢谢
回复

使用道具 举报

游离态1016 发表于 2017-10-28 17:22 | 显示全部楼层

谢谢分享先试试了
回复

使用道具 举报

chen900703 发表于 2017-10-28 18:43 来自手机 | 显示全部楼层
請問Hotpatch有辦法驅動AMD獨顯嗎?
回复

使用道具 举报

xuezou  楼主| 发表于 2017-10-28 18:47 来自手机 | 显示全部楼层
billgao2 发表于 2017-10-28 16:07
我的并没有在SortedOrder下面添加加入的SSDt就能加载,添加了反而不能加载,反正能用。我现在和楼主一样开机 ...

你看一下clover的bootlog,看看是如何加载的,一起研究一下吧
回复

使用道具 举报

xuezou  楼主| 发表于 2017-10-28 20:58 | 显示全部楼层
chen900703 发表于 2017-10-28 18:43
請問Hotpatch有辦法驅動AMD獨顯嗎?

抱歉,这个我不了解
回复

使用道具 举报

longxueyi 发表于 2017-10-29 07:48 | 显示全部楼层
不管怎样  先收藏
回复

使用道具 举报

ydyanglq 发表于 2017-10-29 13:35 | 显示全部楼层
不错的教程,学习收藏,谢谢分享。
回复

使用道具 举报

haoran61 发表于 2017-10-29 22:49 | 显示全部楼层
楼主真乃神人
回复

使用道具 举报

billgao2 发表于 2017-11-2 13:52 | 显示全部楼层
风扇狂转应该是屏蔽独显的hotpatch补丁的问题,用ssdt加dsdt屏蔽独显时就没问题,我的off代码在SSDT里面,然后去掉了off代码里面关于giop(可能拼的不对)的两行风扇就没问题。但是转成hotpatch不知道该怎么弄了
回复

使用道具 举报

xuezou  楼主| 发表于 2017-11-2 17:46 来自手机 | 显示全部楼层
billgao2 发表于 2017-11-2 13:52
风扇狂转应该是屏蔽独显的hotpatch补丁的问题,用ssdt加dsdt屏蔽独显时就没问题,我的off代码在SSDT里面,然 ...

好,等有时间了,我去排查一下ssdt文件
回复

使用道具 举报

shp38577939 发表于 2017-11-3 01:09 | 显示全部楼层
楼主吧你的文件分享出来啊
回复

使用道具 举报

shp38577939 发表于 2017-11-3 09:53 | 显示全部楼层
用Hotpatch引导了 比之跑分高了一点  现在就亮度调不了 显示器显示的不是笔记本样式的    不会弄               还有就是我的蓝牙一直就是搜到信号关不了   其它基本都正常了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋手机版联系我们

Copyright © 2005-2025 PCBeta. All rights reserved.

Powered by Discuz!  CDN加速及安全服务由「快御」提供

请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。

远景在线 ( 苏ICP备17027154号 )|远景论坛 |Win11论坛 |Win10论坛 |Win8论坛 |Win7论坛 |WP论坛 |Office论坛

GMT+8, 2025-3-14 21:36

快速回复 返回顶部 返回列表