Kích hoạt Intel iGPU (Intel Quick Sync, Framebuffer Patch, Connector Types Patch)


Kích hoạt Intel Quick Sync cho PC

Nói nôm na về Intel Quick Sync thì nó là 1 công nghệ của nhà Intel giúp tận dùng sức mạnh của Intel HD Graphics nhằm hỗ trợ xử lí nhanh các tác vụ render hình ảnh; render, encoder, decoder video còn về HDMI port và HDMI sound thì chắc bạn cũng không cần phải giải thích nữa rồi


Để bắt đầu, bạn cần mount EFI rồi mở config.plist lên nha.


Thêm bootarg:


Với Clover Bootloader: bạn vào Boot/Arguments thêm shikigva=16 hoặc shikigva=80 nếu dùng AMD GPU + iGPU, khi chỉ dùng AMD GPU thì thêm shikigva=128 còn dùng shikigva=256 khi máy bạn chỉ có NVIDIA GPU.


Với OpenCore Bootloader: bạn vào NVRAM/Add/7C436110-AB2A-4BBB-A880-FE41995C9F82/boot-args: bạn thêm shikigva=16 hoặc shikigva=80 nếu dùng AMD GPU + iGPU, khi chỉ dùng AMD GPU thì thêm shikigva=128 còn dùng shikigva=256 khi máy bạn chỉ có NVIDIA GPU.


Thêm device cho iGPU:


Các bạn hãy thay thế AAPL,ig-platform-id và device-id sao cho đúng với thế hệ cpu của mình như dưới:


Với Clover Bootloader: bạn vào Devices/Properties, các bạn thêm devices “PciRoot(0)/Pci(0x02,0)” kèm

Properties Key: AAPL,ig-platform-id

Properties Value: #ig-platform-id

Value Type: DATA


Properties Key: device-id

Properties Value: #deviceid

Value Type: DATA


Với OpenCore Bootloader: bạn vào DeviceProperties/Add, các bạn thêm devices “PciRoot(0)/Pci(0x02,0)” kèm

Properties Key: AAPL,ig-platform-id

Properties Value: #ig-platform-id

Value Type: DATA


Properties Key: device-id

Properties Value: #deviceid

Value Type: DATA


Thế Hệ CPU

AAPL,ig-platform-id

device-id

Sandy Bridge

00000500

02010000

Ivy Bridge

07006201

62010000

Haswell

04001204

12040000

Skylake

01001219

 

Kaby Lake + Coffee Lake(8xxx)

03001259

12590000

Coffee Lake(9xxx)+ Comet Lake

0300923E

923E0000


Sau khi nhập xong, các bạn save config.plist, vào BIOS tìm rồi enable Integrated Graphics/IGPU Multi-Monitor lên sau đó boot lại vào macOS.

Để biết xem đã được kích hoạt thành công hay chưa thì mở Hackintool kiểm tra xem  dòng VDA Decoder nếu được như hình thì đã kích hoạt thành công.

Framebuffer patch

Để bắt đầu, bạn cần thay đổi 1 vài thứ như sau:


Vào BIOS tìm Graphics Memory Allocation (DVMT Pre-Allocated) rồi chọn 64MB, 96MB hoặc lớn hơn tuỳ vào độ phân giải màn hình hoặc BIOS của bạn cho phép. Nếu BIOS của bạn không có option này thì bạn cần phải patch, mình sẽ hướng dẫn ở dưới.

Các bạn hãy tìm rồi xoá các kexts sau trong /EFI/CLOVER/kexts/Other/ hoặc /EFI/OC/Kexts/ nếu có:

— IntelGraphicsFixup.kext

— NvidiaGraphicsFixup.kext

— CoreDisplayFixup.kext

— Shiki.kext

— IntelGraphicsDVMTFixup.kext

— AzulPatcher4600.kext

— AppleBacklightFixup.kext,

— FakePCIID_Intel_HD_Graphics.kext

Và chắc chắn bạn đã có sẳn kext Lilu vào Whatevergreen rồi nhé!

Untick các Clover's DSDT fixes trong config.plist/ACPI/DSDT/Fixes với Clover:

— AddHDMI

— FixDisplay

— FixIntelGfx

— FixHDA

Xoá bootarg -igfxvesa

Xoá config.plist/Devices/FakeID/IntelGFX và untick config.plist/Devices/UseIntelHDMI với Clover.

Xoá ig-platform-id trong config.plist/Graphics và untick Inject Intel với Clover.

Xoá hết những gì có trong Arbitrary và Properties config.plist/Devices hoặc DeviceProperties/Add khi dùng OpenCore.


Tìm hiểu các bản vá (Patch)

Mình sẽ giải thích từng phần cho các bạn hiểu rõ hơn các key trong framebuffer patch 


AAPL, ig-platform-id có chức năng định danh tên iGPU bạn đang cần patch (Bắt buộc)

device-id có chức năng định danh tên thiết bị bạn cần patch (chỉ yêu cầu với 1 vài phần cứng)

framebuffer-patch-enable cần có khi các bạn cần áp dụng các bản vá sau:


framebuffer-fbmem (data: 00009000) và framebuffer-stolenmem(data: 00003001) chỉ cần khi BIOS của bạn không cho phép chỉnh DVMT lên 64MB hoặc lớn hơn

framebuffer-conX-busid có chức năng thay đổi giá trị BusID cho conX

framebuffer-conX-enable có chức năng kích hoạt thay đổi cho conX khi có thêm patch cho conX

framebuffer-conX-pipe có chức năng thay đổi giá trị pipe, bạn nên chỉnh nó về 12000000 nhằm fix lỗi tự động restart sau khi kết nối HDMI

framebuffer-conX-type có chức năng thay đổi cổng kết nối, data 00080000 là cổng HDMI, còn với cổng DP có data là 00040000


Các key mình nhắc đến ở trên là những key quan trọng nhất và cần có trong 1 framebuffer patch, nhưng nó còn rất nhiều key nữa các bạn có thể quan tâm


Key: framebuffer-unifiedmem giúp các bạn "tăng" vram cho iGPU cho đẹp là chính, nó chả giúp máy bạn có 1 hiệu năng tốt hơn đâu nhé! VD khi bạn dùng data 00000080 thì vram của iGPU hiện trong About This Mac sẽ là 2048 MB


Key: enable-hdmi20 có chức năng vá cổng HDMI 2.0 và màn hình 4K hoặc cao hơn (có thể dùng bootarg -cdfon thay thế)


Key: disable-external-gpu giúp disable card đồ hoạ rời (có thể dùng bootarg -wegnoegpu thay thế)


Key: enable-hdmi-dividers-fix nhằm sửa lỗi vòng lặp vô hạn khi dùng HDMI do tốc độ xung nhịp pixel cao hơn trên các nền tảng Skylake hoặc mới hơn (có thể dùng bootarg -igfxhdmidivs thay thế)


Key: enable-dpcd-max-link-rate-fix nhằm để áp dụng sửa chữa tỷ lệ liên kết tối đa cho màn hình gắn liền (Dell XPS 15 9570, Dell Vostro 3578,...) + bạn cũng có thể thay đổi thủ công tỷ lệ liên kết tối đa với key dpcd-max-link-rate, dùng data 14000000 cho màn hình 4K còn data 0A000000 cho màn hình fHD, nếu không có key này thì data 14000000 sẽ được ưu tiên (có thể dùng bootarg -igfxmlr thay thế)


Key: enable-lspcon-support giúp bật xuất hình từ DP sang HDMI trên các nền tảng Skylake hoặc mới hơn + bạn cần dùng thêm key framebuffer-conX-has-lspcon nhằm giúp trình điều kiển biết cổng kết nối nào có kết nối với LSPCON + nếu bạn cần xuất hình LS(DP sang HDMI 1.4) thì bạn cần thêm framebuffer-conX-preferred-lspcon-mode với data là 00000000 còn với PCON (DP sang HDMI 2.0) thì dùng data 01000000, nếu bạn không thêm key này thì mode PCON được ưu tiên (có thể dùng bootarg -igfxlspcon thay thế)


Key: force-online để buộc trạng thái trực tuyến trên tất cả các màn hình, cụ thể hơn thì có có thể giúp các bạn fix lỗi wake bị đen màn trên iGPU từ macOS Catalina 10.15.4+ (có thể dùng bootarg igfxonln=1 thay thế)


Như vậy là mình đã giải thích khá đầy đủ phần tác dụng của 1 vài key, các bạn hãy linh hoạt sử dụng nó để kích hoạt thành công HDMI port cũng như các cổng kết nối khác nhé.


ig-platform-id và device-id


Ờ đây mình sẽ cung cấp hệ hex luôn cho mọi người đỡ xoắn với ở phần device-id, nếu bạn thấy có dấu "+" ở trước device-id thì bạn hãy thêm, còn có dấu "-" thì không bắt buộc nhé


Sandy Bridge:

Desktop: snb-platform-id 0x00030010

Laptop: snb-platform-id 0x00010000


Ivy Bridge

Desktop: ig-platform-id 0A006601

Laptop: ig-platform-id 03006601 (1366x768), 04006601 (1600x900), 09006601 (cho máy dùng màn hình có chuẩn kết nối eDP)


Lưu ý: Khi dùng 09006601 bạn sẽ không đủ cổng kết nối để xuất hình ra DP/HDMI cho nên bạn cần thêm thêm các patch sau, còn việc patch cổng xuất hình sẽ không có gì thay đổi nhé


Properties Key

Properties Value

Value Type

framebuffer-memorycount

02000000

Data

framebuffer-pipecount

02000000

Data

framebuffer-portcount

04000000

Data

framebuffer-stolenmem

00000004

Data

Haswell

Desktop: ig-platform-id 0300220D

Laptop: 

+ HD4200, HD4400 và HD4600: ig-platform-id 0600260A + device-id 12040000

+ HD5000, HD5100 và HD5200: ig-platform-id 0500260A


Lưu ý: Nếu bạn bị glitches thì hãy thêm key framebuffer-cursor với data 00009000


Broadwell

Desktop: ig-platform-id 07002216

Laptop: 

+ HD5300, HD5500 và HD6000: ig-platform-id 06002616

+ HD5600: ig-platform-id 06002616 + device-id 26160000


Skylake

Desktop: ig-platform-id 00001219

Laptop:

+ HD510: ig-platform-id 00001B19 hoặc 00001619 + device-id 02190000

+ HD515, HD520, HD530 và HD540: ig-platform-id 00001619 hoặc 00001B19

+ HD550 và P530: ig-platform-id 00001619 (khuyến khích), 00001219, 00002619 hoặc 00001B19 + device-id 16190000 (khuyến khích), 12190000, 26190000, 1B190000


Kaby Lake, Kaby Lake - R, Amber Lake

Desktop: ig-platform-id 00001259

Laptop:

+ HD615, HD620, HD630, HD640 và HD650 (thêm nữa có thể hoạt động với UHD620): ig-platform-id 00001659 hoặc 00001B59 - device-id(không bắt buộc thêm) 1B590000 hoặc 16590000

+ UHD620: ig-platform-id 0000C087 + device-id C0870000


Coffee Lake

Desktop: ig-platform-id 07009B3E - device-id 00009B3E, 0000A53E, 0000923E, 0000913E

Laptop: ig-platform-id 00009B3E - device-id(với UHD620 hoặc cho UHD630 nữa) 9B3E0000


Ice Lake

Desktop: updating...

Laptop: ig-platform-id 0000528A


Comet Lake

Desktop: ig-platform-id 07009B3E

Laptop: 

+ Dùng UHD: ig-platform-id 0400A53E + device-id A53E0000, bạn có thể thử ig-platform-id với device-id của Coffee Lake(UHD620) nếu ig-platform-id và device-id này không hoạt động.


Vá cổng kết nối DP/HDMI cho iGPU


Trong phần hướng dẫn này mình sẽ không lấy những con iGPU trên laptop ra để làm ví dụ nhưng về cách patch là giống nhau nên các bạn hãy làm theo nhé! Nhưng đừng patch con0 là được vì thông thường nó đã được kết nối với màn hình gắn liền rồi


Ban đầu bạn cần mở config.plist lên bằng bất kì 1 app nào như Notepad, Wordpad,... rồi tìm đến key Devices hoặc DeviceProperties nếu dùng Opencore (config mình lấy làm ví dụ đây là từ config.plist gốc trong bộ cài dùng OpenCore)


...

<key>DeviceProperties</key>

<dict>

<key>Add</key>

<dict>

<key>PciRoot(0x0)/Pci(0x1b,0x0)</key>

<dict>

<key>layout-id</key>

<data>

AQAAAA==

</data>

</dict>

</dict>

<key>Delete</key>

<dict/>

</dict>

...

Sau đây mình sẽ cần thêm Properties/Add/PciRoot(0x0)/Pci(0x2,0x0) để bắt đầu việc patch.


...

<key>DeviceProperties</key>

<dict>

<key>Add</key>

<dict>

<key>PciRoot(0x0)/Pci(0x2,0x0)</key>

<dict>

<key>AAPL,ig-platform-id</key>

<data>

BwCbPg==

</data>

<key>device-id</key>

<data>

mz4AAA==

</data>

<key>framebuffer-patch-enable</key>

<data>

AQAAAA==

</data>

</dict>

</dict>

<key>Delete</key>

<dict/>

</dict>

...


Ban đầu thì bạn chỉ việc thêm 3 key như trên, sau đó chúng ta chỉ việc thêm ig-platform-id, device-id vào ở hệ base64 là được. Tức bạn cần chuyển ig-platform-id, device-id,... ở hệ hex sang base64 rồi dán vào <data>...</data> là được


VD: mình patch cho I5-10400 thì sẽ phải dùng ig-platform-id và device-id(tuỳ máy) của Comet Lake

ig-platform-id là 0900A53E chuyển thành base64 được BwCbPg== 

device-id là 9E3B0000 chuyển thành base64 được mz4AAA==

còn với framebuffer-patch-enable thì data đã là hex 01000000 chuyển thành base64 sẽ đc AQAAAA==


Như vậy thì ta đã được như sau:


...

<key>DeviceProperties</key>

<dict>

<key>Add</key>

<dict>

<key>PciRoot(0x0)/Pci(0x2,0x0)</key>

<dict>

<key>AAPL,ig-platform-id</key>

<data>

BwCbPg==

</data>

<key>device-id</key>

<data>

mz4AAA==

</data>

<key>framebuffer-patch-enable</key>

<data>

AQAAAA==

</data>

</dict>

</dict>

<key>Delete</key>

<dict/>

</dict>

...


Tiếp theo chúng ta sẽ cùng thay đổi thông số cổng xuất hình ban đầu sau cho phù hợp với mainboard. Đây mình sẽ thêm 3 patch cho mỗi conX như sau, và các type mình sẽ chuyển sang HDMI, pipe sang 12 hết vì ban đầu mình cần cổng HDMI đã và không thể thiết patch framebuffer-conX-enable để quyết định đến việc áp dụng thay đổi cho từng conX


...

<key>Devices</key>

<dict>

...

<key>Properties</key>

<dict>

<key>PciRoot(0x0)/Pci(0x2,0x0)</key>

<dict>

<key>AAPL,ig-platform-id</key>

<data>BwCbPg==</data>

<key>device-id</key>

<data>mz4AAA==</data>

<key>framebuffer-patch-enable</key>

<data>AQAAAA==</data>

<key>framebuffer-con1-enable</key>

<data>AQAAAA==</data>

<key>framebuffer-con1-pipe</key>

<data>EgAAAA==</data>

<key>framebuffer-con1-type</key>

<data>AAgAAA==</data>

<key>framebuffer-con2-enable</key>

<data>AQAAAA==</data>

<key>framebuffer-con2-pipe</key>

<data>EgAAAA==</data>

<key>framebuffer-con2-type</key>

<data>AAgAAA==</data>

<key>framebuffer-con3-enable</key>

<data>AQAAAA==</data>

<key>framebuffer-con3-pipe</key>

<data>EgAAAA==</data>

<key>framebuffer-con3-type</key>

<data>AAgAAA==</data>

</dict>

</dict>

...

</dict>

...

Đây là danh sách các loại cổng kết nối phổ biến:


DATA

conX-type

Note

02 00 00 00

LVDS and eDP

Laptop displays

10 00 00 00

VGA

Unsupported in 10.8 and newer

00 04 00 00

DisplayPort

USB-C display-out are DP internally

01 00 00 00

DUMMY

Used when there is no physical port

00 08 00 00

HDMI

 

80 00 00 00

S-Video

 

04 00 00 00

DVI (Dual Link)

 

00 02 00 00

DVI (Single Link)

 

Patch tiếp theo bạn cần thêm đó là BusID, bạn hãy dựa vào nhưng BusID dưới đây rồi điền vào, lưu config lại sau đó boot lại cho đến khi cổng đó hoạt động được rồi thôi

VGA/DP: 02000000, 04000000, 05000000, 06000000

DVI/HDMI: 01000000, 02000000, 04000000, 05000000, 06000000


Các bạn có thể thêm 1 vài patch sau để có thể kích hoạt được cổng xuất hình nhé, tác dụng của patch thì mình đã ghi ở trên


...

<key>Devices</key>

<dict>

...

<key>Properties</key>

<dict>

<key>PciRoot(0x0)/Pci(0x2,0x0)</key>

<dict>

<key>AAPL,ig-platform-id</key>

<data>BwCbPg==</data>

<key>device-id</key>

<data>mz4AAA==</data>

<key>framebuffer-patch-enable</key>

<data>AQAAAA==</data>

<key>framebuffer-con1-busid</key>

<data>AQAAAA==</data>

<key>framebuffer-con1-enable</key>

<data>AQAAAA==</data>

<key>framebuffer-con1-pipe</key>

<data>EgAAAA==</data>

<key>framebuffer-con1-type</key>

<data>AAgAAA==</data>

<key>framebuffer-con2-busid</key>

<data>AQAAAA==</data>

<key>framebuffer-con2-enable</key>

<data>AQAAAA==</data>

<key>framebuffer-con2-pipe</key>

<data>EgAAAA==</data>

<key>framebuffer-con2-type</key>

<data>AAgAAA==</data>

                                <key>enable-hdmi20</key>

<data>AQAAAA==</data>

<key>enable-hdmi-dividers-fix</key>

<data>AQAAAA==</data>

//Nếu máy bạn có phần cứng dùng LSPCON thì bạn hãy bật nó lên

<key>enable-lspcon-support</key>

<data>AQAAAA==</data>

<key>framebuffer-con1-has-lspcon</key>

<data>AQAAAA==</data>

<key>framebuffer-con2-has-lspcon</key>

<data>AQAAAA==</data>

</dict>

</dict>

...

</dict>

...

VD: mình đã kích hoạt thành công 1 màn hình ở con1, và mình đang cần thêm 1 màn hình nữa thì chỉ cần giữ nguyên patch của con1 rồi thay BusID tiếp cho đến khi 1 trong 2 con2 và con3 hoạt động là được, như ở đây thì mình đã kích hoạt được cổng xuất hình thứ 2 rồi

Nếu bạn xài thêm màn thứ 3 nữa thì các bạn cũng làm tiếp như vậy thôi!


Như vậy là mình đã hướng dẫn xong cho các bạn những nội dung như ở tiêu đề.

Chúc các bạn thành công!

Để tìm hiểu thêm về Hackintosh. Hãy tham gia group HSVN - Hackintosh Vietnam của chúng tôi.

Nhận xét