Ivy Bridge

HD4000 Ivy bridge


Приветствую!
Хотел бы освежить информацию по заводу Intel HD4000, сделать информацию более доступной для новичков, и привести тему к единому виду, с одинаковым методом инжекции.


Ставилась HD4000 в MacBook Pro (9,1 – 10,2), MacbookAir (5,1 – 5,2), MacMini (6,1-6,2), и в iMac (13,1-13,2).
Смбиосы:

  • iMac 13,2 – если у вас есть дискретная видеокарта, и вы заводите HD4000 для нужд AirPlay/iTunes Video/etc;
  • iMac 13,1 или MacMini 6,1-6,2 – если HD4000 является единственной картой, и мониторы будут подключаться к ней;
  • MacBook Pro 9,1-9,2 или MacBook Air 5,1-5,2 – если у вас ноутбук.
    *Если у вас стоит второй картой заводимый радеон, то лучше всего поставить MBP9,1 (только там есть вторая карта, если верить MacTracker’у);
    **Если вторая карта нвидия, то вообще забываем о дискретке.

Для завода Intel HD4000 необходимо:

  1. Выставить смбиос, в котором была Intel HD4000 (логика выбора выше);
  2. Инжектировать свойства для HD4000;
    1. Включая инжект ig-platform-id, и выставить в биосе количество видеопамяти, соответствующее ig-platform-id;
    2. Включая патч ig-platform-id (опционально);
  3. Инжектировать свойства для IMEI;
    1. Если HD4000 на чипсете Sandy (6-ое поколение), выполнить маскировку IMEI под 7-ое поколение.
  4. Переименовать в ACPI видеокарту GFX0 -> IGPU (для AGPM);
  5. Задать параметр onboard-1 (для звука по HDMI);
  6. Выставить фиксы AddDTGP + AddPNLF, и подкинуть в кловер IntelBacklight.kext (только для ноутбуков);
ОЧЕНЬ ВАЖНО: Помните, что при инжекции через Arbitrary, вы должны отключить все прочие инжекции, типа Grapchis/Inject/Intel, или удалить соответствующий _DSM в DSDT!
 


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

Снимок экрана 2016-05-06 в 0.03.30.

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

  1. subsystem-id = <86800000> (8086=Intel) – косметика;
  2. subsystem-vendor-id = <6b100000> (106b=Apple) – косметика;
  3. device-id = <66010000> (0x0126) – инжекция и/или подмена ID;
    Подробно о Device ID
  4. AAPL,ig-platform-id = <03006601> (0x01660003) – IG-платформа (фреймбуффер);
    Подробно о ig-platform-id
  5. AAPL,LinkType = <00000000> (0x0000000) – тип сигнала;
  6. model = Intel HD Graphics 4000 – косметика;
  7. hda-gfx = onboard-1 – свойство для HDMI звука;
  8. PciAddr = 00:02.00 (0x00020000) – PCI-адрес для встроенной графики.

Подбор и патчинг ig-platform-id:

Все ig-platform-id:

Разберём патч на примере 0x01660009:

Берём фрейм из спойлера выше
AAPL,ig-platform-id: 01660009, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 
@0, 01000000 02000000 30000000 // (LVDS) 
@1, 02050000 00040000 07010000 // (DisplayPort) 
@2, 03040000 00040000 07010000 // (DisplayPort)

Разберём его по косточкам:

  • AAPL,ig-platform-id – сам параметр;
  • 01660009 – «имя» фреймбуфера. Его мы и указываем в ручной инжекции;
  • Stolen RAM for FB: 64MB – количество «похищаемой» видеопамяти. Это значение мы указываем в биосе;
  • Pipes: 3 – количество «труб» (параметр, не имеющий ценности);
  • Ports: 3 – количество портов, так-то! :D
  • FBMem: 3 – расчётное количество одновременно подключённых мониторов;
  • @0, (@1, @2) – номер коннектора. От него зависит порядок подключения, особенно для мобильных фреймов;
  • 01000000 02000000 30000000 // (LVDS) – коннектор, и указание его имени. Ниже представлены все типы коннекторов.

Проанализировав эти данные мы понимаем, что эта платформа соответствует трём коннекторам, а так же то, что нам необходимо выставить в биосе 64 мегабайта видеопамяти для его использования.

Приведём оригинальный фрейм в понятный клеверу вид, отбросив всё лишнее:

01000000 02000000 30000000 02050000 00040000 07010000 03040000 00040000 07010000

Это наш Find. То, что будет заменяться патчем.

И займёмся редактированием группы коннекторов.
Наш оригинальный фрейм выглядит как:

01000000 02000000 30000000 – LVDS
02050000 00040000 07010000 – DisplayPort
03040000 00040000 07010000 – DisplayPort

И, допустим, нам необходимо заместо одного LVDS и двух DP поставить HDMI, VGA, и DVI (обычная картина на десктопах).
Следовательно, нам нужно заменить по 16 бит от DP и LVDS на другие 16 бит под наш коннектор, которые мы возьмём из спойлера ниже.

Коннекторы:

HDMI (00080000):
04060000 00080000 06000000
02050000 00080000 06000000
LVDS/eDP (02000000):
01000000 02000000 03000000
01000000 02000000 30000000
05030000 02000000 30000000
DP (00040000):
02050000 00040000 07000000
02050000 00040000 07040000
02050000 00040000 11000000
03040000 00040000 07000000
03040000 00040000 07010000
03040000 00040000 81000000
04060000 00040000 07000000
04060000 00040000 07010000
04060000 00040000 81000000
VGA (01000000/02000000):
06020000 01000000 30000000
06020000 02000000 30000000
Касательно VGA.
Если ни один из них вам не помог — увы, больше ничего сделать не получится. Apple уже давно не используют VGA выходы в своей технике, а как таковая поддержка VGA на HD4000 выпилена в 10.9.1. Учтите также и то, что полноценно завести VGA на хакинтоше не получится: например, подключение на горячую сделать невозможно.
DVI-I, DVI-D, и mDP вешаются на DP.

И переделаем построчно под нашу конфигурацию:

06020000 02000000 30000000 - VGA
04060000 00080000 06000000 - HDMI
02050000 00040000 07010000 - DVI (Вспоминаем, что DVI цепляется к DP)

Приводим в понятный клеверу вид:

06020000 02000000 30000000 04060000 00080000 06000000 02050000 00040000 07010000

Это наш Replace. То, чем будет заменяться Find.

И составляем бинарный патч:

Find: <01000000 02000000 30000000 02050000 00040000 07010000 03040000 00040000 07010000>
Name: AppleIntelFramebufferCapri
Replace: <06020000 02000000 30000000 04060000 00080000 06000000 02050000 00040000 07010000>
Как-то так...

Инжекция IMEI (Intel ME Interface):

Подмена необходима в случае не нативного ID у данного девайса, что вряд ли.

Нативный ID всего один – 3A1E0000 (0x1E3A), следовательно, если ID у вашего IMEI отличается от этого, то необходимо провести маскировку (хотя и с нативным ID не помешает ):

Снимок экрана 2016-05-06 в 4.37.06.

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

  1. subsystem-id = <70720000> (0x7270=Subsystem: Intel Corporation Device [8086:7270]) – косметика
  2. subsystem-vendor-id = <6b100000> (106b=Apple) – косметика
  3. device-id = <3a1e0000> (0x1e3a) – подмена ID (чего мы и добиваемся)
  4. PciAddr = 00:16.00 (0x00160000) – PCI-адрес для Intel ME интерфейса
Если HD4000 стоит на чипсете 6-ого поколения:

Тем самым, мы делаем подмену ID с IMEI на Sandy Bridge (0x1c3a) под IMEI на Ivy Bridge (0x1e3a). Ничего хорошего, конечно, это не принесёт, но это на данный момент лучшее решение. Хотя бы картинка будет 😀


Для завода AGPM добавим переименование видеокарты в ACPI таблицах с помощью бинарного патча:
Снимок экрана 2016-05-06 в 4.36.56.
Find: 47465830
Replace: 49475055

HDMI-звук:
На платформах Ivy и ниже свойство hda-gfx=»onboard-1″ цепляется к HDEF.
Мы реализуем это с помощью Arbitrary:

231282_e14df8ab7ae78aba33e64f26aab44f3c

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

  1. hda-gfx = onboard-1 – свойство для HDMI звука;
  2. subsystem-id = <70720000> (0x7270=Subsystem: Intel Corporation Device) – косметика;
  3. subsystem-vendor-id = <86800000> (8086=Intel) – косметика;
  4. layout-id = <03000000> (0x03) – через этот параметр мы инжектируем лейаут;
    //Следовательно, инжекцию через параметр Devices/Audio/Inject=X следует отключить (поставить NO), во избежание двойного патча
  5. AAPL,slot-name = Built In – косметика;
  6. device_type = Audio Controller – косметика;
  7. PciAddr = 00:1B.00 (0x001B0000) – PCI-адрес для HDEF.

А так же, HDMI должен быть виден в системе как HDMI, а не как DP, или ещё что-нибудь. Но правка коннекторов была проделана ещё до инжектирования IMEI, поэтому беспокоится не стоит.
Да и AppleALC от @vit9696 умеет правильный инжект HD4000 на платформах ig-platform-id 0x01660003, 0x01660009, 0x0166000A. Красота, товарищи! Золотая эра хакинтоша 😀


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

Ликбез: Яркость любой 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 графики.


Файлы:

  1. config-Intel-HD4000.plist – заготовка для завода Intel HD 4000. Остальные настройки за вами.
  2. config-Intel-HD4000-6-series.plist – заготовка для завода Intel HD 4000 на 6-ой серии чипсета. Настройки аналогичны п.1.
  3. IntelBacklight.kext – кекст на управление яркостью монитора ноутбуков.

29 комментариев to “Ivy Bridge

  • Парни беда какая то((
    В общем когда заводя графику двумя способами:
    1 — ваш
    2 — по пути наименьшего сопротивления, то есть — просто ставим в клевере инжект и пишем нужный фрейм у меня это 0x01660003
    Получается такая предательская картина, что графика просто осыпается спустя перезагрузки две….что так что так.
    Ситуация плачевная какая то
    выяснил что intelbacklight.kext тоже имеет влияние на графику и удалил, но это опять же дало две бонусные перезагрузки, при его использовании не на чистую систему опять же графика не заводится. (Для подобных тестов никаких в системе изменений не произвожу ВООБЩЕ!)
    Симптомы довольно специфичные, то есть — пропадает стеклянный вид и о плавности анимации мы вообще не слышали. как то так…Но в системе видеокарта определяется как надо и памяти ей выделено аж 1536мб 0_о. Еще заметил что заводя спидстеп через конфиги в клевере прозрачность тоже теряется, но тут решилось заводом в ССДТ.
    Когда я устал уже систему начисто устанавливать, спустя раз 15-ый наверное 😀 начал пользоваться машиной времени, и откатываться на 10 минут назад (а трятя30мин) ситуация повторяется в цикле. ((
    Помогите оживить моё чудо враждебной техники)
    И наконец конфигурация.
    Intel Core i7 3610QM 8гб ОЗУ
    Intel HD4000+AMD Radeon HD7670m
    звук alc269

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

      У меня два предположения.
      Либо HM65 чипсет, либо один из тех редчайших ситуёвин, когда слетает граф. ускорение, и нет методов починить.
      А, кстати говоря, радик-то отключён?

      • Чипсет HM76 тьфу тьфу тьфу)
        Радик принудительно не вырубал ибо не знаю как (люди делают как в то в ссдт но я не умею)
        А вообще в устройствах сам по себе он определился с исчерпывающей инфой (оно и понятно не инжектил ведь)
        Заметил что очень много вещей влияет на инжект интела, звук например (тут не удивляюсь)
        например ставлю wi-fi внешний d-link DWA140 и 160 с ПО от bear extender 5.4 и кекстом RT2870USBWirelessDriver.kext И вафля то работает на ура!) а вот графон может слететь. Но тут то я решил проблему. Кстати всё работает в идеале можете указать где-нибудь информация 100%. Сон выбить графику, то есть мы усыпляем бук, потом будим и всё хорошо, перезагружаем и бац! От сна графика валится систематически. Это уж что уж там в ACPI такого сверхъестественного не знаю(((
        Вот а на счёт графики тут где-то конфликт на лицо но вычислить в одну голову не могу)) может AMD на себя перетягивает обработку?
        если в клевере отключить инжект интела а поставить только инжект AMD то в информации о системе она даже пропишется как AMD Radeon HD7670M
        но если их инжектить обе то интел берет вверх и AMD уже не прописывается просто как МОНИТОР на шине PCI 😀 (ну это так, эксперимент вникуда)
        А теперь пожалуй позволю себе ввести в IT индустрию новую терминологию — ЧУДО.
        Как то раз взбрендило мне загрузиться с флешки, а там инжекты то прописаны по 2-му способу и всё заводится!!!!!! кааааак??? с теми же конфигами в загрузчике на ХДД всё фигово (причём если слетело само, то само обратно уже никак не вернется)
        Не долго это счастье может продлиться флешки)))

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

    • Здравствуйте. У меня ответ один — меняйте ноутбук. У меня в доме есть ASUS K55A на НМ76 и такая же проблема. Месяцы тестов ни к чему не привели. Проблему пытались решить с тремя очень опытными хакинтошниками и все бестолку. Они тоже с таким встречались и как это победить — не знают. Проблема глубже, чем в АЦПИ. Проблема в фреймбуфере видеокарты: он заточен под винду, а там есть драйвера и иногда разрабы ленятся сделать все, как надо и оставляют огрызок. В результате имеем проблему слетания ускорения. Мы тут бессильны…

  • Илья Козырев
    6 месяцев ago

    Здравствуйте, пробовал сделать все как тут написано. При загрузке экран просто тухнет и все( Помогите пожалуйста завести hd 4000((

  • Илья Козырев
    6 месяцев ago

    Пытаюсь на El Capitan завести.

  • Доброго времени суток, имею ноут dell 7720, пытаюсь завести hd 4000 hdmi video, дисплей имеет разрешение 1920 x 1080 и цепляется только к ig-platform-id 0x01660004, где нет доп коннекторов., есть возможность завести hdmi?
    BIOS A17, 7 Series/C210, HM77, i7-3630QM(HD 4000),
    optimus(GeForce GT 650M) отключён через ssdt

  • Забыл добавить, использую кловер на 10.11.6, в биосе нет настройки видеопамяти. В config.plist только ig-platform-id, инжект интел без разницы включен или выключен.

  • Андрей, спасибо большое! Пока попробовал на 0x01660008 0x01660009 -пусто, зато на 0x01660003 заработал hdmi, правда встроенный не показывает изображения, видимо фреймбуферы надо настраивать..Буду разбираться дальше..

  • Спасибо, hdmi video завёл по статье, сейчас со звуком разбираюсь.

  • Привет! В каждой статье написано про серию чипсета — версия 6 и версия 7. Но я не нашел нигде инфы как понять какая версия у меня. Буду благодарен за помощь!
    HP Spectre XT Pro 13-b000
    Ivy Bridge Mobile DualCore Intel Core i7-3537U
    Chipset Intel HM76

  • куда кидать этот плист

  • Здравствуйте , у меня возникли проблемы с завидением видеокарты HD4000, я побывал инжекнуть ее+ прописал в конфиг фреймубуфер и она завилась показывает что у нее 1,5к памяти , но проблема в том что начались моргания экрана и полосы. Прошу подсказать опытных. Система 10.11.6 , ноутбук Леново, процесор Intel core i3 3110m

  • Олег Кошкин
    2 недели ago

    Здравствуйте.

    Не знаю куда правильно стучать со своей проблемой, решил начать отсюда.

    Я Хакинтошник со стажем, первый Хак (Mac OS X Leopard 10.5) завел больше десяти лет назад.

    Каждое обновление оси (особенно в начале) приносило свои «сюрпризы» в виде неработоспособности чего либо, но вышел Clover, было подобрано «правильное» железо и обновление версий стало проходить гладко, почти как на обычном маке и Хак вытеснил домашний мультимедийный ПК на Windows.

    Железо на данный момент следующее (подбиралось под Apple iMac «Core i3″ 3.3 21.5-Inch (Early 2013)):

    GA-B75M-D3H I3-3225 16G 500G HDD.

    Clover последней версии, конфиг минимальный (SMBIOS загрузочный том, тема, имя файла с таблицей DSDT). DSDT пропатченая pjalm-овскими фиксами для этой матери и графики соответственно.

    Графика Intel HD 4000, по DVI подключен монитор Samsung 19» а HDMI подключен к одному из входов рессивера Pioneer 819 HDMI выход которого в свою очередь подключен к телевизору LG.

    В обычном режиме картинка выводится только на монитор Samsung 19», в случае необходимости посмотреть чего нибудь на большом экране (кино через XBMC с долби звуком etc) включается Pioneer и по HDMI через ресивер видео выводится на телевизор LG а звук выводится рессивером на акустику 5.1.

    Настроено это счастье было еще на Yosemite и прекрасно работало включая последнее обновление системы. EL Capitan «сломал» USB но решение сообществом было найдено быстро.
    И вот вышло обновление 10.11.4 и счастье кончилось(((
    При подключении второго монитора система стала молча улетать в перезагрузку.
    Откатился на 10.11.3 и стал почитывать соответствующие форумы (Сани, эпллайф, тонимака) в надежде что со временем как обычно коллективный ум решит эту проблему.
    Но решения так и не нашел. Даже упоминания о подобной ситуации, как будто то я один такой.
    Обновился на Sierr-у проблема осталась. Сидеть всю жизнь на 10.11.3 как то не очень улыбается.
    Посоветуй те что нибудь. Все что нужно (dsdt конфиги и прочее готов предоставить).

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

      Приветствую.
      Забавная ситуёвина.
      Напишите мне в вк или телеграмме. Посмотрим-поколдуем.

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

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

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