Haswell

Приветствуем!

Наконец-то мы доделали статью по Haswell-графике. Приятного чтения.

Вот информация по заводу Intel HD Graphics поколения Haswell.
На данный момент заводятся все GT2 и GT3 карты. GT1 не заводится вовсе.


Тактико-техническая информация.


Полный список Haswell графики:

  • HD Graphics (GT1) – не заводится;
  • HD4200 (GT2) – сегодня не встречается;
    [8086:0a1e]
  • HD4400 (GT2) – мобильная графика;
    [8086:0a16]
  • HD4600 (GT2) – мобильная и десктопная графика;
    [8086:0416] [8086:0a26]
  • HD5000 (GT3) – десктопная графика.
    [8086:0a26]

Список доступных ig-platform-id:

В AppleIntelFramebufferAzul очень много повторяющихся ig-платформ, с одинаковыми коннекторами.
Выписывать все нет смысла, выписаны только те, что могут принести пользу.
[ 0] : 0x04060000 – Mobile GT1
[ 1] : 0x0c060000 – SDV mobile GT1
[ 2] : 0x04160000 – Mobile GT2
[ 3] : 0x0a160000 – ULT mobile GT2 
[ 4] : 0x0c160000 – SDV mobile GT2 
[ 5] : 0x04260000 – Mobile GT3
[ 6] : 0x0a260000 – ULT mobile GT3
[ 7] : 0x0c260000 – SDV mobile GT3
[ 8] : 0x0d260000 – CRW mobile GT3 
[ 9] : 0x04160002 – Mobile GT2 (1c)
[10] : 0x0d220003 – CRW desktop GT3
[11] : 0x04120004 – CRW desktop GT3
[12] : 0x0a260005 – ULT mobile GT3
[13] : 0x0a260006 – ULT mobile GT3 
[14] : 0x0d260007 – CRW desktop GT3
[15] : 0x0a260007 – CRW desktop GT3
[16] : 0x0a2e0008 – CRW reserved GT3
В бинарном виде:

Разбор по моделям:

Haswell – архитектура, заполонившая рынок. Очень неприхотливая в заводе.

Подходящие SMBIOS’ы:

  • iMac14,1;
    Лучше подходит для стационарных HD Graphics, которая используется в качестве основной карты для вывода изображения;
  • iMac14,2;
    Лучше подходит для стационарных HD Graphics, работающей в паре с Nvidia;
  • iMac15,1;
    Лучше подходит для стационарных HD Graphics, работающей в паре с AMD Radeon;
  • MacBookPro11,1/11,2/11,4/12,1;
    Лучше подходит для мобильных HD Graphics с большой мощностью процессора;
  • MacBookAir6,1/6,2;
    Лучше подходит для мобильных HD Graphics с энергоэффективным процессором.

Завод.


В статье мы рассмотрим 3 варианта – мобильная, десктопная, и десктопная в паре с дискретной.


Мобильная Intel HD4200, HD4400 и HD4600:

Рассмотрим завод на примере HD4400. 4200 и 4600 карты для нас различаются лишь названием.

Для завода графики достаточно:

  • Проинжектить ig-platform-id0x0A260006;
  • FakeID: 0x0412 (под Intel HD Graphics 5000);
  • FakeID для IMEI контроллера (опционально);
  • Переименовать в ACPI видеокарту GFX0 -> IGPU (для AGPM);
  • Установить в биосе под видеокарту 96мб (64 так же допускается).
ОЧЕНЬ ВАЖНО: Помните, что при инжекции через Arbitrary, вы должны отключить все прочие инжекции, типа Grapchis/Inject/Intel, или удалить соответствующий _DSM в DSDT!

Инжекция параметров видеокарты:

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2016-09-23-%d0%b2-8-51-03

Разберем ключи:

  1. model = Intel HD Graphics 4400 – косметика;
  2. device-id = 12040000 (0x0412)  – инжекция подменённого ID;
  3. AAPL,ig-platform-id = 06002616 (0x16260006) – инжекция ig-platform-ID;
  4. hda-gfx = onboard-1 – свойство для HDMI звука;
  5. graphics-options = 0C000000 – на всякий случай;
  6. boot-gamma-restored = <00000000 00000000> – задаём динамический подбор этого параметра при загрузке;
  7. IOHibernateState = <00000000> – правильное значение для сна;
  8. subsystem-id = 86800000 (8086 = Intel) – косметика;
  9. subsystem-vendor-id = 6B100000 (106B = Apple) – косметика;
  10. PciAddr = 00:02.00 – стандартный PCI адрес встроенной графики.

Стационарные Intel HD4600 и HD5000 без дискретной карты:

Рассмотрим завод на примере HD4600. 5000 отличается лишь названием в секции Model.

Для завода графики достаточно:

  • Проинжектить ig-platform-id0x0D260000 или 0x0D220003 (мы возьмём второй вариант);
  • FakeID: 0x0412 (под Intel HD Graphics 5000);
  • FakeID для IMEI контроллера (опционально);
  • Переименовать в ACPI видеокарту GFX0 -> IGPU (для AGPM);
  • Установить в биосе под видеокарту 96мб.
ОЧЕНЬ ВАЖНО: Помните, что при инжекции через Arbitrary, вы должны отключить все прочие инжекции, типа Grapchis/Inject/Intel, или удалить соответствующий _DSM в DSDT!

Инжекция параметров видеокарты:

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2016-09-23-%d0%b2-9-33-07

Разберем ключи:

  1. model = Intel HD Graphics 4600 – косметика;
  2. device-id = 12040000 (0x0412)  – инжекция подменённого ID;
  3. AAPL,ig-platform-id = 0300220d (0x0d220003) – инжекция ig-platform-ID;
  4. hda-gfx = onboard-1 – свойство для HDMI звука;
  5. graphics-options = 0C000000 – на всякий случай;
  6. boot-gamma-restored = <00000000 00000000> – задаём динамический подбор этого параметра при загрузке;
  7. IOHibernateState = <00000000> – правильное значение для сна;
  8. subsystem-id = 86800000 (8086 = Intel) – косметика;
  9. subsystem-vendor-id = 6B100000 (106B = Apple) – косметика;
  10. PciAddr = 00:02.00 – стандартный PCI адрес встроенной графики.

Стационарные Intel HD4600 и HD5000 с дискретной картой:

Рассмотрим завод на примере HD4600.

Для завода графики достаточно:

  • Проинжектить ig-platform-id0x04120004;
  • FakeID: 0x0412 (под Intel HD Graphics 5000);
  • FakeID для IMEI контроллера (опционально);
  • Переименовать в ACPI видеокарту GFX0 -> IGPU (для AGPM);
  • Установить в биосе под видеокарту 32мб.
ОЧЕНЬ ВАЖНО: Помните, что при инжекции через Arbitrary, вы должны отключить все прочие инжекции, типа Grapchis/Inject/Intel, или удалить соответствующий _DSM в DSDT!

Инжекция параметров видеокарты:

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2016-09-23-%d0%b2-9-54-49

Разберем ключи:

  1. model = Intel HD Graphics 4600 – косметика;
  2. device-id = 12040000 (0x0412)  – инжекция подменённого ID;
  3. AAPL,ig-platform-id = <04001204> (0x04120004) – инжекция ig-platform-ID;
  4. hda-gfx = onboard-1 – свойство для HDMI звука;
  5. graphics-options = 0C000000 – на всякий случай;
  6. boot-gamma-restored = <00000000 00000000> – задаём динамический подбор этого параметра при загрузке;
  7. IOHibernateState = <00000000> – правильное значение для сна;
  8. subsystem-id = 86800000 (8086 = Intel) – косметика;
  9. subsystem-vendor-id = 6B100000 (106B = Apple) – косметика;
  10. PciAddr = 00:02.00 – стандартный PCI адрес встроенной графики.

FakeID для IMEI.


Подмена необходима в случае не нативного id у данного девайса

Нативные ID:

Взят с iMac15,1 (чипсет HM97, id: 0x8cc3)

  • BA8C0000 (0x8cba)

Взяты из графических кекстов.

  • BA9C0000 (0x9cba)
  • 3A8C0000 (0x8c3a)
  • 3A9C0000 (0x9c3a)

Если вы не уверены в нативности id — сделайте маскировку:

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2016-09-23-%d0%b2-9-10-35

Разберём ключи:

  1. device-id = BA8C0000 (0x8cba) – подмена ID;
  2. subsystem-id = 70720000 – косметика;
  3. subsystem-vendor-id = 6B100000 – косметика;
  4. PciAddr = 00:16.00 (0x00160000) – PCI-адрес для Intel ME интерфейса.

Переименование видеокарты в ACPI таблицах с помощью бинарного патча.

Выполняется этот патч для завода управления питания (AGPM), и просто для более правильного определения карты в системе.

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2016-09-23-%d0%b2-9-12-35

Find: 47465830
Replace: 49475055

HDMI Звук.


Для завода звука по HDMI нам потребуются три вещи:

  1. Описанный девайс HDAU с помощью Arbitrary или через _DSM в DSDT;
  2. Свойство onboard-1 в устройствах HDEF и HDAU;
  3. Чтобы система видела HDMI как HDMI, а не как DP или прочий коннектор.

Для Haswell и Broadwell принято использовать B0D3 устройство (по адресу 0x00030000).


Чтобы OS X его подхватила, его нужно переименовать в HDAU.
Мы сделаем это бинарным патчем:

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2016-09-23-%d0%b2-9-14-45

Find: 42304433
Replace: 48444155

Инжект свойств на B0D3 (HDAU) устройство через Arbitrary:

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2016-09-23-%d0%b2-9-36-16

Разберем ключи:

  • layout-id = 03000000 – лайоут звука, который используете для HDEF;
    //поменяйте на свой, если используете другой лайоут
  • hda-gfx = onboard-1;
  • PciAddr = 00:03.00.
Секция HDEF также вписана в конфиг, с лейаут-ид=3. Это 4ый айтем в Arbitrary, первый ключ отвечает за layout.

Патч коннекторов:

Поскольку мы используем 0x0A260006-платформу для ноутбуков и 0x0d220003-платформу для стационарных компьютеров, нужные патчи уже вписаны в соответствующие конфиги. Всё, что требуется от вас – выполнить остальные условия.
Если же вы используете другую платформу, то вы можете взять нужные патчи для нужного порта в файле HDMI Azul patch.plist.
Также напомню, что если мы завели iHD в паре с дискретной графикой, то HDMI нужно заводить для дискретной графики, а не для iHD.
Ну и раз тема зашла о секции KernelAndKextPatches, то заодно добавлен фикс на артефакты (глитчи) яблока.
%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2016-09-23-%d0%b2-9-48-11

Правильная регулировка яркости ноутбука.


Яркость любой Intel-графики управляется через специальный регистр. При наличии PNLF устройства в DSDT/SSDT, OS X подключается к нему, и, используя заготовленные настройки к монитору, вписывает туда значение текущей яркости, а для конечного пользователя появляется ползунок. Таким образом минимальный фикс для яркости это фиксы кловера: AddDTGP + AddPNLF (включены в конфиг)

При таком подходе возникают проблемы:

  1. Яркость изменяется не равномерно;
  2. Ползунок на максимум не дает полную яркость монитора, а после сна резко вспыхивает.

Первая проблема из-за того, что OS X не знает 16 ключевых уровней яркости конкретно нашего монитора, и использует стандартный линейный пресет. Вторая проблема связанна с ограничением максимального уровня яркости на системном уровне.

Решение проблем:

Фиксы кловера (AddDTGP + AddPNLF), и подкинуть в кловер IntelBacklight.kext от Rehabman’а.
Написан специально для Intel HD. Знает все особенности Sandy, Ivy, Haswell, Broadwell, и Skylake графики.


Файлы.


Прописанные секции из статьи в формате *.plist. Остальные настройки за вами.

Вынесенные патчи для всех фреймбуфферов, коннекторов DP –> HDMI:

Кексты:

  • IntelBacklight.kext – кекст на управление яркостью монитора ноутбуков;
  • FakePCIID.kext — сам кекст обманщик. Он всё равно не помешает, даже если у вас карта с нативным ID;
  • FakePCIID_Intel_HD_Graphics.kext.zip — плагин для подмены ID на HD Graphics.

Спасибо за прочтение!
Андрей Чернышов — материал и оформление.

32 комментария to “Haswell

  • Владимир
    2 года ago

    Здравствуйте.У меня видеокарта HD4400. Я закинул кексты с архива в /system/libary/extensions, отредактировал файл Кловер и начинаю грузится с флешки с флагом -v. Пролетает куча команд и все зависает на DSMOS has arrived. Эта ошибка связана с тем, что не завелась видеокарта или с тем что не подгружается кекст FakeSMC? И как лечить сие бедствие?

    • Андрей Чернышов
      2 года ago

      Как именно редактировали Кловер? Кэш обновляли после того, как положили тексты в /S/L/E? Попробуйте загрузится Without cache and inject kexts. Или же в безопасном режиме.
      Тут разбираться надо, но проблема навряд ли в редакции — скорее всего, вы неправильно отредактировали config.plist.

      • Владимир
        2 года ago

        Кэш я не обновлял и вообще первый раз о нем слышу. Файл кловер я открыл, нашел похожие команды и обновил их теми которые описаны в статье. Но похоже я не правильно что-то делаю, ибо немного повозившись я столкнулся с другой проблемой. Теперь все зависает на 3 строчках. Две из них одинаковые:
        com.apple.xpc.launchd{1} (MyListenerSocket) : No PATH environment variable set. The application firewall will not work with this service.
        И 3- она же последняя:
        com.apple.xpc.launchd{1} (com.apple.webcontentfilter. dns) : This service is defined to be constantly running and is inherently inefficient.
        Что делать?

        • Андрей Чернышов
          2 года ago

          Какой именно файл? Владимир, будте добры, описывайте проблему в подробностях, при чем в мельчайших. А так же было бы неплохо, если бы вы написали железо свое.
          И вообще, по хорошему, обращайтесь за помощью в раздел обратной связи — http://osxpc.ru/contact/ ;
          Поможем, чем сможем, а решение выложим отдельным постом, если будет что-то необычное.

  • По ссылке скачивания кекстов ошибка 404(((

  • Почините ссылку пожалуйста

  • Владимир
    1 год ago

    Насущный вопрос, iTunes не воспроизводит купленное видео, просто черный экран без звука, таймер стоит на месте. Музыка купленная в iTunes играется без проблем.
    вывод сейчас осуществляется через EVGA GeForce GTX 750
    в настройках BIOS в первую очередь приоритет вывода стоит на GeForce, встроенная графика HD4600 тоже разрешена.
    насколько я понял для воспроизведения купленного видео в iTunes для декодирования нужна встроенная графика HD4600, если ее завести не будет ли она конфликтовать с GTX 750? поскольку в основном я хочу использовать GTX 750

    Имеется Desktop
    — Материнка Gigabyte GA Z97N WiFi
    — Процессор Intel Core i5 4690 графика Intel HD4600

    и кекст использовать из какой папки? Debug или Release?

    • Андрей Чернышов
      1 год ago

      Проблема в 750, которая очень и очень кривая. Нужно завести встроенную карту, но даже это не гарантирует вывод.
      А ставить надо из Release.

  • Доброго дня.
    Подскажите пожалуйста:
    Делаю вариант для Вариант для DSDT:
    Все сделал как в описании , но когда появляется код — кнопка APPLY -не активна.
    Тоесть я не могу применить код.

    Как быть ? Спасибо.

  • вот сюда еще бы патчи переименование GFX0=>IGPU в конфиге для завода agpm и желательно в графическом режиме. а то многие этот текстовый не знают куда вставить.лучше всегда текстовый и графический чтоб понятно как в конфиге это выглядет и где. а то народ пользуется в основом Xcode и Plist Edit Pro но мало кто лазит и правит там в текстовом виде. да и при добавлении в текстовом можно не так или не туда вставить и конфиг может не открыватся потом. а так все понятно и читабельно и меньше шансов поломать там что то.

  • Ребят! Всем привет. Последовал вашему совету и избавился от ноутбука с аномальным слётом графики на ivy bridge. 😀
    Вопрос следующий: возможно ли в маке реализовать двойную графику? Intel HD 4600 + GeForce 750m

  • Андрей Мишин
    2 месяца ago

    Здравствуйте! Пытаюсь завести haswell графику (Стационарные Intel HD4600 и HD5000 с дискретной картой). Все выполнил по инструкции, но артефакты остались. Об этом мак, отображается 7мб для монитора(видеопамяти). В чем проблема? Может кто помочь?

    • Андрей Чернышов
      2 месяца ago

      Приветствую.
      Это не артефакты, а просто неработающие QE/CI. Видимо, помимо этой существует иная инжекция, которая и мешает.
      А помочь без какой-либо информации могу только советом — перечитайте внимательно статью и проверьте все моменты 🙂

  • Господа! HD4600 мобильная сделал всё по инструкции (копи паст). И нашел очень неприятный баг. При подключении HDMI дисплея, основной монитор ноутбука выдаёт неимоверное количество артефактов, а точнее я бы описал это так: разрежте газету на мелкие вертикальные полоски и расположите абсолютно рандомно плюс наложите белый цвет на всё это изображение с прозрачностью около 10%! это и есть та ситуация что творится на основном, при этом второй дисплей работает как надо. Включаем рижим видеоповтора и вуаля на обоих дисплеях всё показывает, однако мне такой вариант не подходит, надо чтобы отдельными оба были. Второй момент: даже если мы остались на видеоповторе и вытаскиваем HDMI шнур из ноутбука, то получаем туже самую абракадабру, что описывал выше. приходится подключать обратно и перезагружать через доп монитор. Звук по HDMI работает, а вот этот момент огорчает. Только этот момент и отталкивает от того, чтобы мак стал моей основной системой как и хотелось. Помогите пожалуйста.

    • Тут, вообще-то, список железа нужен.
      Но поменять попробуйте в биосе UEFI Mode.
      Поставьте UEFI With CSM или что-то в этом роде. Скорее-всего у вас несколько режимов УЕФИ, из-за которых и наблюдается следующая проблема

      • HP Envy 17 Leap Motion, к слову сказать контроллер «лип» прекрасно работает на маке))
        Intel Core i7 4702QM HD4600+gt750m
        И да, нашел этот параметр в биосе, назывался он «легаси» и всё теперь прекрасно работает) Спасибо!!!!
        Знаю что не по теме, прошу прощения. После установки этого лип контроллера он стал автоматически включаться с маком, и из-за этого спидстеп не спидстеп из за него 2.2 Ггц и всё. Поэтому каждый раз из трея сверху приходится его вручную выключать. Может есть способ допустим через дсдт или ссдт его отключить, чтобы он включался только когда его просят а не срузу при загрузке? На винде у меня это было через Fn + пробел, но тут как то не задалось.

        • А с чего такая уверенность, что из-за этого контроллера спидстеп не работает? Почитайте эту статью и сверьте все ли у вас правильно работает.
          Ну а контроллер можно отключить через ДСДТ. Для этого зайдите в ИОРег и найдите свой контроллер. Затем узнайте его адрес или точное название в АЦПИ таблице. А дальше можно попытаться его отключить

  • А как сделать эти патчи через кловер?

    echo «Patch binary …»
    sudo perl -pi -e ‘s|\x00\x00\x04\x00\x00\x87\x00\x00\x00\x02\x04\x0a|\x00\x00\x08\x00\x00\x06\x00\x00\x00\x02\x04\x12|g’ /System/Library/Extensions/AppleIntelFramebufferAzul.kext/Contents/MacOS/AppleIntelFramebufferAzul

    sudo perl -pi -e ‘s|\x00\x00\x04\x00\x00\x87\x00\x00\x00\x03\x06\x08|\x00\x00\x08\x00\x00\x06\x00\x00\x00\x03\x06\x12|g’ /System/Library/Extensions/AppleIntelFramebufferAzul.kext/Contents/MacOS/AppleIntelFramebufferAzul

    sudo perl -pi -e ‘s|\x00\x00\x04\x00\x00\x11\x00\x00\x00\xFF\x00|\x00\x00\x08\x00\x00\x06\x00\x00\x00\xFF\x00|g’ /System/Library/Extensions/AppleIntelFramebufferAzul.kext/Contents/MacOS/AppleIntelFramebufferAzul

    Это из скрипта толеды. Когда применяю его патч, нормально цепляется HDMI на 0x7 порт. А без патча HDMI цепляется на порт 0x0 и монитор показывает как встроенный в iMac и не выходит со сна. Патчи из статьи не помогают. Заранее спасибо)

  • Здравствуйте. А не подскажите как завести встроенную графику на (мак ос стартует, но в свойствах показывает intel unkown 5mb, и подтармаживает всё)
    OSX Sierra 12.2
    CPU: Pentium G3260 (работает как FakeCPUID 0x0306A)
    MB: Gigabyte GA-H81M-S1 (на материки только 1 порт VGA)

    • Андрей Чернышов
      2 дня ago

      Никак не завести в пеньке графику. Да и через VGA даже с iX работать не будет.

      • Спасибо за быстрый ответ.

        Простите за нубность. А как объяснить то что экран не черный и я могу работать в OSX 12.2 ? (мышка двигается, все пашет, но где график тормозит)
        До того как наткунлся на ваш сайт, я пытался через Device->FakeID заупстить как 0x04128086 о котором пишут на многих сайтах (я думал что будет эмуляции HD4600 ), но любые FakeID не влияют на результат.
        Попробовал ваш вариант (для 4600 десктоп). Пишет:

        «Апаратные средства» -> «Графика/монитор»

        ***********
        intel HD Graphics 46000
        ………
        VRAM : 5mb
        Производитель:intel(0x8086);
        ID устройство: 0x0402
        Информация Kernel Extension: Не загружено Kext
        ………
        *************
        Почему?

        Если же я просто полный нуб и не понимаю каких то вещей, не подскажите PentiumG4400 или Celeron G3900, SkyLike, после FakeCPUID на 0x0306A. Можно ли будет завести их gpu ?

        Дело в том что хочу подобрать максимально бюджетное решение с SSE 4.1\4.2 для изучения XCODE. Спасибо.

        • Андрей Чернышов
          2 дня ago

          Не ниже i3. И выход обязательно не через VGA (D-sub). То есть, условия:
          1. Графика в процессоре должна быть не ниже GT2;
          2. SSE4.2 есть во всех процессорах Sandy+;
          3. Материнская плата должна быть с выходами DVI/HDMI/DP/mDP. VGA не котируется.

Trackbacks & Pings

  • Завод HD4000 | OSXPC [Beta 2.1] :

    […] Поставили, и теперь указываем необходимые параметры. Тут у нас на выбор (как и в случае HD4x00): […]

    1 год ago

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

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

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.