Sandy Bridge

HD3000 Sandy bridge


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


Ставилось это чудо в MacBook Pro (8,1 – 8,3), и MacMini (5,1 – 5,3).
Для десктопа ставим MacMini, а для ноутбуков, соответственно, MacBook Pro.
И, как было сказано ранее – “Завод HD3000 – во многих случаях достаточно модели MacBookPro8,2 MacBookPro8,3 или Macmini5,1”. Но я с этим категорически не согласен – данный “завод” является недостаточным. И большое спасибо Slice и клеверу, что это работает более-менее успешно.
Смбиосы:

  • MacMini 5,1 – если у вас есть дискретная видеокарта, и вы заводите HD3000 для нужд AirPlay/iTunes Video/etc;
  • MacMini 5,2 – если HD3000 является единственной картой, и мониторы будут подключаться к ней;
  • MacBook Pro 8,1; 8,2-8,3 – если у вас ноутбук.
    *Если у вас стоит второй картой заводимый радеон, то лучше всего поставить MBP8,2-8,3 (только там есть вторая карта);
    **Если вторая карта нвидия, то вообще забываем о дискретке.

“А какой же завод тогда является достаточным?”, – подумали вы.


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

  1. Выставить смбиос, в котором была Intel HD3000 (MacBookPro8,x для ноутбуков и MacMini5,x для десктопов);
  2. Проинжектить snb-platform-id (0x00000100); NumFramebuffers (0x00000003); LinkType (0x00000000);
  3. Инжектировать свойства для HD3000;
  4. Инжектировать свойства для IMEI;
    1. Если HD3000 на чипсете Ivy (7-ое поколение), выполнить маскировку IMEI под 6-ое поколение (0x1e3a);
  5. Переименовать в ACPI видеокарту GFX0 -> IGPU (для AGPM);
  6. Задать параметр onboard-1 (для звука по HDMI);
  7. Выставить фиксы AddDTGP + AddPNLF, и подкинуть в кловер IntelBacklight.kext (только для ноутбуков);
  8. Изменить в BIOS’е параметр Max tolud с любого значения на Dynamic.
    1. Это помогает против лагов на некоторых ноутбуках. Этот параметр есть не у всех, и, он может быть скрыт. Спасибо товарищу @Vorond за информацию.
  9. Прописать аргумент slide=0 (если остаются проблемы с артефактами).
ОЧЕНЬ ВАЖНО: Помните, что при инжекции через Arbitrary, вы должны отключить все прочие инжекции, типа Grapchis/Inject/Intel, или удалить соответствующий _DSM в DSDT!

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

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

  1. subsystem-id = <86800000> (8086=Intel) – косметика;
  2. subsystem-vendor-id = <6b100000> (106b=Apple) – косметика;
  3. device-id = <26010000> (0x0126) – подмена ID;
  4. AAPL,snb-platform-id = <00000100> (0x00010000) – SNB-платформа (фреймбуффер);
  5. AAPL,NumFramebuffers = <03000000> (0x0000003) – количество выходов;
  6. AAPL,LinkType = <00000000> (0x0000000) – тип сигнала;
  7. model = Intel HD Graphics 3000 – косметика;
  8. hda-gfx = onboard-1 – свойство для HDMI звука;
  9. PciAddr = 00:02.00 (0x00020000) – PCI-адрес для встроенной графики.
  10. Если разрешение LVDS больше 1366*768, необходимо проинжектировать ещё один параметр:
    AAPL00,DualLink = <01000000>

Инжекция свойств IMEI (Intel ME Interface):
Подмена необходима в случае не нативного ID у данного девайса.
Нативный ID всего один – 3a1c0000 (0x1c3a), следовательно, если ID у вашего IMEI отличается от этого, то необходимо провести маскировку:

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

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

  1. subsystem-id = <70720000> (0x7270=Subsystem: Intel Corporation Device [8086:7270]) – косметика
  2. subsystem-vendor-id = <6b100000> (106b=Apple) – косметика
  3. device-id = <3a1c0000> (0x1c3a) – подмена ID (чего мы и добиваемся)
  4. PciAddr = 00:16.00 (0x00160000) – PCI-адрес для Intel ME интерфейса
Если HD3000 стоит на чипсете 7-ого поколения:
Понятия не имею, что принимали инженеры, которые проектируют такие ноутбуки, но явно что-то не слабое .
В любом случае, это чинится дополнительным ключом инжеции, в дополнение к указанным в пункте “Инжекция IMEI (Intel ME Interface)”.

<dict>
    <key>Key</key>
    <string>name</string>
    <key>Value</key>
    <string>pci8086,1c3a</string>
</dict>

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


Для завода AGPM добавим переименование видеокарты в ACPI таблицах с помощью бинарного патча:

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

Find: 47465830
Replace: 49475055

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

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

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

  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, или ещё что-нибудь. В конфиг уже вписаны патчи DP->HDMI, для двух портов, поскольку ничего криминального здесь я не вижу.
Снимок экрана 2016-05-05 в 6.15.45.


VGA.
Хоть VGA и вырезали (и правильно сделали!), у некоторых товарищей остаётся необходимость его использования. Что-ж, вот патчи:
1.
Find: 01020400 10070000 10070000 05030000 02000000 30000000
Name: AppleIntelSNBGraphicsFB
Replace: 01020100 10070000 10070000 06020000 02000000 30000000
2.
Find: 04060000 00040000 09000000
Name: AppleIntelSNBGraphicsFB
Replace: 00000000 00000000 00000000

На горячую вга работать не будет.


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

Ликбез: Яркость любой 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-HD3000.plist – заготовка для завода Intel HD 3000. Остальные настройки за вами.
  2. config-Intel-HD3000-7-series.plist – заготовка для завода HD 3000 на “седьмом” чипсете.
  3. IntelBacklight.kext – кекст на управление яркостью монитора ноутбуков.

Оригинальный пост на лайфе.

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

%d такие блоггеры, как: