Я изначально подбирал материнскую плату со встроенным DisplayPort, поскольку где-то вычитал, что HDMI/DVI в хакинтоше не поддерживают разрешения выше Full HD. Монитор у меня как раз такой, но если он накроется, то на замену буду брать что-то побольше размером и разрешением.

Ну так вот, до прошлой пятницы монитор был подключен кабелем DVI и отлично работал. Заказанный одновременно со всеми запчастями кабель DisplayPort ехал на месяц с лишним дольше, покупать здесь смысла не было — и так работает же.

Получил, подключил, переключил вход у монитора на DP — тишина, сигнала нет. Перезагрузился — BIOS отлично, Clover видно, загрузка на 2/3 проходит, затем экран гаснет и монитор теряет сигнал. Система отлично грузится «в темную», можно переключиться обратно на DVI и все будет здорово. Закусило, стал пробовать и разбираться.

Драйвер com.apple.driver.AppleIntelSKLGraphicsFramebuffer грузился нормально, ioRegistryExplorer показывал 3 буфера для устройства IGPU@2, которое до переименования звалось GFX0. Монитор числился за AppleIntelFramebuffer@2, это был DVI. Я думал, что AppleIntelFramebuffer@1 — это мой DP и он почему-то капризничает. Взял паузу на почитать.

IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@3

Ирония в том, что этот драйвер по-умолчанию считает все порты DP, у большинства проблемы как раз с HDMI и DVI, которые гораздо более популярны. Для решения используют патчи, которые меняют свойство connector-type (для справки: DVI <00 02 00 00> HDMI <00 08 00 00> DP <00 04 00 00>) для соответствующих портов. Также есть патч, который добавляет «четвертый монитор» встроенному Intel Graphics HD530 (и по наследству HD630).

Я попробовал — сходу не получилось, драйвер перестал грузиться, я получил «аварийную» графику по-умолчанию, которая кое-как работала, периодически пугая глюками и артефактами. Однако, теперь работали оба провода. По результатам хаотичного тыканья в кнопки вдумчивого анализа родилась рабочая конфигурация.

TL;DR — Intel HD Graphics HD630 @ Gigabyte GA-H270M-DS3H

Моя рабочая конфигурация, комментарии для config.plist и расширения.

  1. config.plist/ACPI переименовать GFX0 в IGPU
  2. config.plist/Devices IntelGFX = 0x19168086 + патч IntelGFX (AAPL,GfxYTile)
  3. config.plist/Graphics InjectIntel=true + ig-platform-id = 0x19120000 (не было никакого)
  4. config.plist/KextsToPatch здесь два патча для AppleIntelSKLGraphicsFramebuffer, один увеличивает число мониторов до 4, другой меняет тип коннектора для DVI
  5. FakePCIID.kext+FakePCIID_Intel_HD_Graphics.kext лежат в /L/E

Жирным выделил то, что изменилось по сравнению с предыдущим состоянием (рабочий DVI, нерабочий DP). Фэйки из п.5, как я понял, маскируют Kaby Lake под Skylake для драйверов, в частности HD630 под HD530. В итоге DP завелся на AppleIntelFramebuffer@3, которого до патча SKL вообще не было. Сейчас у меня как бы 2 монитора, в настройках включен mirror, можно переключать с DVI на DP и обратно — красота.

DisplayPort @ HD630

Что любопытно, настройки для мониторов отличаются. На DisplayPort подключении можно управлять поворотом, регулировать underscan неизвестно зачем. У DVI параметров меньше, так что какой-то зримой разницы я добился, хотя бы в бесполезных ползунках и галочках.

Остался вопрос — на каких началах DVI работал до этого?

  • Денис Марьин

    Спасибо за этот пост. Возможно, у меня проблема как раз с DisplayPort. Поскольку изначально пытался настроить систему с DisplayPort.
    Пока правда ничего не получилось.( Сначала графику видел только 14mb. Потом экспериментировал с kextами, и все рухнуло. Теперь даже с флешки не грузится. Думаю о Windows уже(

    Кстати, ig-platform-id говорят 0x19160000 а не 0x19120000.

    • tagmac

      Если не грузится с установочной флешки, то это что-то в BIOS поломано, либо kext, которые в /S/L/E или /L/E, EFI раздел по идее не участвует. Грузиться в verbose режиме и спотреть что там где.
      Насчет ig-platform-id — попробую на досуге, но меня в нынешнем варианте вроде бы все устраивает.

      • Денис Марьин

        Проблемы начались после установки kextов в /S/L/E (FakeSMC, по-моему.)

        Постоянная ошибка такая:

        OsxAptioFix2Drv: Starting overrides for SystemLibraryCoreServicesboot.efi
        Using reloc block: no, hibernate wake: no
        ++++++++++++++++++++++++++++++++++++++++++++++++ +++++

        Свежая загрузочная флешка виснет на этом моменте. Флешка с настроенным кловером доходит до середины загрузки и перезагружается.

        В биосе пробовал разные вариации, не помогает.
        Думаю, в S/L/E остались файлы даже после форматирования, они и мешают. Гуглил и пробовал варианты, пока ничего не помогло.

  • Денис Марьин

    Я наконец дошел до этапа настройки DisplayPort. Скажи, пожалуйста, драйвер com.apple.driver.AppleIntelSKLGraphicsFramebuffer ты ставил, или он системный?

    Просто у меня нет разделов AppleIntelFramebuffer@1-2-3 как у тебя, только display0. Это результат драйвера или патча 4_displays?

    У меня DP to mDP кабель, и через него никак не хочет работать.

    • tagmac

      Драйвер системный, да.

  • Maxim Fomichev

    Аааааа! Мне нужен твой конфиг, выложи пожалуйста куда-то еще, дропбокс закрыл публичные шары.
    У меня как раз проблема именно с штатным display port, очень нужно для второго монитора.

    • tagmac

      Dropbox засранцы, конечно, но вроде не вполне закрыли — я обновил ссылку на config.plist Проверил — работает. Если что вот https://www.dropbox.com/s/v4p70p20smj9cz7/config.plist?dl=1

      • Maxim Fomichev

        Спасибо тебе, добрый человек!
        Вчера по твоему посту сам нагуглил многое и заставил работать один монитор хорошо или два но с глюком в левом верхнем углу, сейчас попробую твой конфиг, может получится два и без глюков.

      • Maxim Fomichev

        Скажи, дорогой друг, ты уже обновлялся до 10.12.4 Sierra ? У меня после этого встроенная графика перестала работать нормально, стала как будто без ускорителя.

        • tagmac

          Обновился, все нормально. В свойствах дисплея пишет Intel HD Graphics 630 GT2 1536 MB. Не знаю откуда это, не помню чтобы писал что-то такое в конфиг. Раньше писалось что-то типа Intel Unknown. Может и родную поддержку HD630 сделали, не выяснял пока.

  • Pingback: Обновил Kaby Lake хакинтош до macOS Sierra 10.12.6 ~ Хакинтош()