Fork me on GitHub

Intel FB-Patcher使用教程及插入姿势

Intel FB-Patcher使用教程及插入姿势

功能

  • 支持Sandy Bridge,Ivy Bridge,Haswell,Broadwell,SKYLAKE,KabyLake,Coffee Lake, Cannon Lake Ice Lake几乎所有的平台
  • 创建所有的显示接口连接和VRAM补丁
  • 检测自动修补程序创建的变化
  • 创建Clover补丁,支持hex,base64或Devices/Properties等三种格式
  • 显示原生GPU和型号标识
  • 显示和编辑内存信息,如Stolen,Framebuffer,VRAM,Cursor等
  • 翻滚一些项目的其他信息(Tool tips)
  • 直接读取已加载生效的xxxFramebuffer kext的数据
  • 文件->打开通过Debug版本的WhatEverGreen.kext-igfxdump引导标志生成的Framebuffer文件
  • 文件- >导出>Clover config.plist
  • 文件->导出- > Framebuffer.txt
  • 修补音频布局ID
  • 添加USB端口限制补丁
  • 插拔USB2 / USB3/Type-C设备和设定的端口的连接器类型然后生成一个USBPorts.kext`的驱动程序
  • 高级修补选项(DVMT-prealloc 32 MB ,VRAM 2048 MB,禁用eGPU,启用HDMI20(4K),欺骗SKL音频,DP->HDMI,USB端口限制,FB端口限制等)

先来两个开味小菜:

Layout-id修补

  1. 安装最新版本的Lilu和AppleALC

  2. 设置config.plist/Devices/Audio/Inject=NO

  3. 通过下拉列表设置Layout Id

  4. 检查补丁:General->Audio

  5. File->Export->Clover config.plist

  6. 重启

  7. 如果没生效请重复第3步:更换不同的layout-id

    udioPatch

AudioPatch2

USB端口修补

  1. 应用USB端口限制补丁(在Patch->Advanced) 然后导出 File->Export->Clover config.plist USBPortLimit

  2. USBInjectAll.kext 驱动放进EFI/CLOVER/kexts/Other ,同时需要在config.plist->ACPI->DSDT Patches中添加重命名补丁

    • change EHC1 to EH01

    • change EHC2 to EH02

    • change XHCI to XHC

    • 两种格式:

      • 1
        2
        3
        4
        5
        6
        7
        8
        9
        Comment: change EHC1 to EH01
        Find: 45484331
        Replace: 45483031
        Comment: change EHC2 to EH02
        Find: 45484332
        Replace: 45483032
        Comment: change XHCI to XHC
        Find: 58484349
        Replace: 5848435f
      • 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
        38
        39
        40
        41
        42
        <dict>
        <key>Comment</key>
        <string>change EHC1 to EH01</string>
        <key>Disabled</key>
        <false/>
        <key>Find</key>
        <data>
        RUhDMQ==
        </data>
        <key>Replace</key>
        <data>
        RUgwMQ==
        </data>
        </dict>
        <dict>
        <key>Comment</key>
        <string>change EHC2 to EH02</string>
        <key>Disabled</key>
        <false/>
        <key>Find</key>
        <data>
        RUhDMg==
        </data>
        <key>Replace</key>
        <data>
        RUgwMg==
        </data>
        </dict>
        <dict>
        <key>Comment</key>
        <string>change XHCI to XHC</string>
        <key>Disabled</key>
        <false/>
        <key>Find</key>
        <data>
        WEhDSQ==
        </data>
        <key>Replace</key>
        <data>
        WEhDXw==
        </data>
        </dict>
        - 它通常位于
           
        1
        2
        3
        4
        5
        6
        <key>ACPI</key>
        <dict>
        <key>DSDT</key>
        <dict>
        <key>Patches</key>
        <array>
        下面,如果使用文字编辑软件,请不要放错位置。
        • 附图:changeXHC

        • 重命令名字符串转换16进制示意图echo-n2xxd

  3. 你也许还会需要XHCI-200-series-injector.kext,XHCI-300-series-injector.kext或者XHCI-x99-injector.kext,这取决于你所使用的INTEL芯片组

  4. 重启机器,重新打开Intel FB-Patcher

  5. 转到General->USB接口

    • 分别插入和拔出USB 2.0和USB 3.0设备,要求:将机器上的每个USB端口都插拔一遍。可用的端口将以突出的颜色标出USBOrigin
  6. 设置每个端口,在下拉列表中选择适当的接口类型USBTest

    • 连接到USB3端口应设置为USB3(注HSxx端口)

    • USB type-C型端口可以是9或10,这取决于硬件如何处理USB type-C型设备/电缆的两种可能方向
      如果USB-C在两个方向上使用相同的SSxx,则它具有内部开关(UsbConnector = 9)
      如果USB-C在每个方向使用不同的SSxx,则它没有开关(UsbConnector = 10)

  7. 使用删除按钮移除无用的端口USB_HS07USBFinal

  8. 使用Export按钮创建USBPorts.kext ,它位于你的桌面,将生成的USBPorts.kext复制进 EFI/CLOVER/kexts/Other 备注:旧版本生成的驱动名称为USBPower.kextUSBPower

  9. 你现在可以删除掉USBInjectAll.kext 以及关闭端口限制的补丁了

USB端口补丁(macOS 10.14.1+)

macOS 10.14.1+的USB端口限制补丁已经失效了,因此无法一次配置所有端口。 RehabMan已更新USBInjectAll.kext以包含用于排除端口组的引导标志

  1. 将USBInjectAll.kext(用于端口发现)放入EFI/CLOVER/kexts/Other
    USBInjectAll.kext要求:
  • Clover重命名XHC1 -> XHC
  • Clover重命名EHC1 -> EH01
  • Clover重命名EHC2 -> EH02
  1. 运行FB-Patcher并转到General-> USB选项卡以检查USB控制器列表
    基于USB控制器,您可能需要安装额外的kexts:
  • 8086:8CB1和macOS <10.11.1 -> XHCI-9-series.kext
  • 8086:8D31,8086:A2AF,8086:A36D,8086:9DED -> XHCI-unsupported.kext
  • 8086:1E31,8086:8C31,8086:8CB1,8086:8D31,8086:9C31,8086:9CB1 -> FakePCIID.kext + FakePCIID_XHCIMux.kext
  1. 使用-uia_exclude_ss引导标志重新引导(在boot args添加:-uia_exclude_ss)
    鼠标和键盘:
  • 记下鼠标和键盘所连接的端口,并添加uia_include=x引导标志(例如,uia_include=HS01,HS02)以使它们保持活动状态
  1. 运行Intel FB-Patcher,转到General->USB选项卡
  • 将USB 2.0和USB 3.0设备插入并拔出系统的每个USB端口
  • 活动的端口将保持突出显示
  1. 使用下拉列表将每个端口设置为适当的连接器
  • 永久连接设备的USB端口(例如M.2蓝牙卡)应设置为“内部”
  • 连接到USB3端口的HSxx端口应设置为USB3
  • 内部集线器通常连接到端口PR11和PR21,因此应设置为“内部”
    TypeC:
  • USB type-C型端口可以是9或10,这取决于硬件如何处理USB type-C型设备/电缆的两种可能方向
    如果USB-C在两个方向上使用相同的SSxx,则它具有内部开关(UsbConnector = 9)
    如果USB-C在每个方向使用不同的SSxx,则它没有开关(UsbConnector = 10)
  1. 使用“删除”按钮删除所有未使用的端口

  2. 使用添加的-uia_exclude_hs引导标志重新启动(删除-uia_exclude_ss引导标志)

  3. 转到步骤4(第二次跳过此步骤)

  4. 使用“导出”按钮在桌面上生成USBPorts.kext。将此文件复制到EFI/CLOVER/kexts/Other

  5. 您现在可以执行清理并删除不必要的文件:

  • 删除自定义引导标志(-uia_exclude_ss -uia_exclude_hs uia_include = x
  • 删除USBInjectAll.kext
  • 删除三叶草重命名(XHC,EH01,EH02)

USBPorts_z370_0xA2AF

FAQ

Q. 什么是USBPorts.kext?
A. 它是一个Codeless Kernel Extension 用于注入USB端口,让所有的USB端口都能正常工作
Q. 我还需要SSDT-UIAC.aml
A. 不,这个方法生成的是一个空壳的无代码的kext驱动

核心功能:给FrameBuffer打补丁

随着macOS Mojave的发行,之前的通过CLOVER-KextsToPatch通过修补帧缓冲的方法已经失效了,尤其是SkyLake及以后架构。您现在必须使用Lilu + WhateverGreen+FB Patcher的方式来驱动您的显卡。

初步动作

  • 删除FakePCIID IntelGraphicsFixup,NvidiaGraphicsFixup,ShikiCoreDisplayFixup

  • 关闭Clover里面关于Graphics注入的参数,这些参数包括:

    • config.plist/Graphics/Inject/ATI=NO
    • config.plist/Graphics/Inject/Intel=NO
    • config.plist/Graphics/Inject/NVidia=NO
    • config.plist/Graphics/ig-platform-id=
    • config.plist/Devices/FakeID/IntelGFX=
  • 关闭Clover里面关于DSDT的修复:

    • AddHDMI
    • FixDisplay
    • FixIntelGfx
    • AddIMEI
  • 禁用UseIntelHDMI

  • 移除boot argument参数:-disablegfxfirmware

  • 移除IGPUHDMI部分的全部内容,包括:

    • config.plist/Devices/Arbitrary
    • config.plist/Devices/Properties
    • config.plist/Devices/AddProperties
  • 从以下位置删除任何与IGPUHDMI相关的SSDTDSDT

    • CLOVER/ACPI/patched

使用方法

  1. 打开应用:Intel FB Patcher.app
  2. 通过菜单项:Framebuffer选择macOS 10.13.6 (17G2112) / macOS 10.14(18A389)FB-Patcher_Select
  3. 选择显卡的次代,比如Intel HD Graphics 620就需要选择Kaby LakeIntel HD Graphics 520就需要选择Skylake等等,之后选择Platform-id,这个就是能正确驱动你的显卡的id,至于这个ID如何确定,请参考黑苹果必备:Intel核显platform ID整理及smbios速查表。欲了解更多信息,请阅读使用WhateverGreen英特尔帧缓冲修补指南。中文版:Coffee Lake帧缓冲区补丁及UHD630 Coffee Lake ig-platform-id数据整理
  4. 点击Patch按钮,在Patch Options-General选项中勾选Auto Detect ChangesAll,Connectors,VRAM这几个选项;
  5. Patch Options-Advanced选项中勾选DVMT pre-alloc 32 MBVRAM 2048 MBEnable HDMI20(4K)
  6. 勾选Device id,选择platfrom-id相对应的设置id,这通常跟你的显卡名称相吻合;
  7. 点击Generate Patch生成显卡驱动补丁;
  8. 通过菜单项:File-Export-config.plist,将该补丁导出到CLOVER的配置文件中;

几个例子:

  • Coffee Lake(八代)平台:Intel UHD Graphics 630(Mobile)3E9B-A3E9B-B3E9B-C通过菜单项:File-Export-config.plist,将该补丁导出到CLOVER的配置文件

  • Kabe Lake(七代)平台Intel HD Graphics 620/Intel UHD Graphics 620(Mobile)5916-A5916-B5916-C通过菜单项:File-Export-config.plist,将该补丁导出到CLOVER的配置文件

  • Sky Lake(六代)平台:Intel HD Graphics 530(Mobile)191B-A191B-B191B-C通过菜单项:File-Export-config.plist,将该补丁导出到CLOVER的配置文件

  • Haswell(四代)平台:Intel HD Graphics 4600(Mobile)0A26-A0A26-B0A26-C通过菜单项:File-Export-config.plist,将该补丁导出到CLOVER的配置文件

本教程会随着新版本新增功能持续更新

下载链接

http://headsoft.com.au/download/mac/FBPatcher.zip

扩展阅读

macOS High Sierra 10.13.6(17G2112)/Mojave ig-platform-id数据整理

鸣谢

QQ群列表:

688324116 一起黑苹果 2000人群 已满
331686786 一起吃苹果 2000人群 尚有空位
257995340 一起啃苹果 2000人群 尚有空位
891434070 Mojave黑苹果交流群 2000人群 尚有空位
939122730 Mojave黑苹果交流II群 2000人群
891677227 黑果小兵高级群 2000人群 尚有空位
943307869 黑果小兵高级群II 2000人群 新开群,欢迎踊跃加入
943181023 联想小新Air黑苹果交流群 500人群 非专用机型请勿加入

-------------本文结束感谢您的阅读-------------
请站长喝杯咖啡吧 ´◡`
0%