黑苹果进阶驱动定制
前言
进阶修改,不像之前打个驱动补丁就行,一般都需要涉及 DSDT 修改,相对来说比较麻烦繁琐,有耐心且想完美的小伙伴往下看吧
内容概览:
- DSDT 提取及编译改错
- AppleLPC 电源管理 (原生电源管理)
- CPU 变频及 X86PlatformPlugin
- 2048M 显存修正
- USB3.0 驱动
所需工具
DSDT 提取及编译改错
打开
MaciASL
编译原始 DSDT,会返回出现 3 个错误,分别定位到各个错误,
看到这个
Arg0
单独占一行,一看和周围的小伙伴就不一样,只需要删掉这个 Arg0
即可,这样第二个和第三个错误就解决了
还剩下一个
ZERO
错误,定位到出错那行,直接把那群 ZERO
删除就可以了
至此,DSDT 排错就完成了,保存。
由于我改正的时候忘记截图了,大家明白意思就行
AppleLPC 电源管理 (原生电源管理)
据说新架构的 U 以及不需要这个了,我目前只有 4 代 U,所以无法测试
首先查看自己的把 LPC 的硬件 ID,打开
IORegistryExplorer
,搜索 LPC
然后在,DSDT 里搜索
0x001F0000
,在 xx 前(具体位置见图,只要在指定的大括号内就行)加入如下代码(记得把硬件 id 改成自己的):1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "compatible", "pci8086,8c4b" }) } |
上述方式不用掉 DTGP 函数
或者用传统方式修改:
注意硬件 ID 的格式,如
8c4b
是 0x4b, 0x8C, 0x00, 0x00
1 2 3 4 5 6 7 8 9 10 11 12 13 | Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "device-id", Buffer (0x04) { 0x4b, 0x8C, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } |
编译 DSDT 然后保存。重启后 AppleLPC 应该会正常加载。
CPU 变频及 X86PlatformPlugin
LPC 电源管理加载完毕后,我们需要为自己的 CPU 生成一份合适的 SSDT 用于加载
X86PlatformPlugin
以及让变频正常工作,同时让 cpu 温度正常。
(适用于 4 代 U,其他自测)
打开终端,输入如下命令:
1 2 3 4 | cd Desktop curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh chmod +x ssdtPRGen.sh ./ssdtPRGen.sh |
运行后脚本会自动生成
复制出来,放入
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 2 3 4 | Name: AppleIntelFramebufferAzul Find: 01030403 00000004 00002002 00005001 00000060 Replace: 01030403 00000004 00002002 00005001 00000080 Comment: 1536MB -> 2048MB for HD4200_4400_4600 Mobile |
注意
不要乱用别人整理出来的 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Comment: USB port limit patch #1 10.14.x modify by DalianSky(credit ydeng) Name: com.apple.iokit.IOUSBHostFamily Find: 83FB0F0F Replace: 83FB3F0F MatchOS: 10.14.x Comment: USB port limit patch #2 10.14.x modify by DalianSky(credit PMHeart) Name: com.apple.iokit.IOUSBHostFamily Find: 83E30FD3 Replace: 83E33FD3 MatchOS: 10.14.x Comment: USB Port limit patch #3 10.14.x modify by DalianSky(credits PMheart) Name: com.apple.driver.usb.AppleUSBXHCI Find: 83FB0F0F Replace: 83FB3F0F MatchOS: 10.14,10.14.1,10.14.2,10.14.3 Comment: USB Port limit patch #4 10.14.x modify by DalianSky(credits PMheart) Name: com.apple.driver.usb.AppleUSBXHCI Find: 83FF0F0F Replace: 83FF3F0F MatchOS: 10.14.x |
或者
1 2 3 4 5 6 7 8 9 10 11 | Comment: USB Port limit patch 10.14 (credits FredWst) Name: com.apple.driver.usb.AppleUSBXHCI Find: 83FB0F0F 83030500 00 Replace: 83FB0F90 90909090 90 MatchOS: 10.14 Comment: USB Port limit patch 10.14.1 10.14.2 Beta (credits DalianSky) Name: com.apple.driver.usb.AppleUSBXHCI Find: 83FB0F0F 838F0400 00 Replace: 83FB0F90 90909090 90 MatchOS: 10.14.1,10.14.2 |
参考设置
查看成功方法:
- 插入 3.0 设备,通过系统报告里的 USB,来看速率是否为 5G/s
- 使用
IOregistryExplorer
,搜索xhc
查看 (推荐使用这个,这样可以看所有端口是否都已正常工作)
有问题最好是直接在博文留言,方便我收集整理问题,我会不定期总结出博文,这样可以更好的帮助其他小伙伴