Nội dung bài viết
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 các bước sau, bạn cần mount efi rồi mở config.plist lên nha.
Kích hoạt Intel Quick Sync cho PC
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ế #ig-platform-id và #deviceid sao cho đúng với thế hệ cpu của mình như dưới.
<Thế hệ cpu>: <ig-platform-id> – <device-id>
- Sandy Bridge: 00000500 – 02010000
- Ivy Bridge: 07006201 – 62010000
- Haswell: 04001204 – 12040000
- Skylake: 01001219 – (xoá key device-id)
- Kabylake + Coffeelake(8xxx): 03001259 – 12590000
- Coffeelake(9xxx): 0300923E – 923E0000
- 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

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 /System/System/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á

Trên là 1 phần ví dụ giúp các bạn dễ hình dung hơn về việc patch phần này, mình sẽ giải thích từng phần cho các bạn hiểu thêm
Key: AAPL, ig-platform-id có chức năng định danh tên iGPU bạn đang cần patch (Bắt buộc)
Key: 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)
Key: framebuffer-patch-enable cần có khi các bạn cần áp dụng các bản vá sau:
Key: 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
Key: framebuffer-conX-busid có chức năng thay đổi giá trị busid cho conX
Key: framebuffer-conX-enable có chức năng kích hoạt thay đổi cho conX khi có thêm patch cho conX
Key: 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
Key: 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é
1. Sandy Bridge
- Desktop: snb-platform-id 0x00030010
- Laptop: snb-platform-id 0x00010000

2. Ivy Bridge
- Desktop: ig-platform-id 0A006601
- Laptop: ig-platform-id 03006601 (1366×768), 04006601 (1600×900), 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é

3. 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
4. Broadwell
- Desktop: ig-platform-id 07002216
- Laptop:
+ HD5300, HD5500 và HD6000: ig-platform-id 06002616
+ HD5600: ig-platform-id 06002616 + device-id 26160000

5. 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

6. 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ể work 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

7. 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

8. Ice Lake
- Desktop: updating…
- Laptop: ig-platform-id 0000528A
9. 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 work
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 hackintosh.vn nhé, đang dùng Clover)
...
<key>Devices</key>
<dict>
<key>Audio</key>
<dict>
<key>ResetHDA</key>
<true/>
</dict>
<key>FakeID</key>
<dict>
<key>IntelGFX</key>
<string></string> // Xoá 0x12345678 nếu có
</dict>
<key>LANInjection</key>
<true/>
<key>USB</key>
<dict>
<key>AddClockID</key>
<true/>
<key>FixOwnership</key>
<true/>
<key>Inject</key>
<true/>
</dict>
</dict>
...
đây mình sẽ cần thêm Properties/PciRoot(0x0)/Pci(0x2,0x0) để bắt đầu việc patch.
...
<key>Devices</key>
<dict>
<key>Audio</key>
<dict>
<key>ResetHDA</key>
<true/>
</dict>
<key>FakeID</key>
<dict>
<key>IntelGFX</key>
<string></string> // Xoá 0x12345678 nếu có
</dict>
<key>Properties</key>
<dict>
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data></data>
<key>device-id</key>
<data></data>
<key>framebuffer-patch-enable</key>
<data></data>
</dict>
</dict>
<key>LANInjection</key>
<true/>
<key>USB</key>
<dict>
<key>AddClockID</key>
<true/>
<key>FixOwnership</key>
<true/>
<key>Inject</key>
<true/>
</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-8400 thì sẽ phải dùng ig-platform-id và device-id(tuỳ máy) của coffee lake
ig-platform-id là 07009B3E 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>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>
</dict>
</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>
...
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>framebuffer-con3-busid</key>
<data>AQAAAA==</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>
<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>
<key>framebuffer-con3-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ì phải làm sao?

Thì đơn giản các bạn 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!
Kích hoạt âm thanh Intel iGPU HDMI
“Để làm tiếp các bước sau, đảm bảo bạn đã kích hoạt Intel HD Graphics với đầy đủ QE/CI và cổng xuất hình HDMI hoạt động và bạn cần kích hoạt âm thanh gốc thành công….” Xem thêm
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!
Nguồn tham khảo:
1. https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.IntelHD.en.md
2. https://www.tonymacx86.com/threads/guide-general-framebuffer-patching-guide-hdmi-black-screen-problem.269149/
Chỉnh được DVMT thì chỉ cần làm đến đoạn rename iGPU là đc rồi hả b, phần dưới là patch frame buffer bỏ qua luôn??
chỉ bỏ patch fbmen với stolenmem thôi chứ framebuffer thì vẫn phải patch thôi
vòng lặp vô hạn, dịch với dạch hài vcl :v
sao vậy anh
ảnh bị lỗi k xem được ad ơi!
đổi DNS sang opendns