黑苹果 | 黑苹果进阶驱动定制
前言
进阶修改,不像之前打个驱动补丁就行,一般都需要涉及 DSDT 修改,相对来说比较麻烦繁琐,有耐心且想完美的小伙伴往下看吧
内容概览:
- DSDT 提取及编译改错
- AppleLPC 电源管理(原生电源管理)
- CPU 变频及 X86PlatformPlugin
- 2048M 显存修正
- USB3.0 驱动
所需工具
软件名称 | 下载地址 |
---|---|
Clover Configurator | 点击下载 |
IORegistryExplorer | 点击下载 |
MaciASL | 点击下载 |
Hex Fiend | 点击下载 密码:zifc |
百度云合集 | 点击下载 密码:5xbd |
DSDT 提取及编译改错
打开MaciASL
编译原始 DSDT,会返回出现 3 个错误,分别定位到各个错误,
看到这个Arg0
单独占一行,一看和周围的小伙伴就不一样,只需要删掉这个Arg0
即可,这样第二个和第三个错误就解决了
还剩下一个ZERO
错误,定位到出错那行,直接把那群ZERO
删除就可以了
至此,DSDT 排错就完成了,保存。
由于我改正的时候忘记截图了,大家明白意思就行
AppleLPC 电源管理(原生电源管理)
据说新架构的 U 以及不需要这个了,我目前只有 4 代 U,所以无法测试
首先查看自己的把 LPC 的硬件 ID,打开IORegistryExplorer
,搜索LPC
然后在,DSDT 里搜索0x001F0000
,在 xx 前(具体位置见图,只要在指定的大括号内就行)加入如下代码(记得把硬件 id 改成自己的):
1 | Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method |
上述方式不用掉 DTGP 函数
或者用传统方式修改:
注意硬件 ID 的格式,如8c4b
是0x4b, 0x8C, 0x00, 0x00
1 | Method (_DSM, 4, NotSerialized) |
编译 DSDT 然后保存。重启后 AppleLPC 应该会正常加载。
CPU 变频及 X86PlatformPlugin
LPC 电源管理加载完毕后,我们需要为自己的 CPU 生成一份合适的 SSDT 用于加载X86PlatformPlugin
以及让变频正常工作,同时让 cpu 温度正常。
(适用于 4 代 U,其他自测)
打开终端,输入如下命令:
1 | cd Desktop |
运行后脚本会自动生成 SSDT.aml
,可以在/Users/当前用户/Library/ssdtPRGen/
下找到生成好的 SSDT.aml
复制出来,放入 /EFI/Clover/ACPI/Patched/
下。
之后Clover configurator
里的Acpi
栏填写如下字段
重启,如果节能栏里出现启用电能小憩
,软件的扩展功能里X86PlatformPlugin
显示已加载就证明成功啦
2048M 显存修正
通过查找修改 Framebuffer 来实现 2048M 显存修正
查看 Framebuffer
首先需要知道我们加载了哪个 Framebuffer,打开终端,输入以下命令
1 | kextstat | grep -y AppleIntel |
如图,我电脑使用的就是AppleIntelFramebufferAzul.kext
查看 ig-platform-id
接下来需要知道ig-platform-id
,在终端输入如下命令
1 | ioreg -l | grep ig-platform-id |
这里横线上的0700260d
就是我们需要的 ig-platform-id 了
提取 FB
在/System/Library/Extensions
下找到同名的 kext 文件,将其拷贝到桌面。这里是AppleIntelFramebufferAzul.kext
右键显示包内容,在/Contents/MacOS
里找到同名文件,移动至桌面
修改 FB
使用Hexo Fiend
,打开提取的文件,使用Command+F
搜索前面的 ig-platform-id(0700260d
)
把后面的 5 组数据复制出来,一般都是以00000060
结尾的,如我这里找到的01030403 00000004 00002002 00005001 00000060
(上图中蓝色的选中部分)
复制出来的可能是 2 个一组的形式,自己修改一下
将最后的00000060
改为00000080
,如图
安装补丁
打开Clover configurator
,在Kernel and Kext Patches
里新建一个选项,按如下输入即可
记得将 Find 和 replace 替换为自己的
1 | Name: AppleIntelFramebufferAzul |
注意
不要乱用别人整理出来的 ID,毕竟每个人的设备都不一样,我是 HD4600 的核显,使用通用的没有效果,自己查询改出来的就行。
升级系统后,可能会失效,重新修改下就好。
USB3.0 驱动
成功效果
驱动成功后,USB 插入 3.0 设备会正确读取,并且速率显示为 5Gb/秒
步骤地址
USB3.0 驱动,除了需要打 kext 文件外,还需要修改 SSDT.aml,具体过程参见下面,我就不重复造轮子了
修改 SSDT 参考链接: 黑苹果解决 USB3.0 驱动问题
大概步骤
- 下载
USBInjectAll.kext
驱动 - 定制
SSDT-UIAC.aml
补丁 USBInjectAll.kext
驱动置于EFI\EFI\CLOVER\kexts\Other
文件夹SSDT-UIAC.aml
补丁置于/EFI/Clover/ACPI/Patched/
文件夹,打开Clover configurator
在Acpi
栏的SortedOrder
填写SSDT-UIAC.aml
。
驱动名称 | 下载地址 |
---|---|
USBInjectAll.kext | 点击下载 |
我自己的在 10.14.4 上发现失效了,使用下面打补丁的方法可解决
USB 解除端口限制补丁
1 | Comment: USB port limit patch #1 10.14.x modify by DalianSky(credit ydeng) |
或者
1 | Comment: USB Port limit patch 10.14 (credits FredWst) |
参考设置
查看成功方法:
-
插入 3.0 设备,通过系统报告里的 USB,来看速率是否为 5G/s
-
使用
IOregistryExplorer
,搜索xhc
查看(推荐使用这个,这样可以看所有端口是否都已正常工作)
有问题最好是直接在博文留言,方便我收集整理问题,我会不定期总结出博文,这样可以更好的帮助其他小伙伴
参考链接:
- Native Power Management for Laptops
- 简单修改 FB 实现显存增加至 2048MB 修复某些花屏
- 黑苹果解决 USB3.0 驱动问题