华硕 VM510L EFI 分享 9CC3笔记本主板芯片通用

[TOC]

使用说明

本文件适用于华硕 9CC3 笔记本芯片组。查看方法,win 下鲁大师 > 详细报表。

本 CLOVER 所有的 ACPI 修改均使用 Hotpatch 方式,补丁模块化,故无 DSDT。

本 EFI 在 VM510LI 测试通过

欢迎各位 9CC3 笔记本芯片组的朋友测试,可加群一齐讨论与反馈问题 QQ 群号:621151130

EFI 下载地址:9CC3-EFI-2017-03-09.zip

目录说明

  • CLOVER (Clover 目录,请放置在 EFI目录下。需要注意的只有两个地方,CLOVER 的 ACPI 文件夹和 Kext 文件夹。)
  • Hotpatch ( 所使用到的 hotpatch 源代码。)
  • Library/Extensions/DummyX86PP_MBP121_800.kext (建议放在系统盘 /Library/Extensions 下并修复权限,DummyX86PP_MBP121_800.kext 是为了修改 X86PlatformPlugin 中的机型数据,将最低 1300MHz 频率改成最低 800MHz。(可要可不要))
  • UHD-4K/SSDT-Config.aml(如果是4K 屏幕请替换此文件到 CLOVER/ACPI/patched。
  • usr/bin/hda-verb (睡眠唤醒无声及开机耳机只有背景声使用,配合 CodecCommander.kext 使用,详见帖子 http://bbs.pcbeta.com/viewthread-1733228-1-1.html

ACPI 文件说明

SSDT-BATT-VM510LI.aml

ASUS R557LI 无需使用此 SSDT,仅需放入 ACPIBatteryManager.kext
ASUS W519LI 电量无法显示,暂时未知什么问题导致。#2017年03月09日10:24:06

作用:

修复 9CC3 的电量显示,需要配合 ACPIBatteryManager.kext 驱动使用。

使用方法:

  1. 在 CLOVER 的 config.list > ACPI > DSDT > Patches 添加以下补丁,并且 SortedOrder 加入 SSDT-BATT-VM510LI.aml
  2. EFI > CLOVER > ACPI > Patches 放入本 SSDT。

补丁1:

1
2
3
Comment:change Method(TACH,1,N) to XACH, optionally pair with SSDT-BATT-VM510LI.aml
Find:54414348 09
Replace:58414348 09

补丁2:

1
2
3
4
5
6
7
Comment:change Method(_BIX,0,N) to XBIX, optionally pair with SSDT-BATT-VM510LI.aml
Find:5F424958 00
Replace:58424958 00
```
补丁3:

Comment:change Method(BIFA,0,N) to XIFA, optionally pair with SSDT-BATT-VM510LI.aml
Find:42494641 00
Replace:58494641 00

1
2
3
补丁4:

Comment:change Method(SMBR,3,N) to XMBR, optionally pair with SSDT-BATT-VM510LI.aml
Find:534D4252 0B
Replace:584D4252 0B

1
2
3
补丁5:

Comment:change Method(ECSB,7,N) to XCSB, optionally pair with SSDT-BATT-VM510LI.aml
Find:45435342 07
Replace:58435342 07

1
2
3
补丁6:

Comment:change Method(SMBW,5,N) to XMBW, optionally pair with SSDT-BATT-VM510LI.aml
Find:534D4257 0D
Replace:584D4257 0D

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
### SSDT-CodecCommander.aml
**作用:**
用于配置 CodecCommander.kext,修复睡眠唤醒无声问题。
**使用方法:**
1. 将本 SSDT 放入 EFI > CLOVER > ACPI > Patches,并且 SortedOrder 加入 SSDT-CodecCommander.aml。
2. 将 CodecCommander.kext 放入 CLOVER > Kext
### SSDT-Config.aml
**作用:**
用于配置 Hotpatch 其他补丁,例如 SSDT-PNLF.aml、SSDT-IGPU.aml 等都需要读取这 SSDT 里面的配置。
**使用方法:**
将本 SSDT 放入 EFI > CLOVER > ACPI > Patches。
**配置说明:**

// configuration data for other SSDTs in this pack

DefinitionBlock(“”, “SSDT”, 2, “hack”, “RMCF”, 0)
{
Device(RMCF)
{
Name(_ADR, 0) // do not remove

    Method(HELP)
    {
        Store("TYPE indicates type of the computer. 0: desktop, 1: laptop", Debug)
        Store("HIGH selects display type. 1: high resolution, 2: low resolution", Debug)
        Store("DPTS for laptops only. 1: enables/disables DGPU in _WAK/_PTS", Debug)
        Store("SHUT enables shutdown fix. 1: disables _PTS code when Arg0==5", Debug)
        Store("AUDL indicates audio layout-id for patched AppleHDA. Ones: no injection", Debug)
        Store("BKLT indicates the type of backlight control. 0: IntelBacklight, 1: AppleBacklight", Debug)
        Store("LMAX indicates max for IGPU PWM backlight. Ones: Use default, other values must match framebuffer", Debug)
    }

    // TYPE: Indicates the type of computer... desktop or laptop
    //
    //  0: desktop
    //  0: 台式机
    //  1: laptop
    //  1: 笔记本
    Name(TYPE, 1)

    // HIGH: High resolution/low resolution selection.  Affects IGPU injection.
    // HIGH: 高分辨率/低分辨率选择。 影响IGPU注入。
    // For 1600x900+ on Sandy/Ivy, use 1
    // 对于1600x900 +在Sandy / Ivy,请使用1
    // For UHD/QHD+ on Haswell/Broadwell, use 1
    // 对于Haswell / Broadwell的UHD / QHD +,请使用1
    // Others (low resolution), use 0
    // 其他(低分辨率),使用0
    Name(HIGH, 0)

    // DPTS: For laptops only: set to 1 if you want to enable and
    // DPTS:仅适用于笔记本电脑:如果要启用和,请设置为1
    //  disable the DGPU _PTS and _WAK.
    //  禁用DGPU _PTS和_WAK。
    //  0: does not manipulate the DGPU in _WAK and _PTS
    //  0:不操作_WAK和_PTS中的DGPU
    //  1: disables the DGPU in _WAK and enables it in _PTS
    //  1:禁用_WAK中的DGPU,并在_PTS中启用它
    Name(DPTS, 0)

    // SHUT: Shutdown fix, disable _PTS code when Arg0==5 (shutdown)
    // SHUT:关闭修复,当Arg0 == 5(关闭)时禁用_PTS代码,
    //  0: does not affect _PTS behavior during shutdown
    //  0:在关闭期间不影响_PTS行为
    //  1: disables _PTS code during shutdown
    //  1:在关闭期间禁用_PTS代码
    Name(SHUT, 0)

    // AUDL: Audio Layout
    // AUDL:音频布局
    // The value here will be used to inject layout-id for HDEF and HDAU
    // 这里的值将用于注入HDEF和HDAU的layout-id
    // If set to Ones, no audio injection will be done.
    // 如果设置为Ones,则不会进行音频插入。
    Name(AUDL, Ones)

    // BKLT: Backlight control type
    // BKLT:背光控制类型
    // 0: Using IntelBacklight.kext
    // 0:使用IntelBacklight.kext
    // 1: Using AppleBacklight.kext + AppleBacklightInjector.kext
    // 1:使用AppleBacklight.kext + AppleBacklightInjector.kext
    Name(BKLT, 0)

    // LMAX: Backlight PWM MAX.  Must match framebuffer in use.
    // LMAX:背光PWM最大值。 必须匹配使用中的帧缓冲区。
    // Ones: Default will be used (0x710 for Ivy/Sandy, 0xad9 for Haswell/Broadwell)
    // Ones:将使用默认(Ivy / Sandy 的默认值是 0x710,Haswell / Broadwell 的默认值是 0xad9)
    // Other values: must match framebuffer
    // 其他值:必须与framebuffer相匹配
    Name(LMAX, Ones)
}

}
//EOF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
上面 RM 都注释了,我以 Google 翻译过来,方便理解。
* 第一个值,**TYPE** 从 SSDT-IGPU 调用,影响显卡 ID 的注入。查看了下代码,好像是区分是否注入高分屏 ID 有关。
* 第二个值,**HIGH** 从 SSDT-IGPU 调用,影响点卡 ID 的注入。当 TYPE 设置成笔记本才生效。
* 第三个值,**DPTS** 从 SSDT-PTSWAK 调用,这个 SSDT 是重写了睡眠和唤醒的方法,加入了一些我们补丁需要用到的代码,这里设置 1 则会在睡眠的时候开启显卡,唤醒后关闭显卡。
* 第四个值,**SHUT** 从 SSDT-PTSWAK 调用,这个 SSDT 功能同上,这里设置 1 则会在关机的时候禁用 _PTS,和 Shutdown fix 同理。
* 第五个值,**AUDL** 从 SSDT-HDAU 和 SSDT-HDEF 调用,这两个 SSDT 前者负责注入声卡 ID,后者则负责注入 HDMI 声卡 ID,而这个值就是控制两个 SSDT 注入声卡的行为,如果写 Ones 则什么都不注入,如果写 3,则声卡的 layout-id 则为 3。
* 第六个值,**BKLT** 从 SSDT-PNLF 调用,这个 SSDT 看名字大家应该都很熟悉,就是加入 PNLF 设备,用来启用我们的笔记本亮度调节驱动的,而这个值是控制亮度调节的驱动是用哪一种,0 是使用 IntelBacklight.kext,1 是使用 AppleBacklight.kext + AppleBacklightInjector.kext。
* 第七个值,**LMAX** 从 SSDT-PNLF 调用,这个 SSDT 同上,这个值是设置背光的 PWM 最大值,Ones 是使用默认值,Ivy / Sandy 的默认值是 0x710,Haswell / Broadwell 的默认值是 0xad9,你也可以设置其他值,但是这个值必须与 framebuffer 相匹配。
### SSDT-DAMD-VM510LI.aml
**作用:**
用于屏蔽 9CC3 芯片组的独立显卡(AMD 与 NVIDIA 通用)
**使用方法:**
1. 在 CLOVER 的 config.list > ACPI > DSDT > Patches 添加以下补丁,并且 SortedOrder 加入 SSDT-DAMD-VM510LI.aml。
2. EFI > CLOVER > ACPI > Patches 放入本 SSDT。
补丁1:

Comment:change Method(SGOF,0,Serialized) to XGOF, optionally pair with SSDT-DAMD-VM510LI.aml
Find:53474F46 08
Replace:58474F46 08

1
2
3
补丁2:

Comment:Comment:change Method(_REG,0,Serialized) to XREG, optionally pair with SSDT-DAMD-VM510LI.aml
Find:5F524547 02
Replace:58524547 02

1
2
3
4
5
6
7
8
9
10
11
12
13
14
### SSDT-Fn-VM510LI.aml
**作用:**
配合 AsusNBFnKeys.kext 驱动使用,修改 _QE0 和 _QF0 方法而实现 FN 亮度调整功能。
**使用方法:**
1. 在 CLOVER 的 config.list > ACPI > DSDT > Patches 添加以下补丁,并且 SortedOrder 加入 SSDT-Fn-VM510LI.aml。
2. EFI > CLOVER > ACPI > Patches 放入本 SSDT。
补丁1:

Comment:change _Q0E to XQ0E, optionally pair with SSDT-Fn.aml
Find:5F513045
Replace:58513045

1
2
3
补丁2:

Comment:change _Q0F to XQ0F, optionally pair with SSDT-Fn.aml
Find:5F513046
Replace:58513046

1
2
3
4
5
6
7
8
9
10
11
12
13
14
### SSDT-HDAU.aml 与 SSDT-HDEF.aml
**作用:**
注入音频 layout-id 使得声卡出声,需要配合 AppleALC.kext。
**使用方法:**
1. 在 CLOVER 的 config.list > ACPI > DSDT > Patches 添加以下补丁,并且 SortedOrder 加入 SSDT-HDEF.aml 和 SSDT-HDEF.aml。
2. EFI > CLOVER > ACPI > Patches 放入本 SSDT。
3. 修改 SSDT-Config.aml 的 AUDL 字段为所对应的 layout-id,9CC3 是 ALC233(ALC3236),最佳的 layout-id 是4,故此此值应当设置为4。
补丁:

Comment:change B0D3 to HDAU, optionally pair with SSDT-HDAU.aml
Find:42304433
Replace:48444155

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
### SSDT-IGPU.aml
**作用:**
注入显卡 AAPL,snb-platform-id 驱动核心显卡。
**使用方法:**
1. 在 CLOVER 的 config.list > ACPI > DSDT > Patches 添加以下补丁,并且 SortedOrder 加入 SSDT-IGPU.aml。
2. EFI > CLOVER > ACPI > Patches 放入本 SSDT。
3. 修改 SSDT-Config.aml 的 TYPE 字段为 1。
4. 如果是高分辨率(超过1080P)屏幕,请修改 SSDT-Config.aml 的 HIGH 字段为 1,其余分辨率为 0。
补丁:

Comment:change GFX0 to IGPU, optionally pair with SSDT-IGPU.aml
Find:47465830
Replace:49475055

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
### SSDT-PNLF.aml
**作用:**
亮度调节补丁,本补丁支持两种驱动方式。(AppleBacklight.kext + AppleBacklightInjector.kext 或 IntelBacklight.kext) 目前使用的是 IntelBacklight.kext
**使用方法:**
1. 在 CLOVER 的 config.list > ACPI > SortedOrder 加入 SSDT-PNLF.aml。
2. EFI > CLOVER > ACPI > Patches 放入本 SSDT。
### SSDT-PRW.aml
**作用:**
修复 USB 睡眠唤醒补丁。
**使用方法:**
1. 在 CLOVER 的 config.list > ACPI > DSDT > Patches 添加以下补丁,并且 SortedOrder 加入 SSDT-PRW.aml。
2. EFI > CLOVER > ACPI > Patches 放入本 SSDT。
补丁:

Comment:change Method(GPRW,2,N) to XPRW, pair with SSDT-PRW.aml
Find:47505257 02
Replace:58505257 02

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
### SSDT-SMBUS.aml
**作用:**
SMBUS fix 补丁。
**使用方法:**
1. 在 CLOVER 的 config.list > ACPI > SortedOrder 加入 SSDT-SMBUS.aml。
2. EFI > CLOVER > ACPI > Patches 放入本 SSDT。
### SSDT-ssdtPRGen.aml
**作用:**
CPU I5 5200U 的 SSDT,用于加载 X86PlatformPlugin 的机型参数,使得加载原生电源管理。
如果是其他 CPU,请自行使用 ssdtPRGen.sh 生成自己 CPU 的 SSDT,重命名为 SSDT-ssdtPRGen.aml 放入 EFI > CLOVER > ACPI > Patches。
**使用方法:**
1. 在 CLOVER 的 config.list > ACPI > SortedOrder 加入 SSDT-ssdtPRGen.aml。
2. EFI > CLOVER > ACPI > Patches 放入本 SSDT。
### SSDT-XOSI.aml
**作用:**
OS Check Fix
**使用方法:**
1. 在 CLOVER 的 config.list > ACPI > DSDT > Patches 添加以下补丁,并且 SortedOrder 加入 SSDT-XOSI.aml。
2. EFI > CLOVER > ACPI > Patches 放入本 SSDT。
补丁:

Comment:change _OSI to XOSI, pair with SSDT-XOSI.aml
Find:5F4F5349
Replace:584F5349
```

Kext 文件说明

驱动名称 版本号 用途
ACPIBatteryManager.kext 2016-1118 配合 SSDT-BATT-VM510LI 显示电量。
AppleALC.kext 1.0.19 驱动声卡,需配合 SSDT-HDAU.aml 与 SSDT-HDEF.aml 使用。 另注入 ID 需在 SSDT-Config.aml 的 AUDL 字段注入 layout-id,根据 9CC3 提取的 Codec 得出,最符合的 layout-id 是4。
ApplePS2SmartTouchPad.kext v4.7 beta 5 触摸板与键盘驱动
AsusNBFnKeys.kext v2.6 华硕专用 FN 驱动,需配合 SSDT-Fn-VM510LI.aml 使用。
CodecCommander.kext 2016-0721 修复睡眠唤醒后无声问题,修复耳机只有背景声问题。
IntelBacklight.kext 2017-0206 显示屏亮度驱动,需配合 SSDT-PNLF.aml 使用。
RealtekRTL8111.kext 2015-1230 有线网卡驱动
FakeSMC.kext and FakeSMC*.kext 2017-0117 黑苹果必备驱动

Clover 配置文件 Config.list 说明

ACPI

Fixes

  • AddDTGP_0001 (添加 DTGP 方法,修复 ACPI 出现的 DTGP 错误)
  • FIX_ACST_4000000 (修复 ASUS 与 Apple 的电源管理寄存器命名冲突)
  • FIX_RTC_20000 (RTC Fix 从RTC设备中排除IRQ(0))
  • FIX_S3D_2000000 (通过更正_S3D方法解决一些睡眠/唤醒问题。)
  • FIX_WAK_200000 (同等于 DSDT Fix _WAK Arg0 v2 补丁)
  • FixHPET_0010 (同等于 DSDT HPET Fix 补丁)
  • FixIPIC_0040 (同等于 IRQ Fix 补丁)
  • NewWay_80000000 (应用新补丁,Clover 从 4006 版本开始取消此选项。)

Patches

  • change _OSI to XOSI, pair with SSDT-XOSI.aml (配合 SSDT-XOSI 使用,同等于 OS Check Fix。)
  • change EHC1 to EH01 (修复 USB 设备命名,使其更符合 Apple 规范。)
  • change EHC2 to EH02 (同上)
  • Rename _DSM to XDSM (修复开机关于 _DSM 五国问题。)
  • change GFX0 to IGPU, optionally pair with SSDT-IGPU.aml (修改 GFX0 设备名称,更符合 Apple 规范,另配合 SSDT-IGPU.aml 注入显卡 ID,驱动显卡。)
  • change Method(GPRW,2,N) to XPRW, pair with SSDT-PRW.aml (配合 SSDT-PRW.aml 修复 USB 唤醒问题,同等于 USB3 _PRW 0X0D(或0X6D)(instant wake)。)
  • change B0D3 to HDAU, optionally pair with SSDT-HDAU.aml (配合 SSDT-HDAU.aml 与 SSDT-HDEF.aml 和 AppleALC.kext 驱动声卡。)
  • change _Q0E to XQ0E, optionally pair with SSDT-Fn.aml (配合 SSDT-Fn.aml 与 AsusNBFnKeys.kext 使 FN f5 f6 的亮度调整按键生效。)
  • change _Q0F to XQ0F, optionally pair with SSDT-Fn.aml (同上。)
  • change Method(TACH,1,N) to XACH, optionally pair with SSDT-BATT-VM510LI.aml (配合 SSDT-BATT-VM510LI.aml 和 ACPIBatteryManager.kext 显示电量。)
  • change Method(_BIX,0,N) to XBIX, optionally pair with SSDT-BATT-VM510LI.aml (同上。)
  • change Method(BIFA,0,N) to XIFA, optionally pair with SSDT-BATT-VM510LI.aml(同上。)
  • change Method(SMBR,3,N) to XMBR, optionally pair with SSDT-BATT-VM510LI.aml(同上。)
  • change Method(ECSB,7,N) to XCSB, optionally pair with SSDT-BATT-VM510LI.aml(同上。)
  • change Method(SMBW,5,N) to XMBW, optionally pair with SSDT-BATT-VM510LI.aml(同上。)
  • change Method(SGOF,0,Serialized) to XGOF, optionally pair with SSDT-DAMD-VM510LI.aml (配合 SSDT-DAMD-VM510LI.aml 屏蔽独显。)
  • Comment:change Method(_REG,0,Serialized) to XREG, optionally pair with SSDT-DAMD-VM510LI.aml (同上。)

DropTables

  • SSDT Cpc_Tabl (禁用主板提供的 cpuPR SSDT,换成我们使用 ssdtPRGen 生成的 ssdt。)
  • DMAR

KernelAndKextPatches

KextsToPatch

  • AirPort Extreme (我更换了 BCM94352hmb 使用的补丁,9CC3 是 ar9565 的网卡,无需此补丁,我这里禁用了此补丁)
  • AirPortBrcm4360 - fcvo, 10.12.x (credit the-darkvoid) (同上)
  • 10.11-BCM94352-5GHz-US-FCC-dv (同上)
  • TRIM function for non-Apple SSDs (为 SSDT 开启 TRIM)
  • Boot graphics glitch, 10.12.dp1 (改善 10.12 开机撕裂苹果图标的补丁,只能加快撕裂的消失时间,并不能完全去掉。)
  • Disable minStolenSize less or equal fStolenMemorySize assertion, 10.12.0 ( (based on Austere.J patch) (取消 10.12 限制 minStolenSize 的限制,9CC3 可以在 Bios 设置,故此我禁用此补丁。)
  • HDMI-audio 0x16260006 (HDMI 音频补丁)
  • change 15 port limit to 20 in AppleUSBXHCIPCI (15个 USB 端口限制补丁,9CC3 并没有超过15个,可不用此补丁,这里默认禁用)

SMBIOS

  • 机型选择 MacBookPro12,1
  • 如果开机遇到 can’t perform kext scan: no kext summary 的五国,请勾上 Trust,默认是启用 Trust。

AR9565

AR9565 蓝牙无解

驱动下载地址:9565.zip

作者发布下载地址:9565.zip

发布地址(需要翻墙):Kext for wifi ar9565 for hackintosh macOS Sierra 10.12 (16A323)

使用说明:

  1. open terminal and write
  2. defaults write com.apple.finder AppleShowAllFiles YES
  3. killall Finder
  4. go to System/Library/Extensions and delete IO80211Family.kext and IO80211FamilyV2.kext
  5. open kext utility and install corecapture.kext and CoreCaptureResponder.kext
  6. open clover configurator and mount your efi partition
  7. go to EFI/CLOVER/kexts/10.12 and move IO80211Family.kext
  8. reboot enjoy

My youtube channel https://www.youtube.com/channel/UCzxRc20c5_bC2zaBFQ4GFsQ

Like and fap thanks for watching.

  1. 打开终端 执行 (显示隐藏文件)
    defaults write com.apple.finder AppleShowAllFiles YES
    killall Finder
  2. 删除S/L/E内的 IO80211Family.kext和IO80211FamilyV2.kext
  3. 使用kext utility 安装 corecapture.kext 和 CoreCaptureResponder.kext
  4. 把IO80211Family.kext放到EFI/CLOVER/kexts/10.12
  5. 重启

解决 ALC233 唤醒无声及带麦克风耳机只有背景声

请看此贴 关于耳机只有背景声及唤醒无声的探讨【更新ALC233解决方案】

已知问题

  1. 二合一耳机麦克风无输入。
  2. SD 读卡器 ID 为 0x0129 无解。
  3. 亮度无法保存。
  4. VGA 无输出。
  5. ASUS W519LI 电量无法显示,暂时未知什么问题导致。 #2017年03月09日10:24:06

高分屏

如 ASUS FL5800L

  1. 更换 UHD 目录下的 SSDT-Config.aml 文件(HIGH 字段改成1)。
  2. 突破高分屏限制开启内屏请参考 驱动显卡后4k屏幕点不亮的问题