Broadwell

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

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


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


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

  • 0x0bd1: – HD Graphics (GT1);
  • 0x0bd2: – HD Graphics (GT2);
  • 0x0bd3: – HD Graphics (GT3);
  • 0x1602: – HD Graphics (GT1 HALO);
  • 0x1606: – HD Graphics (GT1 ULT);
  • 0x160a: – неизвестно;
  • 0x160b: – неизвестно;
  • 0x160d: – неизвестно;
  • 0x160e: – неизвестно (GT1 ULX);
  • 0x1612: – HD Graphics 5600 (GT2 HALO);
  • 0x1616: – HD Graphics 5500 (GT2 ULT);
  • 0x161a: – неизвестно;
  • 0x161b: – неизвестно;
  • 0x161d: – неизвестно;
  • 0x161e: – HD Graphics 5300 (GT2 ULX);
  • 0x1622: – Iris Graphics 6200 (GT3 HALO);
  • 0x1626: – HD Graphics 6000 (GT3 ULT);
  • 0x162a: – Iris Graphics P6300 (GT3 WRKS);
  • 0x162b: – Iris Graphics 6100 (GT3 ULT);
  • 0x162d: – Iris Graphics P6300 (GT3 SRVR);
  • 0x162e: – неизвестно.

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

[ 1] : 0x16060000 – Broadwell GT1
[ 2] : 0x160e0000 – Broadwell GT1
[ 3] : 0x16160000 – Broadwell GT2
[ 4] : 0x161e0000 – Broadwell GT2 (MacBook)
[ 5] : 0x16260000 – Broadwell GT3 (MacBook Air)
[ 6] : 0x162b0000 – Broadwell GT3 (MacBook Pro)
[ 7] : 0x16220000 – Broadwell GT3
[ 8] : 0x160e0001 – Broadwell GT1
[ 9] : 0x161e0001 – Broadwell GT2 (MacBook)
[10] : 0x16060002 – Broadwell GT1
[11] : 0x16160002 – Broadwell GT2
[12] : 0x16260002 – Broadwell GT3 (MacBook Air)
[13] : 0x16220002 – Broadwell GT3
[14] : 0x162b0002 – Broadwell GT3 (MacBook Pro)
[15] : 0x16120003 – Broadwell GT2
[16] : 0x162b0004 – Broadwell GT3 (MacBook Pro)
[17] : 0x16260004 – Broadwell GT3 (MacBook Air)
[18] : 0x16260005 – Broadwell GT3 (MacBook Air)
[19] : 0x16260006 – Broadwell GT3 (MacBook Air)
В бинарном виде:

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

Broadwell – практически полностью мобильная архитектура. На стационарных компьютерах встречаются 10 процессоров, 5 из которых созданы для встраиваемых систем. Завод стационарной графики рассматривать не будем, но заводится она по аналогии с мобильной.

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

  • iMac16,1;
    Лучше подходит для стационарной HD Graphics 6000
  • iMac16,2;
    Лучше подходит для стационарной Iris Graphics 6200
  • MacBook8,1;
    Лучше подходит для мобильной HD Graphics 5300 и процессоров Core M
  • MacBookPro12,1;
    Лучше подходит для мобильной Iris Graphics 6100
  • MacBookAir7,1/7,2;
    Лучше подходит для мобильной HD Graphics 6000

Завод.


Мобильная Intel HD5500 и HD5600:

Рассмотрим пример завода на этих картах:

  • HD Graphics 5500 (ULT GT2), id: 0x1616
  • HD Graphics 5600 (HALO GT2), id: 0x1612

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

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

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

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

  1. subsystem-id = 86800000 (8086 = Intel) – косметика;
  2. subsystem-vendor-id = 6B100000 (106B = Apple) – косметика;
  3. device-id = 26160000 (0x1626)  – инжекция ID;
  4. AAPL,ig-platform-id = 06002616 (0x16260006) – инжекция ig-platform-ID;
  5. graphics-options = 0C000000 – на всякий случай
  6. model = Intel HD Graphics 5500 – косметика;
    В случае с другой картой прописываете своё значение, например:
    model = Intel HD Graphics 5600;
  7. hda-gfx = onboard-1 – свойство для HDMI звука;
  8. PciAddr = 00:02.00 – стандартный PCI адрес встроенной графики.

FakeID для IMEI.


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

Нативные ID:

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

  • BA8C0000 (0x8cba)

Вытащены из AppleIntelBDWGraphicsFramebuffer.kext

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

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

Снимок экрана 2016-09-07 в 14.12.02

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

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

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

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

Снимок экрана 2016-09-07 в 15.52.56

Find: 47465830
Replace: 49475055

Выделение DMVT-Памяти.


Если в биосе нельзя менять значение и выделено меньше 96мб , то получим панику типа minStolenSize <= fStolenMemorySize

Можно применить как временное решение такой патч:
//Многие жалуются на то, что патчи не работают, поэтому мы рекомендуем сразу перейти к пункту про EFI-Shell

OS X 10.10.x:

Name: AppleIntelBDWGraphicsFramebuffer
Find: 39CF763C
Replace: 39CFEB3C

OS X 10.11.x:

Name: AppleIntelBDWGraphicsFramebuffer
Find: 4139C4763E
Replace: 4139C4EB3E

После чего желательно провести изменение настроек DMVT (выделенной памяти) в биосе с помощью EFI Shell.

  1. Подготовьте загрузочную флешку с EFI Shell.
    Отформатируйте флешку в FAT32.
    Скачайте этот EFI shellи скопируйте папку BOOT на флешку ,предварительно создав на ней папку EFI и поместив папку BOOT в папку EFI.
  2. Сдампите или скачайте полноценную прошивку вашего BIOS.
    Вы можете использовать специализированные утилиты для своей версии биоса.
    Например, если у вас AMI Aptio UEFI BIOS, то нужно использовать AMI BIOS Utility.
    //Acer и прочие ноутбуки, которые обновляют биос с помощью флешера из Windows
    //С помощью 7-Zip можно открыть EXE и вытащить оттуда файл BIOS’а
  3. Вытаскивайте настройки биоса из файла.
    Скачайте UEFITools отсюда – https://github.com/LongSoft/UEFITool/releases
    Откройте биос с помощью UEFITools.
    Найдите модуль с названием Setup и экспортируйте как PE32 Image Secrion в этом модуле как бинарный файл.

%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-08-%d0%b2-0-17-54

Теперь у вас на рабочем столе лежит бинарный файл. Я назову его, допустим, Setup.bin.
Затем скачайте Universal IFR Extractor (Версия, увы, только для Windows) отсюда или отсюда — Universal IFR Extractor.exe.
Открываем в Universal IFR Extractor бинарник, извлечённый UEFITools, и нажимаем Extract, для сохранения настроек BIOS в текстовом формате.

sshot-3.png

Теперь откройте IFR.txt, и ищите по ключевому слову DVMT.
Вы найдете переменную, обозначающую DVMT (предварительно выделенную память) и её значение (размер).

 

1

В нашем случае, переменная DVMT называется 0х1С3, а значение 96М обозначается как 0x3.
Запишите эти два значения на листок.

Затем перезагрузитесь в EFI Shell, который находится на флешке.
Здесь вводим комманду setup_var для изменения наших BIOS настроек.
Синтаксис команды setup_var — setup_var address value, где address – имя переменной, а value – значение переменной.
После чего введите команду в EFI shell. В моём случаем команда будет такая:
setup_var 0x1C3 0x3
Дословно эта команда означает «задать переменной 0х1C3 значение 0х3«, что означает изменение DVMT до 96МБ.
После изменения DVMT, возвращаемся в Windows и перепроверьте, является ли «Dedicated Video Memory» (Выделенная Видеопамять) 64 МБ.
Да, именно 64. Windows отрезает от итогового значения 32 мегабайта памяти, следовательно итоговое значение в Windows считается так: 96 — 32 = 64 МБ
Паника на minStolenSize <= fStolenMemorySize больше не будет появляться.

Если вам не подошёл этот способ…

Поищите информацию по патчингу биоса от таких авторов, как Donovan, и прочих профессионалов в сфере патчинга биоса.
Почему? Потому что патч биоса это отдельная тема, не самая универсальная. Напрямую зависит от производителя биоса, и многих других тонкостей.


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-08-%d0%b2-1-32-49
Find: 42304433
Replace: 48444155

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

ig-platform-id = 0x16260006
//
оригинальный фрейм

0600 2616 0103 0303 0000 2002 0000 5001 //ig-platform-id: 0x16260006; DVMT: 34mb; FBMem: 21mb
0000 0060 d90a 0000 d90a 0000 0000 0000 //VRAM: 1536mb;
0000 0000 0000 0000 0000 0800 0200 0000 //LVDS (монитор ноутбука); Коннектор: 02000000; Порт: 0x0;
3000 0000 0105 0b00 0004 0000 0705 0000 //DP; Коннектор: 00040000; Порт: 0x5
0204 0b00 0004 0000 0705 0000 ff00 0000 //DP; Коннектор: 00040000; Порт: 0x6
0100 0000 4000 0000 0f0b 0000 0101 0500
0000 0000 0500 0000 0000 0000 0400 0000
Список коннекторов:
02000000 = LVDS connector
00040000 = DP connector
00080000 = HDMI connector

Порт, на котором висит HDMI вычисляется опытным путем, заглядывая в IOREG.
Но не будет ничего плохого, если пропатчить сразу 2 конектора DP -> HDMI

%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-08-%d0%b2-1-40-44

Патч порта 0x5:

Name: AppleIntelBDWGraphicsFramebuffer
Find: 01050b000004000007050000
Replace: 01050b000008000082000000

Патч порта 0x6:

Name: AppleIntelBDWGraphicsFramebuffer
Find: 02040B000004000007050000
Replace: 02040B000008000082000000

Инжект свойств на 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-08-%d0%b2-1-41-32

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

  • layout-id = 1C000000 – лайоут звука, который используете для HDEF;
    //поменяйте на свой, если используете другой лайоут
  • hda-gfx = onboard-1;
  • PciAddr = 00:03.00.

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


Ликбез: Яркость любой 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. Остальные настройки за вами.

Кексты:

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

Спасибо за прочтение!

Для вас старались:

Оригинальный пост на applelife.ru

10 комментариев to “Broadwell

  • Здравствуйте, большое спасибо за инструкцию по заводу видеокарты.
    При загрузке в режиме Legacy проблем нет не каких, но если загружать систему в режиме UEFI то появляются фризы, пока ноутбук не введешь в режим сна и снова включишь то тогда фризы исчезают, можно ли как-то это исправить?

  • Ноутбук: Acer Aspire v15 (vn7-571g-586d)
    Видео: HD5500
    Процессор: i5-5200U

  • а если у меня ID не 0x16260006, a 0x16160002
    как тогда? как перевести? где это написанно?

  • Игорь Некачало
    1 месяц ago

    Не грузится EFI shell с флешки. Кто нить пробовал запускать и загрузится в Shell? Не хочет если просто папку BOOT скопировать и если EFI shell.И не у меня одного. просто сам попробовал и правда не вышло.

  • Игорь Некачало
    1 месяц ago

    Папку BOOT надо засунуть в папку EFI/ а не просто BOOT на флешку кинуть.Дополнил .

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

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

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