Бинарный патч Framebuffer для Intel HD Graphics в Mojave
Бинарный патч фреймбуфера через KextsToPatch в Clover, на сегодняшний день больше не требуется в Mojave для Skylake и выше. Достаточно использовать последние версии Lilu + WhateverGreen.

Поддержка Coffee Lake графики в системах macOS
Началась с macOS 10.14 Beta 4 (18A336e) или macOS High Sierra 10.13.6 (17G2112).

Lilu + WhateverGreen
Проект WhateverGreen объединил в себе все наработки для решения проблем с графическими картами, сделав этот процесс более доступным для новичков, в большинстве случаев он в состоянии всё сделать сам, без участия пользователя (в состав WhateverGreen вошли: IntelGraphicsFixup, NvidiaGraphicsFixup, Shiki, IntelGraphicsDVMTFixup and CoreDisplayFixup).

Предварительно
1. Удалить:
— FakePCIID_Intel_HD_Graphics
— IntelGraphicsFixup
— NvidiaGraphicsFixup
— CoreDisplayFixup
— Shiki
2. Выключить всю инжекцию графики в Clover:
— 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 — удалить

Hj02qx9.png

3. Выключить DSDT фиксы в Clover:
— AddHDMI
— FixDisplay
— FixIntelGfx
— AddIMEI
4. Переключить или удалить UseIntelHDMI — NO
5. Удалить boot аргумент: -disablegfxfirmware
6. Удалить любые IGPU и HDMI записи в:
— config.plist/Devices/Arbitrary
— config.plist/Devices/Properties
— config.plist/Devices/AddProperties
7. Удалить все содержащие IGPU и HDMI записи в таблицах SSDT и DSDT:
— CLOVER/ACPI/patched — CLOVER/ACPI/patched
8. Переименование GFX0 -> IGPU делается автоматически, данный патч DSDT загрузчиком, можно выключить или удалить.

Здесь представлены рекомендуемые фреймы:

Gen 2: Sandy Bridge (Intel HD Graphics 2000/3000)
— S/L/E/AppleIntelSNBGraphicsFB.kext
— Support started with OS X 10.7.x and ended with macOS 10.13.6
— Metal support is not available
— device-id: 0x0102 0x0106 0x010A 0x0112 0x0116 0x0122 0x0126
— AAPL,snb-platform-id (desktop): 0x00030010 (default)
— AAPL,snb-platform-id (laptop): 0x00010000 (default)

Gen 3: Ivy Bridge (Intel HD Graphics 2500/4000)
— S/L/E/AppleIntelFramebufferCapri.kext
— Support started with OS X 10.8.x
— device-id: 0x0152 0x0156 0x0162 0x0166
— AAPL,ig-platform-id (desktop): 0x0166000A (default), 0x01620005
— AAPL,ig-platform-id (laptop): 0x01660003 (default), 0x01660009, 0x01660004

Gen 4: Haswell (Intel HD Graphics 4200-5200)
— S/L/E/AppleIntelFramebufferAzul.kext
— Support started with OS X 10.9.x
— device-id: 0x0D26 0x0A26 0x0A2E 0x0D22 0x0412
— AAPL,ig-platform-id (desktop): 0x0D220003 (default)
— AAPL,ig-platform-id (laptop): 0x0A160000 (default), 0x0A260005 (recommended)

Gen 5: Broadwell (Intel HD Graphics 5300-6300)
— S/L/E/AppleIntelBDWGraphicsFramebuffer.kext
— Support started with OS X 10.10.2
— device-id: 0x0BD1 0x0BD2 0x0BD3 0x1606 0x160E 0x1616 0x161E 0x1626 0x1622 0x1612 0x162B
— AAPL,ig-platform-id (desktop): 0x16220007 (default)
— AAPL,ig-platform-id (laptop): 0x16260006 (default)

Gen 6: Skylake (Intel HD Graphics 510-580)
— S/L/E/AppleIntelSKLGraphicsFramebuffer.kext
— Support started with OS X 10.11.4
— device-id: 0x1916 0x191E 0x1926 0x1927 0x1912 0x1932 0x1902 0x1917 0x193B 0x191B
— AAPL,ig-platform-id (desktop): 0x19120000 (default)
— AAPL,ig-platform-id (laptop): 0x19160000 (default)

Gen 7: Kaby Lake (Intel HD Graphics 610-650)
— S/L/E/AppleIntelKBLGraphicsFramebuffer.kext
— Support started with macOS 10.12.6
— device-id: 0x5912 0x5916 0x591B 0x591C 0x591E 0x5926 0x5927 0x5923 0x87C0
— AAPL,ig-platform-id (desktop): 0x59160000 (default)
— AAPL,ig-platform-id (laptop): 0x591B0000 (default)

Gen 8: Coffee Lake (Intel UHD Graphics 630)
— S/L/E/AppleIntelCFLGraphicsFramebuffer.kext
— Support started with macOS 10.13.6 (17G2112) / 10.14 beta 4 (18A336e)
— device-id: 0x3E9B 0x3EA5 0x3EA6 0x3E92 0x3E91 0x3E98
— AAPL,ig-platform-id (desktop): 0x3EA50000 (default), 0x3E9B0007 (recommended)
— AAPL,ig-platform-id (laptop): 0x3EA50009 (default)

Framebuffer Patching
Несмотря на всё, большая часть работы выполняется автоматически, и в большинстве случаев вам не нужно никаких дополнительных действий. Минимум что вы должны сделать — это выбрать ig-platform-id, подходящий для вашей системы, и поместить его в config.plist / Devices / Properties следующим образом:

oXCZva9.png

Вот некоторые причины, по которым вам придётся делать патч фреймбуфера:
— Настройка DVMT в BIOS для тех кто не может выставить больше 32 MB (framebuffer-stolenmem / framebuffer-fbmem)
— Отключение eGPU, дискретной графики в ноутбуках (disable-external-gpu)
— Включение pixel clock патча для поддержки 4K (enable-hdmi20)
— Изменение типов разъемов в соответствии с портами вашей системы (framebuffer-conX-type)

Типы патчей Framebuffer

1. Семантические

framebuffer-patch-enable (общие включение семантических патчей)
framebuffer-framebufferid (фрейм который патчим, по умолчанию текущий)

framebuffer-mobile
framebuffer-pipecount
framebuffer-portcount
framebuffer-memorycount
framebuffer-stolenmem
framebuffer-fbmem
framebuffer-unifiedmem (VRAM, не рекомендуется использовать этот патч)
framebuffer-cursormem (это поле специфичено только для Haswell)
framebuffer-flags
framebuffer-camellia (управление встроенным контроллером дисплея, это поле актуально только на настоящиках)

framebuffer-conX-enable (включение патчей для коннектора Х)
framebuffer-conX-index
framebuffer-conX-busid
framebuffer-conX-pipe
framebuffer-conX-type
framebuffer-conX-flags
framebuffer-conX-alldata (полностью заменить коннектор)
framebuffer-conX-YYYYYYYY-alldata (полность заменить коннектор, если текущий фрейм совпадает с YYYYYYYY)
Где Х - index коннектора.
Патчами alldata можно пропатчить сразу несколько коннекторов идущих подряд, записав их в одну строку и указав индекс коннектора с которого начат патч. Длина строки должна быть кратна 12 байтам (длине одного коннектора).

2. Бинарные

framebuffer-patchN-enable (включение патча номер N)
framebuffer-patchN-framebufferid (фрейм который патчим, по умолчанию текущий)
framebuffer-patchN-find
framebuffer-patchN-replace
framebuffer-patchN-count (число повторений паттерна в поиске, по умолчанию 1)
Где N - порядковый номер патча: 0, 1, 2, ...9

Ниже представлено расположение патчей, где они должны быть прописаны в Clover — config.plist/Devices/Properties и примеры патчей:

Здесь представлен пример патча с DVMT в BIOS 32MB когда нужно, чтобы это значение было больше
W4Pe0h9.png
— Pipe / Port Count 3 to 2
— Connector 1 DP to HDMI
— Connector 2 Disable
gDTGjBB.png
Пример бинарного патча

Digital Audio (HDMI / DVI / DP)
Для работы digital audio необходимы нужные свойства и патч коннекторов.
Для этого вам дополнительно понадобится AppleALC.kext.
Начиная с 10.10.5 и выше, WEG автоматически меняет тип connector-type с DP (00040000) на HDMI (00080000).
Фактическое соединение может быть любого типа (HDMI / DVI / DP), но для работы digital audio тип connector-type должен быть конкретно HDMI (00080000).

Поддержка VGA
В большинстве случаев с Intel Skylake и новее он работает по умолчанию.
Для Ivy Bridge и возможно других поколений, возможен вариант патча коннекторов на следующие:
06020000 02000000 30000000 // Option 1
06020000 01000000 30000000 // Option 2
В OS X 10.8.2 и новее VGA на Ivy Bridge не работает.
Hot-plug VGA обычно не работает.

EDID
Обычно определяется верно и никаких дополнительных действий не требуется.
Получить дамп EDID можно через Linux. Значение верного EDID прописывается в свойство *AAPL00,override-no-connect* для IGPU, где второй 0 является номером монитора.

В некоторых случаях, полученый EDID может быть не совместим с macOS, что приведёт к искажению изображения. Тогда для этого EDID можно использовать данный script, который внесёт корректировки в ранее полученный EDID и сохранит его на рабочем столе.

HDMI при UHD разрешении с 60 fps
Добавьте свойство enable-hdmi20 для IGPU, иначе будет чёрный экран. Или пропишите в config.plist, boot-arg: -cdfon

Отключение дискретной видеокарты ноутбука
Добавьте свойство disable-external-gpu для IGPU. Или пропишите в config.plist, boot-arg: -wegnoegpu

Исправление проблемы с maximum link rate на некоторых ноутбуках (Dell XPS 15 9570, и подобных.)
Добавьте свойство enable-dpcd-max-link-rate-fix для IGPU. Или пропишите в config.plist, boot-arg: -igfxmlr.

Так же можно вручную указать значение параметра dpcd-max-link-rate для встроенного дисплея:

  • Обычно используют 0x14 для 4K дисплея и 0x0A для 1080p дисплея.
  • Все возможные значения: 0x06 (RBR), 0x0A (HBR), 0x14 (HBR2) and 0x1E (HBR3).
  • Если свойство dpcd-max-link-rate отсутствует или указано не допустимое значение, то будет использоваться значение по умолчанию — 0x14.

Благодаронсть
— vit9696 и lvs1974 за WhateverGreen (Full Credits) and Lilu (Full Credits)
— Andrey1970 за предоставленный материал на applelife.ru

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я согласен с политикой конфиденциальности