apple

說明:G2020 指令集只有Intel® SSE4.1, Intel® SSE4.2,奔騰賽揚卻沒有AVX2指令集,所以一般都是用 i 系列的 CPU 來架構黑果。若是不換CPU的情況下,須加載以下三個KEXT 才可以。

以上提供參考。


https://www.imacpc.net/archives/2801


1-1 收集 OPENCORE 文件

OC-ACPI、Drivers、Kexts、Tools 已經內建許多工具,我們只保留自己所需要的工具即可。

ACPI:加入SSDT修補程式。Coffeelake版本

Tools:加入調適工具程式


framebuffer-con1-alldata = 02020A00 00040000 C7030000

framebuffer-con2-alldata = 03040800 00080000 C7030000


framebuffer-con0-alldata = 01060900 00040000 C7030000

framebuffer-con1-alldata = 02040A00 00080000 C7030000


framebuffer-con0-alldata = 01050900 00080000 C7030000


framebuffer-con0-alldata = 01010900 00080000 C7030000


framebuffer-con0-alldata = 01050900 00040000 C7030000

framebuffer-con2-alldata = 03040800 00080000 C7030000


framebuffer-con1-alldata = 01050900 00040000 87010000

framebuffer-con2-alldata = 02040A00 00080000 87010000




顯示介面類型


4代

framebuffer-patch-enable (啓用語義補丁的總開關)

framebuffer-framebufferid (要修改的 FB,一般保持默認即可)

framebuffer-mobile

framebuffer-pipecount

framebuffer-portcount

framebuffer-memorycount

framebuffer-stolenmem(給BIOS中DVMT增加內存大小):

framebuffer-fbmem

framebuffer-unifiedmem (核顯顯存大小,調大一點可能能解決花屏)

framebuffer-cursormem (Haswell 專用補丁)

framebuffer-flags

framebuffer-camellia (集成顯示控制器,僅與白蘋果相關)

framebuffer-conX-enable (啓用埠爲 X 的修改)

framebuffer-conX-index

framebuffer-conX-busid

framebuffer-conX-pipe

framebuffer-conX-type

framebuffer-conX-flags

framebuffer-conX-alldata (完全替換埠信息)

framebuffer-conX-YYYYYYYY-alldata (在當前 FB 與 YYYYYY 匹配時完全替換埠信息)

X 是埠索引。


部分補丁解釋:

再次重申,所有 DATA 數據類型需要將數據兩兩一組倒過來填入,例如:0x16260006 轉換之後就是這樣 06002616 填入

當設置內存大小時,你可能想知道 DATA 是怎麼計算出來的。用 framebuffer-fbmem 參數舉例,當需要設置爲 48M 之後它應填入的值是:00000003,這個也是轉換後的值,所以原來的值應當是 03000000,這是一個 16 進位的數字,轉換成 10 進位是 50331648。我們知道 1M=1024KB,1KB = 1024B,所以,我們把轉換成十進位之後的數字 50331648 除以 1024 然後再除以 1024,得出的結果就是 48 了,所以這串數字代表的就是 48M。

點擊這裡前往進位轉換網頁

AAPL,ig-platform-id(設備平台 id,直接影響顯卡是否能成功驅動): 舉例一些常用筆記本的核顯 id(均爲 DATA 數據類型)

device-id(設備 id,可能是能讓黑蘋果正確顯示設備信息,直接使用無需倒序):

framebuffer-patch-enable(是否啓用 framebuffer 補丁,當然啓用啊,不啓用的話這篇文章還有什麼用處):

framebuffer-stolenmem(給 BIOS 中 DVMT 添加一點內存大小,會影響高分屏,這個值必須大於 32M,也不應該過高):

一般 1080P 屏幕的話,設置爲 48M 就夠用了:00003001

當你的筆記本電腦屏幕是 2k,你可以設置爲 64M:00000004

4K 屏的話,要設置爲 128M:00000008
如果你的 BIOS 中可以設置 DVMT 的話並且你設置成爲 128M 之後,可以不需要設置這個屬性,或者這個屬性設置小一點:00003001 保險起見,高分屏直接設置成 128M 比較穩,並且保證在 BIOS 能設置 DVMT 的情況下設置在 64M 或以下 (PS:這一部分可能有誤,但是最後一句保險起見,高分屏直接設置成 128M 比較穩是試驗過的)

framebuffer-unifiedmem(核顯顯存大小,調大一點可能能解決花屏):

2048M:00000080

3072M:000000C0

framebuffer-cursormem(翻譯成中文就是光標內存,會影響高分屏,比如高分屏花屏可能就是這個值不夠大):

framebuffer-fbmem(framebuffer 內存大小,會影響高分屏):

framebuffer-conN-enable(N 爲數字,顯卡第 N 個輸出接口是否啓用,1 爲啓用,0 爲不啓用):

framebuffer-conN-type(N 爲數字,顯卡第 N 個輸出接口的類型):

HDMI 輸出:00080000

DP 輸出:0004000

framebuffer-conN-index(個人理解,顯卡第 N 個輸出接口的優先級,或者說是設置第 N 個輸出口的位置): 這個按個人需要設置,如果需要屏蔽這個輸出口,可以設置成 FFFFFFFF,也就是最大的數字,讓它足夠靠後,這樣就達到了屏蔽效果!

HDMI 高分屏 60 fps 方案

爲核顯添加 enable-hdmi20 屬性,或使用 -cdfon 啓動參數代替,否則將會黑屏。


添加 Lilu + WhateverGreen 驅動

下載 Lilu 和 WhateverGreen驅動,選擇 release 版本,解壓並將.kext 文件置於 Clover 的 kexts/Other 文件夾中

若你想要查看調試輸出信息,請選擇兩者的的 debug 版本

獲取 IGPU 的設備路徑

下載並使用 gfxutil工具,將 gfxutil 文件解壓至桌面,打開終端輸入如下代碼:    

其中 DevicePath 後面顯示的 PciRoot(0x0)/Pci(0x2,0x0) 就是 IGPU 的設備路徑

ig-platform-id(核心步驟)

我們需要制定正確的 Framebuffer,一組正確的正確的 FB 應當正確地包含了可用的輸出埠以及該核顯的其他屬性,所以我們需要注入屬性。

打開 config.plist,並在 Device 中的 Properties 添加以下內容:

AAPL,ig-platform-id 或 AAPL,snb-platform-id(僅適用於 Sandy Bridge 微架構)

設備 IGPU 的 device-id(需要仿冒時)

設備 IMEI 的 device-id(需要仿冒時)

部分補丁設定(必要時)

注意逗號區分中英文!!!

上述屬性應使用十六進位代碼表示,並且需要 兩兩一組 倒序 輸入,

如 0x0A260006 應該用 0600260A 表示

很多人問倒序怎麼倒的,這裡畫個圖解釋一下

0x 指 16 進位,在這咱可以不管,提取出後面的 0A260006,

兩兩一組 0A 26 00 06 過程如下圖所示,最終得到 0600260A

下面分別提供了適用於不同微架構的常用 IGPU 和 IMEI 屬性模版。


選擇一個適合的 FB。首先試試推薦值,如果失敗,則逐個嘗試其他值。在尋找合適的 FB 時,可以臨時通過啓動參數設置,此時 Properties 部分中的 FB 設置將被忽略。如: igfxframe=0x0166000B

啓動參數設置 igfxframe

注意!此處格式與 Properties 部分的格式不同,這裡應正序 輸入並保留 0x 前綴,如上例所示。

HD 2000/3000(Sandy Bridge 微架構,下文簡稱 SNB)

支持 macOS 10.7 至 10.13.6,本文適用於 10.8 到 10.13.6。在舊版本系統上請使用傳統驅動方式。從 macOS 10.14 起,HD 2000/3000 已經不再支持。

此方法無法開啓 Metal。

SNB 微架構可用的 FB 列表:(點擊此處以展開)

推薦的 FB 配置:

0x00030010(桌面版,預設值)

0x00010000(移動版,預設值)

通常 SNB 平台無需指定 FB,與 board-id 相對應的一組 FB 將會被自動使用。不過,在使用不基於 SNB 平台的 SMBios 時,則需指定 FB。(如使用 HD 3000 + 基於 Ivy Bridge 平台的 MacBookPro9,1 時,則需指定 FB)

注意!爲 SNB 平台指定 FB 時,屬性名應爲 AAPL,snb-platform-id,這與其他平台不同。

對於桌面版,需設定(仿冒)device-id 爲 26010000。

在基於 7 系列晶片組 的主板上使用基於 SNB 微架構的處理器時(如在 Z77 晶片組上使用基於 SNB 微架構的 i7-2600 時),需設定(仿冒)IMEI 的 device-ID 爲 3A1C0000。

HD 2500/4000(Ivy Bridge 微架構,下文簡稱 Ivy)

支持 macOS 10.8 或更新版本。

Capri (Ivy) 可用的 FB 列表:(點擊此處以展開)

推薦的 FB 設置:

0x0166000A(桌面版,預設值)

0x01620005(桌面版)

0x01660003(移動版,預設值)

0x01660009(移動版)

0x01660004(移動版)

在基於 6 系列晶片組 的主板上使用基於 Ivy 微架構的處理器時(如在 Z68 晶片組上使用基於 Ivy 微架構的 i7-3770 時),需設定(仿冒)IMEI 的 device-ID 爲 3A1E0000。

Intel HD Graphics 4200-5200(Haswell 微架構)

支持 macOS 10.9 或更新版本。

Azul (Haswell) 可用的 FB 列表:(點擊此處以展開)

推薦的 FB 設置:

0x0D220003(桌面版,預設值)

0x0A160000(移動版,預設值)

0x0A260005(移動版,推薦)

0x0A260006(移動版,推薦)

對於 桌面版 HD 4400 以及所有移動版核顯,需設定(仿冒)IGPU 的 device-id 爲 12040000。

HD 5300-6300(Broadwell 微架構,下文簡稱 BDW)

支持 macOS 10.10.2 或更新版本。

BDW 平台可用的 FB 列表:(點擊此處以展開)

推薦的 FB 設置:

0x16220007(桌面版,預設值)

0x16260006(移動版,預設值)。

HD 510-580(Skylake 微架構,下文簡稱 SKL)

支持 macOS 10.11.4 或更新版本。


SKL 平台可用的 FB 列表:(點擊此處以展開)

推薦的 FB 設置:

0x19120000(桌面版,預設值)

0x19160000(移動版,預設值)

HD 610-650(Kaby Lake 微架構,下文簡稱 KBL)

支持 macOS 10.12.6 或更新版本。

KBL 平台可用的 FB 列表:(點擊此處以展開)

推薦的 FB 設置:

0x59160000(桌面版,預設值)

0x59120000(桌面版,推薦)

0x591B0000(移動版,預設值)

對於 UHD 620 (Kaby Lake Refresh需設定(仿冒)IGPU 的 device-id 爲 16590000

UHD 630(Coffee Lake 微架構,下文簡稱 CFL)

支持 macOS 10.14 或更新版本。

CFL 平台可用的 FB 列表:(點擊此處以展開)

推薦的 FB 設置:

0x3EA50000(桌面版,預設值)

0x3E9B0007(桌面版,推薦)

0x3EA50009(移動版,預設值)

注意:使用第九代 Coffee Lake R 處理器時,需設定(仿冒)IGPU 的 device-id 爲 923E0000。(如下所示)

從 macOS Mojave 10.14.4 起,無需再設定此參數!

使用 WEG 自定義 FB 和埠補丁

一般來說 WhateverGreen 會自動完成大部分工作,不需要任何額外的 Framebuffer 補丁。

當出現以下情況可能需要使用額外的 Framebuffer 補丁:

在 BIOS 中無法設置超過 32M 的 DVMT(framebuffer-stolenmem /framebuffer-fbmem)

爲 4K 屏設定更大的 VRAM(-unifiedmem)

禁用獨顯 (disable-external-gpu)

啓用支持 4k 的像素時鐘補丁(enable-hdmi20)

禁用連接器以啓用睡眠(framebuffer-pipecount /framebuffer-portcount/framebuffer-conX-type = -1)

更改連接器類型以匹配您的系統埠(framebuffer-conX-type)

等等


4640

191B0000

AAPL,ig-platform-id:00001219

device-id:12190000

AAPL,GfxYTile :01000000


01050900 00040000 87010000

02040A00 00040000 87010000


framebuffer-con3-alldata  01061000 080000 87010000

framebuffer-con3-enable 01000000

framebuffer-con1-alldata  02050900 080000 87010000

framebuffer-con1-enable 01000000

framebuffer-con2-alldata  03041000 080000 87010000

framebuffer-con2-enable 01000000

framebuffer-fbmem 00009000

framebuffer-patch-enable 01000000

framebuffer-stolenmem 00003001 ##32M

framebuffer-stolenmem 00000004 ##64M

framebuffer-unifiedmem 00000060




AAPL,ig-platform-id:00001619

device-id:16190000


推荐的 FB 设置:0x19120000(桌面版,缺省值);0x19160000(移动版,缺省值)。

D: 0x19120000, STOLEN: 34 MB, FBMEM: 21 MB, VRAM: 1536 MB, Flags: 0x0000110F

TOTAL STOLEN: 56 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 124 MB, MAX OVERALL: 125 MB (131608576 bytes)

Model name: Intel HD Graphics SKL CRB

Camelia: CameliaDisabled (0), Freq: 1388 Hz, FreqMax: 1388 Hz

Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3

[255] busId: 0x00, pipe: 0, type: 0x00000001, flags: 0x00000020 - ConnectorDummy

[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP

[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP


FF000000 01,000,000 20,000,000

01050900 00040000 87010000

02040A00 00040000 87010000


D: 0x19160000, STOLEN: 34 MB, FBMEM: 21 MB, VRAM: 1536 MB, Flags: 0x0000090F

TOTAL STOLEN: 56 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 124 MB, MAX OVERALL: 125 MB (131608576 bytes)

Model name: Intel HD Graphics SKL CRB

Camelia: CameliaDisabled (0), Freq: 1388 Hz, FreqMax: 1388 Hz

Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3

[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS

[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP

[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP

00000800 02000000 98000000

01050900 00040000 87010000

02040A00 00040000 87010000

https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.IntelHD.en.md

ecommended framebuffers: