黑苹果进阶驱动定制

前言

进阶修改,不像之前打个驱动补丁就行,一般都需要涉及 DSDT 修改,相对来说比较麻烦繁琐,有耐心且想完美的小伙伴往下看吧
内容概览:
  • DSDT 提取及编译改错
  • AppleLPC 电源管理 (原生电源管理)
  • CPU 变频及 X86PlatformPlugin
  • 2048M 显存修正
  • USB3.0 驱动

所需工具

软件名称下载地址
Clover Configurator点击下载
IORegistryExplorer点击下载
MaciASL点击下载
Hex Fiend点击下载 
Onedrive合集点击下载           

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 驱动问题
大概步骤
  1. 下载 USBInjectAll.kext 驱动
  2. 定制 SSDT-UIAC.aml 补丁
  3. USBInjectAll.kext 驱动置于 EFI\EFI\CLOVER\kexts\Other 文件夹
  4. 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

参考设置


查看成功方法:
  1. 插入 3.0 设备,通过系统报告里的 USB,来看速率是否为 5G/s
  2. 使用 IOregistryExplorer,搜索 xhc 查看 (推荐使用这个,这样可以看所有端口是否都已正常工作)


有问题最好是直接在博文留言,方便我收集整理问题,我会不定期总结出博文,这样可以更好的帮助其他小伙伴

此博客中的热门博文

免费OpenVPN使用方法

黑苹果10.14macOS Mojave安装教程(集显)

西瓜创客E0:新手任务