# Ноутбучный Ivy Bridge

Поддержка Версия
Поддерживаемая версия OpenCore 0.6.9
Начало поддержки в macOS OS X 10.7, Lion

# Отправная точка

И так, создание config.plist может показаться сложным, но это не так. Это просто занимает некоторое время, но это руководство расскажет вам как всё конфигурировать, и вы не останетесь в стороне. Это также означает, что если у вас есть проблемы, проверьте настройки конфига, чтобы убедиться, что они правильные. Основные моменты, которые нужно подметить с OpenCore:

  • Все свойства должны быть определены, у OpenCore нет значений по умолчанию, поэтому не удаляйте разделы, если это явно не указано. Если руководство не упоминает эту опцию, оставьте значения по умолчанию
  • Sample.plist не может использоваться как есть (as is), вы должны сконфигурировать его к вашей системе
  • НЕ ИСПОЛЬЗУЙТЕ КОНФИГУРАТОРЫ, они редко соблюдают конфигурацию OpenCore, и даже такие как, от Mackie добавляют свойства из Clover и ломают plist!

С этим всё, быстрое напоминание, какие инструменты нам нужны:

И прочтите это руководство несколько раз, прежде чем настраивать OpenCore, и убедитесь, что он правильно настроен. Обратите внимание, что изображения не всегда будут актуальными, поэтому прочтите текст под ними, если ничего не сказано - оставьте значения по умолчанию.

# ACPI

ACPI

# Add

Информация

Здесь вы добавите SSDT для вашей системы, это очень важно чтобы загрузить macOS, и они имеют множество применений, к примеру USB map (opens new window), отключение неподдерживаемых GPU и т.п. А с нашей системой, она обязана загрузиться. Рукводство по созданию SSDT можно найти здесь: Начало работы с ACPI (opens new window)

Нам понадобится пара SSDT, чтобы вернуть функциональность, предоставляемую Clover:

Требумые_SSDT Описание
SSDT-PM (opens new window) Необходимо для правильного управления питанием процессора, вам нужно будет запустить скрипт ssdtPRGen.sh от Pike для создания этого файла. Это будет выполнено после установки (opens new window).
SSDT-EC (opens new window) Исправления для встроенных контроллеров, см. Руководство по началу работы с ACPI (opens new window) для получения дополнительной информации.
SSDT-XOSI (opens new window) Заставляет все вызовы _OSI, специфичные для Windows, работать с идентификатором macOS (Darwin). Это может помочь включить некоторые функции, такие как XHCI и другие.
SSDT-PNLF (opens new window) Исправляет регулировку яркости, см. Руководство по началу работы с ACPI (opens new window) для получения дополнительной информации. Обратите внимание, что Intel NUC не нуждается в этом
SSDT-IMEI (opens new window) Необходимо для добавления отсутствующих IMEI устройств на процессорах Ivy Bridge с материнскими платами 6 серии

Обратите внимание, что вы не должны добавлять ваш сгенерированный DSDT.aml сюда, он уже есть в вашей прошивке. Поэтому, если он есть, удалите запись в вашем config.plist и из папки EFI/OC/ACPI.

Для тех, кто хочет глубже нырнуть в дамп своего DSDT, как создавать SSDT и компилировать их, см. страницу Начало работы с ACPI (opens new window). Скомпилированные SSDT имеют расширение .aml(Assembled) и помещаются в папку EFI/OC/ACPI, а также должны быть указаны в вашем конфиге в ACPI -> Add.

# Delete

Информация

Этот раздел блокирует загрузку определенных ACPI таблиц, для нас это действительно важно. Основная причина, что XCPM от Apple не слишком хорошо поддерживает IvyBridge и может вызвать панику AppleIntelCPUPowerManagement при загрузке. Чтобы избежать это, мы сделаем собственный PM SSDT После установки (opens new window) и дропнем (удалим) старые таблицы (Обратите внимание, что это временно, пока мы не сделаем наш SSDT-PM, мы снова включим эти таблицы):

Удаление CpuPm:

Key Type Value
All Boolean YES
Comment String Delete CpuPm
Enabled Boolean YES
OemTableId Data 437075506d000000
TableLength Number 0
TableSignature Data 53534454

Удаление Cpu0Ist:

Key Type Value
All Boolean YES
Comment String Delete Cpu0Ist
Enabled Boolean YES
OemTableId Data 4370753049737400
TableLength Number 0
TableSignature Data 53534454

# Patch

Информация

Этот раздел позволяет нам динамически модифицировать части ACPI (DSDT, SSDT, и т.д.) через OpenCore. В нашем случае, нам понадобится следующее:

  • Переименование OSI
    • Это необходимо при использовании SSDT-XOSI, поскольку мы перенаправляем все вызовы OSI на этот SSDT
Comment String Change _OSI to XOSI
Enabled Boolean YES
Count Number 0
Limit Number 0
Find Data 5f4f5349
Replace Data 584f5349

# Quirks

Настройки относящиеся к ACPI, оставьте здесь всё по умолчанию, так как нам эти квирки не нужны.

# Booter

Booter

Этот раздел посвящен квиркам относящимся к патчингу boot.efi с помощью OpenRuntime, заменяющего AptioMemoryFix.efi

# MmioWhitelist

Этот раздел позволяет передавать пробелы (spaces) в macOS, которые обычно игнорируются; полезно в сочетании с DevirtualiseMmio

# Quirks

Info

Настройки относящиеся к патчингу boot.efi и исправлению прошивки, в нашем случае, мы оставим всё по умолчанию

Более подробная информация
  • AvoidRuntimeDefrag: YES
    • Исправляет рантайм сервисы UEFI, такие как дата, время, NVRAM, управление питанием, т.д.
  • EnableSafeModeSlide: YES
    • Позволяет использовать Slide переменные в безопасном режиме.
  • EnableWriteUnprotector: YES
    • Нужен для снятия защиты от записи CR0 регистра.
  • ProvideCustomSlide: YES
    • Используется для вычисления значения Slide переменной. Необходимость этого квирка определяется сообщением OCABC: Only N/256 slide values are usable! в дебаг логах. Если сообщение OCABC: All slides are usable! You can disable ProvideCustomSlide! присутствует в вашем логе, вы можете отключить ProvideCustomSlide.
  • SetupVirtualMap: YES
    • Исправляет вызовы SetVirtualAddresses на виртуальные адреса, требуется для плат Gigabyte для устранения ранних паник ядра.

# DeviceProperties

DeviceProperties

# Add

Устанавливает Device Properties в map.

PciRoot(0x0)/Pci(0x2,0x0)

Этот раздел настраивается с помощью Патчинга фреймбуфера (opens new window)(на русском (opens new window)) в WhateverGreen и используется для настройки важных свойств iGPU.

При настройке iGPU, нижеприведенная таблица должна помочь найти правильные значения для установки. Вот объяснение некоторых значений:

  • AAPL,ig-platform-id
    • Это используется внутри для настройки iGPU
  • Type
    • Рекомендуется ли запись для ноутбуков (т.е. со встроенными дисплеями) или для Intel NUC(т.е. автономных коробок)

Обычно, при настройке свойств iGPU следуйте этим шагам. Следуйте примечаниям к конфигурации под таблицей, если они говорят иначе:

  1. При первоначальной настройке config.plist укажите только AAPL,ig-platform-id - обычно этого достаточно
  2. Если вы загружаетесь и не получаете ускорения графики (7 МБ видеопамяти и однотонный фон дока), вам, вероятно, придется попробовать другие значения AAPL,ig-platform-id, добавить stolenmem патчи, или даже добавить свойство device-id.
AAPL,ig-platform-id Type Комментарии
03006601 Laptop Для использования с дисплеями 1366 на 768 или меньше
04006601 Laptop Для использования с дисплеями 1600 на 900 или больше, см. ниже дополнительные патчи
09006601 Laptop Для использования с некоторыми устройствами, имеющими подключенный eDP монитор (в отличие от классического LVDS), необходимо сначала протестировать 03006601 и 04006601, прежде чем попробовать это.
0b006601 NUC Для использования с Intel NUC

# Примечания к конфигурации

  • VGA не поддерживается (если он не работает через внутренний адаптер DP-VGA, который, по-видимому, только редкие устройства будут видеть его как DP, а не VGA, все дело в удаче.)

  • Если вы используете 04006601 в ig-platform-id, вам может потребоваться добавить следующие параметры для исправления внешних выходов, иначе у вас будет только один выход. (Благодарность Rehabman)

Key Type Value Объяснение
framebuffer-patch-enable Number 1 включение семантических патчей (из руководства WEG)
framebuffer-memorycount Number 2 Сопоставление FBMemoryCount с тем, что находится на 03006601 (1 на 04 против 2 на 03)
framebuffer-pipecount Number 2 Сопоставление PipeCount на 03006601 (3 на04 против 2 на 03)
framebuffer-portcount Number 4 Сопоставление PortCount на 03006601 (3 на 04 против 2 на 03)
framebuffer-stolenmem Data 00000004 Сопоставление STOLEN памяти с 64 МБ (0x04000000 от hex до base 10 в байтах) с памятью на 03006601
Проверьте здесь (opens new window) для получения дополнительной информации.
framebuffer-con1-enable Number 1 Это позволит включить патчинг connector1 драйвера (Это второй разъем после con0, который является eDP/LVDS)
framebuffer-con1-alldata Data 02050000 00040000 07040000 03040000 00040000 81000000 04060000 00040000 81000000 При использовании всех данных с коннектором либо вам предоставляется вся информация об этом коннекторе (port-bused-type-flag), либо об этом порте и следующих за ним, как в этом случае.
В этом случае количество портов в 04 ограничено 1:
05030000 02000000 30020000 (что соответствует порту 5, который является LVDS)
Однако на 03 есть 3 дополнительных порта:
05030000 02000000 30000000 (LVDS, con0, как 04)
02050000 00040000 07040000 (DP, con1)
03040000 00040000 81000000 (DP, con2)
04060000 00040000 81000000 (DP, con3)
Поскольку мы изменили количество PortCount на 4 на платформе, которая имеет только 1, это означает, что нам нужно определить 3 других (и мы, начиная с con1 до конца).

PciRoot(0x0)/Pci(0x16,0x0)

Гибриды Sandy/IvyBridge:

Некоторые ноутбуки той эры поставлялись со смешанными чипсетами, использующим процессоры Sandy Bridge с чипсетом Ivy Bridge, что создает проблемы с macOS, так как он ожидает определенного IMEI (opens new window) идентификатора, который он не находит и зависает при загрузке (поскольку драйверы iGPU от Apple требуют IMEI устройство (opens new window)), чтобы исправить это, нам нужно подделать идентификаторы IMEI в этих моделях

  • Чтобы узнать, затронуты ли вы, проверьте, является ли вашим процессором Intel Core ix-3xxx, а чипсетом Hx6x (к примеру, ноутбук с HM65 или HM67 с Core i3-3110M) с помощью таких инструментов, как AIDA64.
  • В своей конфигурации, добавьте новое PciRoot устройство с именем PciRoot(0x0)/Pci(0x16,0x0)
Key Type Value
device-id Data 3A1E0000

PciRoot(0x0)/Pci(0x1b,0x0)

layout-id

  • Применяя инжекцию звука AppleALC, вам нужно будет самостоятельно изучить, какой кодек у вашей материнской платы, и сопоставить с layout AppleALC. Поддерживаемые кодеки AppleALC (opens new window).
  • Вы можете удалить это свойство, посколько оно не используется нами в настоящее время

Вместо этого, мы будем использовать boot-arg alcid=xxx. alcid переопределит все другие layout-ID. Подробнее об этом можно узнать на странице После установки (opens new window)

# Delete

Удаляет Device Properties из map, в нашем случае, мы можем игнорировать это.

# Kernel

Kernel

# Add

Здесь мы указываем, какие кексты загружать, в каком конкретно порядке загружать, и для каких архитектур предназначен каждый кекст. По умолчанию, мы рекомендуем оставить как сделал ProperTree, однако для 32-битных процессоров, смотрите ниже:

Более подробная информация

Главное, что нужно иметь в виду, это:

  • Порядок загрузки
    • Помните, что любые плагины должны загружаться после своих зависимостей
    • Это означает, что кексты как Lilu должны загружаться до VirtualSMC, AppleALC, WhateverGreen, т.д.

Напоминаем, что пользователи ProperTree (opens new window) могут нажать Cmd/Ctrl + Shift + R для добавления всех своих кекстов в правильном порядке без вручного вписывания каждого из них.

  • Arch
    • Архитектуры поддерживаемые этим кекстом
    • Доступные в настоящее время значения Any, i386 (32-бит), и x86_64 (64-бит)
  • BundlePath
    • Название кекста
    • например: Lilu.kext
  • Enabled
    • Не требует пояснений: либо включает, либо отключает кекст
  • ExecutablePath
    • Путь к фактическому исполняемому файлу; скрыт в кексте, вы можете увидеть, какой путь имеет ваш кекст, щелкнув ПКМ по кексту и выбрав пункт Показать содержимое пакета. Обычно, они бывают в Contents/MacOS/Kext, но у некоторых кекстов он скрывается в папке Plugin. Обратите внимание, что plist'ы только у кекстов не нуждаются в заполнении.
    • например: Contents/MacOS/Lilu
  • MinKernel
    • Минимальная версия ядра, в которую будет инжектироваться ваш кекст, см. возможные значения в таблице ниже
    • например, 12.00.00 для OS X 10.8
  • MaxKernel
    • Максимальная версия ядра, в которую будет инжектироваться ваш кекст, см. возможные значения в таблице ниже
    • например, 11.99.99 для OS X 10.7
  • PlistPath
    • Путь к info.plist, скрытому в кексте
    • например: Contents/Info.plist
Таблица поддерживаемых ядер
Версия OS X MinKernel MaxKernel
10.4 8.0.0 8.99.99
10.5 9.0.0 9.99.99
10.6 10.0.0 10.99.99
10.7 11.0.0 11.99.99
10.8 12.0.0 12.99.99
10.9 13.0.0 13.99.99
10.10 14.0.0 14.99.99
10.11 15.0.0 15.99.99
10.12 16.0.0 16.99.99
10.13 17.0.0 17.99.99
10.14 18.0.0 18.99.99
10.15 19.0.0 19.99.99
11 20.0.0 20.99.99

# Emulate

Требуется для спуфинга (подмены) неподдерживаемых процессоров, таких как Pentium и Celeron

  • CpuidMask: Оставьте это поле пустым
  • CpuidData: Оставьте это поле пустым

# Force

Используется для загрузки кекстов с системного тома, актуально только для старых операционных систем, где некоторые кексты отсутствуют в кэше (например, IONetworkingFamily в 10.6).

В нашем случае, мы можем игнорировать это.

# Block

Блокирует загрузку определенных кекстов. Не релевантно для нас.

# Patch

Патчит ядро с кекстами. Нам это не нужно.

# Quirks

Информация

Настройки относящиеся к ядру, для нас мы изменим следующее:

Quirk Enabled Комментарии
AppleCpuPmCfgLock YES Не требуется, если CFG-Lock отключен в BIOS
DisableIOMapper YES Не требуется, если VT-D отключен в BIOS
LapicKernelPanic NO Компьютеры HP нуждаются в этом квирке
PanicNoKextDump YES
PowerTimeoutKernelPanic YES
XhciPortLimit YES
Более подробная информация
  • AppleCpuPmCfgLock: YES
    • Требуется только, когда CFG-Lock нельзя отключить в BIOS
    • Применимо только для Ivy Bridge и старее
      • Примечание: Broadwell и старее требуют этого при запуске 10.10 или старее
  • AppleXcpmCfgLock: NO
    • Требуется только, когда CFG-Lock нельзя отключить в BIOS
    • Применимо только для Haswell и новее
      • Примечание: Ivy Bridge-E также включен, поскольку он поддерживает XCPM
  • CustomSMBIOSGuid: NO
    • Выполняет патчинг GUID для UpdateSMBIOSMode установленным в Custom. Обычно актуально для ноутбуков Dell
    • Включение этого квирка с UpdateSMBIOSMode в Custom может также отключать инжекцию SMBIOS в ОС не от Apple, однако мы не одобряем этот метод, потому что он ломает совместимость с Bootcamp. Используйте на свой страх и риск
  • DisableIoMapper: YES
    • Необходим для обхода VT-D, если он не может быть отключен в BIOS или необходим для других операционных систем, гораздо лучшая альтернатива dart=0, поскольку SIP может оставаться включенным в Catalina
  • DisableLinkeditJettison: YES
    • Позволяет Lilu и другим более надежно работать без keepsyms=1
  • DisableRtcChecksum: NO
    • Предотвращает запись AppleRTC в основную контрольную сумму (0x58-0x59), требуется для тех пользователей, у которых сбрасывается BIOS или отправляется в безопасный режим после перезагрузки/выключения
  • ExtendBTFeatureFlags NO
    • Полезно для тех, у кого есть проблемы со стабильностью работы с картами не от Apple/Fenvi
  • LapicKernelPanic: NO
    • Отключает панику ядра на прерывании lapic AP ядра, что обычно необходимо для систем HP. Эквивалентно Kernel LAPIC в Clover
  • LegacyCommpage: NO
    • Устраняет требование SSSE3 для 64-битных процессоров в macOS, в основном актуально для 64-битных процессоров Pentium 4 (например, Prescott)
  • PanicNoKextDump: YES
    • Позволяет читать логи паники ядра, когда произошла паника ядра
  • PowerTimeoutKernelPanic: YES
    • Помогает устранить паники ядра, связанные с изменениями питания в драйверах Apple в macOS Catalina, особенно с цифровым звуком.
  • SetApfsTrimTimeout: -1
    • Устанавливает таймаут Trim в микросекундах для SSD с файловой системой APFS. Применимо только для macOS 10.14 и новее с проблемными SSD.
  • XhciPortLimit: YES
    • Фактически, это исправление ограничения на 15 портов, не надейтесь на это, как на гарантированное решение для исправления USB. Пожалуйста, создайте USB map (opens new window), когда это возможно.

Причина в том, что UsbInjectAll повторяет встроенную функциональность macOS без надлежащей настройки. Гораздо чище просто описать ваши порты в одном кексте с только plist, который не будет тратить впустую runtime память и т.п.

# Scheme

Настройки относящиеся к загрузке устаревших версий(т.е. 10.4-10.6), большинство может пропустить, однако для тех, кто планирует загружать устаревшие ОС, вы можете увидеть ниже:

Более подробная информация
  • FuzzyMatch: True

    • Используется для игнорирования контрольных сумм с помощью kernelcache, вместо этого выбирая последний доступный кэш.
  • KernelArch: x86_64

    • Устанавливает тип архитектуры ядра, вы можете выбрать между Auto, i386 (32-бит), и x86_64 (64-бит).
    • Если вы загружаете старые ОС, которые требуют 32-битного ядра(т.е. 10.4 и 10.5), мы рекомендуем установить значение на Auto и позволить macOS принять решение на основе вашего SMBIOS. Поддерживаемые значения смотрите в таблице ниже:
      • 10.4-10.5 — x86_64, i386 или i386-user32
        • i386-user32 относится к 32-битному userspace, поэтому 32-битные процессоры должны его использовать (или процессоры без SSSE3)
        • x86_64 по-прежнему будет иметь 32-битное kernelspace, однако обеспечит 64-битный userspace в 10.4/5
      • 10.6 — i386, i386-user32, или x86_64
      • 10.7 — i386 или x86_64
      • 10.8 или новее — x86_64
  • KernelCache: Auto

    • Задаёт тип кэша ядра, в основном используется для отладки и поэтому мы рекомендуем Auto для лучшей поддержки

# Misc

Misc

# Boot

Настройки экрана загрузки(оставьте всё по умолчанию).

# Debug

Информация

Полезно для отладки проблем при загрузке OpenCore(Мы всё изменим, кроме DisplayDelay):

Quirk Enabled
AppleDebug YES
ApplePanic YES
DisableWatchDog YES
Target 67
Более подробная информация
  • AppleDebug: YES
    • Включает логирование boot.efi, полезно для отладки. Обратите внимание, что это поддерживается только в 10.15.4 и новее
  • ApplePanic: YES
    • Пытается логировать паники ядра на диск
  • DisableWatchDog: YES
    • Отключает watchdog UEFI, может помочь с проблемами ранней загрузки
  • DisplayLevel: 2147483650
    • Показывает еще больше отладочной информации, требуется Debug версия OpenCore
  • SerialInit: NO
    • Требуется для настройки последовательного вывода в OpenCore
  • SysReport: NO
    • Полезно для отладки, к примеру создание дампов ACPI таблиц
    • Заметьте, что это только для DEBUG версий OpenCore
  • Target: 67
    • Показывает больше отладочной информации, требуется Debug версия OpenCore

Эти значения основаны на значениях, рассчитаных в разделе Отладка OpenCore

# Security

Информация

Безопасность - сама за себя говорит, не пропускайте это. Мы изменим следующее:

Quirk Enabled Комментарии
AllowNvramReset YES
AllowSetDefault YES
BlacklistAppleUpdate YES
ScanPolicy 0
SecureBootModel Default Это слово и оно чувствительное к регистру, установите Disabled, если вы не хотите иметь Secure Boot (например, когда вам требуются веб-драйверы Nvidia)
Vault Optional Это слово, это не опционально, чтобы опустить эту настройку. Вы пожалеете, если не установите для него значение Optional, обратите внимание, что оно тоже чувствительно к регистру
Более подробная информация
  • AllowNvramReset: YES
    • Позволяет сбрасывать NVRAM как в меню выбора загрузки, так и при нажатии Cmd+Opt+P+R
  • AllowSetDefault: YES
    • Позволяет нажатием CTRL+Enter и CTRL+Index устанавливать загрузочное устройство по умолчанию в меню выбора
  • ApECID: 0
    • Используется для привязки secure-boot персонализированных идентификаторов, в настоящее время этот квирк ненадежен из-за бага в установщике macOS, поэтому мы вам настоятельно рекомендуем оставить это по умолчанию.
  • AuthRestart: NO
    • Включает аутентифицированный перезапуск для FileVault 2, поэтому пароль не требуется при перезагрузке. Может рассматриваться как угроза безопасности, поэтому это необязательно
  • BlacklistAppleUpdate: YES
    • Используется для блокировки обновлений прошивки, используется как дополнительный уровень защиты, так как macOS Big Sur больше не использует переменную run-efi-updater
  • DmgLoading: Signed
    • Обеспечивает загрузку только подписанных DMG
  • ExposeSensitiveData: 6
    • Показывает больше отладочной информации, требуется debug версия OpenCore
  • Vault: Optional
    • Мы не будем иметь дело с Vaulting, поэтому мы можем игнорировать, вы не загрузитесь со значением Secure
    • Это слово, это не опционально, чтобы опустить эту настройку. Вы пожалеете, если не установите для него значение Optional, обратите внимание, что оно чувствительно к регистру
  • ScanPolicy: 0
    • 0 позволяет вам видеть все доступные накопители, пожалуйста обратитесь к разделу Безопасность (opens new window) для получения дополнительной информации. USB устройства не будут загружаться со значением по умолчанию (default)
  • SecureBootModel: Default
    • Включает функциональность Secure Boot от Apple в macOS, обратитесь к разделу Безопасность (opens new window) для получения дополнительной информации.
    • Примечание: Пользователи могут обнаружить, что обновление OpenCore на уже установленной системе может привести к ранним сбоям загрузки. Чтобы решить это, см. здесь: Зависает на OCB: LoadImage failed - Security Violation

# Tools

Используется для запуска отладочных инструментов OC, таких как Shell; функция снапшота в ProperTree добавит их за вас.

# Entries

Используется для указания нестандартных путей загрузки, которые невозможно найти с помощью OpenCore.

Здесь не рассматривается, см. пункт 8.6 в Configuration.pdf (opens new window) для получения дополнительной информации

# NVRAM

NVRAM

# Add

4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14

Используется для масштабирования пользовательского интерфейса OpenCore, значение по умолчанию будет работать для нас. См. раздел «Более подробная информация» для получения дополнительной информации

Более подробная информация

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

  • UIScale:

    • 01: Стандартное разрешение
    • 02: HiDPI (обычно требуется для правильной работы FileVault на небольших дисплеях)
  • DefaultBackgroundColor: Цвет фона используемый boot.efi

    • 00000000: Чёрный Шираз
    • BFBFBF00: Светло-серый

4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102

NVRAM GUID OpenCore, в основном актуально для пользователей RTCMemoryFixup

Более подробная информация

7C436110-AB2A-4BBB-A880-FE41995C9F82

Битовая маска System Integrity Protection

  • Универсальные boot-args:
boot-args Описание
-v Это включает подробный режим (verbose mode), в котором вместо логотипа Apple и полосы загрузки отображается весь закулисный текст, который прокручивается при загрузке. Это бесценно для любого Хакинтошера, так как даёт взглянуть на процесс загрузки изнутри и может помочь вам определить проблемы, проблемные кексты, т.д.
debug=0x100 Это отключает watchdog macOS, который помогает предотвратить перезагрузку при панике ядра. Таким образом, вы можете надеюсь собрать полезную информацию и следовать по «хлебным крошкам», чтобы решить проблемы.
keepsyms=1 Это сопутствующий debug=0x100 параметр, который указывает ОС также печатать символы при панике ядра. Это может дать более полезное представление о том, что вызывает саму панику.
alcid=1 Используется для настройки layout-id для AppleALC, см. поддерживаемые кодеки (opens new window) чтобы выяснить, какой layout использовать для вашей системы. Подробнее об этом можно узнать на Странице после установки (opens new window)
  • Специфичные для GPU boot-args:
boot-args Описание
-wegnoegpu Используется для отключения всех других графических процессоров, кроме интегрированного iGPU Intel, полезно для тех, кто хочет запускать более новые версии macOS, где их dGPU не поддерживается
  • csr-active-config: 00000000

    • Настройки для 'System Integrity Protection' (SIP). Обычно рекомендуется изменить его с помощью csrutil через раздел восстановления.
    • csr-active-config по умолчанию имеет значение 00000000, что и включает SIP. Вы можете выбрать несколько различных значений, но в целом мы рекомендуем оставить этот параметр включенным для обеспечения наилучшей безопасности. Более подробную информацию можно найти на нашей странице устранения неполадок: Отключение SIP
  • run-efi-updater: No

    • Это используется для предотвращения обновления прошивки Apple и нарушения порядка загрузки; это важно, так как эти обновления прошивки (предназначенные для Mac) не будут работать.
  • prev-lang:kbd: <>

    • Требуется для нелатинских клавиатур в формате lang-COUNTRY:keyboard, рекомендуется оставить пустым, хотя вы можете указать его(По умолчанию в образцовом конфиге стоит русский язык):
    • Американская: en-US:0(656e2d55533a30 в HEX)
    • Полный список может быть найден в AppleKeyboardLayouts.txt (opens new window)
    • Подсказка: prev-lang:kbd можно заменить на String, чтобы вы могли ввести en-US:0 без преобразования в HEX
Key Type Value
prev-lang:kbd String en-US:0

# Delete

Принудительно перезаписывает переменные NVRAM, обратите внимание, что Add не перезаписывает значения присутствующие в NVRAM, поэтому значения вроде boot-args следует оставить в покое.

  • LegacyEnable: NO

    • Позволяет хранить NVRAM в nvram.plist, что необходимо для систем без нативного NVRAM
  • LegacyOverwrite: NO

    • Разрешает перезапись переменных прошивки из nvram.plist, требуется только для систем без нативного NVRAM
  • LegacySchema

    • Используется для назначения NVRAM переменных, используется с LegacyEnable в YES
  • WriteFlash: YES

    • Позволяет записывать в флеш-память все добавленные переменные.

# PlatformInfo

PlatformInfo

Информация

Для настройки SMBIOS, мы будем использовать приложение GenSMBIOS (opens new window) от CorpNewt.

На примере этого Ivy Bridge, мы выберем iMac13,2 SMBIOS - это сделано намеренно для совместимости. Типичная разбивка выглядит следующим образом:

SMBIOS Тип процессора Тип GPU Размер дисплея
MacBookAir5,1 Двухъядерный 17w iGPU: HD 4000 11"
MacBookAir5,2 Двухъядерный 17w iGPU: HD 4000 13"
MacBookPro10,1 Четырехъядерный 45w iGPU: HD 4000 + dGPU: GT650M 15"
MacBookPro10,2 Двухъядерный 35w(High End) iGPU: HD 4000 13"
Macmini6,1 Двухъядерный NUC iGPU: HD 4000 N/A
Macmini6,2 Четырехъядерный NUC iGPU: HD 4000 N/A

Примечание: Следующие SMBIOS поддерживаются только до 10.15 (Catalina) включительно. Для случаев, когда вы хотите загрузить Big Sur, смотрите ниже:

Таблица Big Sur SMBIOS

Обратите внимание, что выбор SMBIOS из списка ниже для Catalina и старее - не рекомендуется, так как управления питанием и т.п. могут сломаться при использовании неоптимизированного SMBIOS.

SMBIOS Тип процессора Размер дисплея
MacBookAir6,1 Двухъядерный 15w 11"
MacBookAir6,2 Двухъядерный 15w 13"
MacBookPro11,1 Двухъядерный 28w 13"
MacBookPro11,2 Четырехъядерный 45w 15"
MacBookPro11,3 Четырехъядерный 45w 15"
MacBookPro11,4 Четырехъядерный 45w 15"
MacBookPro11,5 Четырехъядерный 45w 15"
Macmini7,1 Системы NUC N/A

Запустите GenSMBIOS, выберите 1 для загрузки MacSerial и 3 для выбора SMBIOS. Это даст нам вывод похожий на этот:

  #######################################################
 #               MacBookPro10,2 SMBIOS Info            #
#######################################################

Type:         MacBookPro10,2
Serial:       C02KCYZLDNCW
Board Serial: C02309301QXF2FRJC
SmUUID:       A154B586-874B-4E57-A1FF-9D6E503E4580

Type копируется в Generic -> SystemProductName.

Serial копируется в Generic -> SystemSerialNumber.

Board Serial копируется в Generic -> MLB.

SmUUID копируется в Generic -> SystemUUID.

Мы устанавливаем в Generic -> ROM либо Apple ROM (сдампленный с реального Mac), либо MAC-адрес вашей сетегой карты, или же любой случайный MAC-адрес (можеть быть всего 6 случайных байтов, для этого руководства мы будем использовать 11223300 0000. После установки, следуйте на страницу Исправление iServices (opens new window), чтобы найти, как получить настоящий MAC-адрес)

Напоминаем, что вам нужен либо недействительный серийный номер, либо действительный серийный номер, но только те, которые не используются, вам надо получить сообщение типа: «Недействительный серийный номер» или «Дата покупки не подтверждена»

Страница проверки права на обслуживание и поддержку (opens new window)

Automatic: YES

  • Генерирует PlatformInfo на основе общего раздела, вместо DataHub, NVRAM и SMBIOS разделов

:::

# Generic

Более подробная иннформация
  • AdviseWindows: NO

    • Используется тогда, когда EFI раздел не является первым на диске Windows
  • MaxBIOSVersion: NO

    • Устанавливает максимальную версию BIOS для предотвращения обновления прошивки в Big Sur и выше, в основном применимо для настоящих Mac.
  • ProcessorType: 0

    • Установите значение 0 для автоматического определения типа процессора, однако если хотите можно изменить это значение. См. AppleSmBios.h (opens new window) для возможных значений
  • SpoofVendor: YES

    • Меняет поле Vendor на Acidanthera, как правило, Apple как Vendor небезопасно использовать в большинстве случаев
  • SystemMemoryStatus: Auto

    • Устанавливает, распаяна ли память или нет в информацию SMBIOS, чисто косметически, поэтому рекомендуем Auto
  • UpdateDataHub: YES

    • Обновляет Data Hub поля
  • UpdateNVRAM: YES

    • Обновляет NVRAM поля
  • UpdateSMBIOS: YES

    • Обновляет SMBIOS поля
  • UpdateSMBIOSMode: Create

    • Заменяет таблицы новым выделенным EfiReservedMemoryType, используйте Custom на ноутбуках Dell, требующих CustomSMBIOSGuid квирка
    • Включение этого квирка с CustomSMBIOSGuid в Custom может также отключать инжекцию SMBIOS в ОС не от Apple, однако мы не одобряем этот метод, потому что он ломает совместимость с Bootcamp. Используйте на свой страх и риск

# UEFI

UEFI

ConnectDrivers: YES

  • Принудительно загружает .efi драйверы, изменение на NO автоматически подключит UEFI драйверы. Это может сделать загрузку немного быстрее, но не все драйверы подключаются сами. К примеру, некоторые драйверы файловой системы могут не загружаться.

# Drivers

Добавьте свои .efi драйверы сюда.

Драйверы, которые должны быть здесь:

  • HfsPlus.efi
  • OpenRuntime.efi

# APFS

Настройки относящиеся к APFS драйверу, оставьте здесь всё по умолчанию.

# Audio

Относится к настройкам AudioDxe, в нашем случае, мы это проигнорируем(оставьте по умолчанию). Это не относится к поддержке звука в macOS.

# Input

Относится к использованию клавиатуры в boot.efi для поддержки FileVault и горячих клавиш, оставьте здесь всё по умолчанию, так как нам не нужны эти квирки. Более подробную информацию смотрите здесь: Безопасность и FileVault (opens new window)

# Output

Относится к визуальному выводу OpenCore, оставьте здесь всё по умолчанию, так как нам не нужны эти квирки.

# ProtocolOverrides

В основном актуально для виртуальных машин, устаревших маков, и пользователей FileVault. Более подробную информацию смотрите здесь: Безопасность и FileVault (opens new window)

# Quirks

Информация

Относится к квиркам в UEFI среде, в нашем случае, мы будем менять следующее:

Quirk Enabled Комментарии
IgnoreInvalidFlexRatio YES
ReleaseUsbOwnership YES
UnblockFsConnect NO В основном нужно материнским платам HP
Более подробная информация
  • IgnoreInvalidFlexRatio: YES

    • Исправляет в тех случаях, когда MSR_FLEX_RATIO (0x194) не может быть отключен в BIOS, требуется для всех pre-Skylake систем
  • ReleaseUsbOwnership: YES

    • Освобождает USB-контроллер от драйвера прошивки, необходимого, когда ваша прошивка не поддерживает EHCI/XHCI Handoff. Большинство ноутбуков имеют «мусорные» прошивки, так что нам это тоже понадобится
  • DisableSecurityPolicy: NO

    • Отключает платформенную политику безопасности в прошивке. Рекомендуется для прошивок, в которых отключение Secure Boot не позволяет загружать сторонние драйверы прошивки.
    • Если у вас устройство серии Microsoft Surface, рекомендуем включить эту опцию
  • RequestBootVarRouting: YES

    • Перенаправляет AptioMemoryFix из EFI_GLOBAL_VARIABLE_GUID в OC_VENDOR_VARIABLE_GUID. Необходимо в тех случаях, когда прошивка пытается удалить загрузочную запись, и рекомендуется включать на всех системах для правильно установки обновлений, работы панели управления загрузочным диском (Startup Disk), т.д.
  • UnblockFsConnect: NO

    • Некоторые блочные разделы прошивки обрабатываются открываясь в режиме драйвера, что приводит к невозможности установки протоколов файловой системы. Обычно актуально для систем HP, когда в списке нет дисков

# ReservedMemory

Используется для исключения определенных областей памяти из ОС, в основном актуально для iGPU Sandy Bridge или систем с неисправной памятью. Использование этого квирка не рассматривается в этом руководстве

# Уборка

И теперь, вы готовы сохранить свой EFI и поместить его в EFI/OC.

Для тех, у кого есть проблемы с загрузкой, пожалуйста, сначала прочтите раздел Решение проблем, и если ваши вопросы остаются без ответа, в вашем распоряжении есть много ресурсов:

Санитарная проверка:

И так, благодаря усилиям Ramus, у нас также есть удивительный инструмент, который поможет проверить вашу конфигурацию для тех, кто, возможно, что-то пропустил:

Обратите внимание, что этот инструмент не разрабатывается и не поддерживается Dortania, все проблемы с этим сайтом должны отправляться сюда: Репозиторий Sanity Checker (opens new window)

# Напоминания о конфигурации

Пользователям HP:

  • Kernel -> Quirks -> LapicKernelPanic -> True
    • В противном случае, вы получите панику ядра на LAPIC
  • UEFI -> Quirks -> UnblockFsConnect -> True

# Настройки Intel BIOS

  • Примечание: Большинство этих параметров могут отсутствовать в вашей прошивке, мы рекомендуем сопоставлять как можно ближе, но не слишком беспокойтесь, если многие эти параметры будут не доступны в вашем BIOS

Это основные опции, которые нужно проверить, если вы не можете найти её или аналог для неё, просто пропустите это.

# Отключите

  • Fast Boot
  • Secure Boot
  • Serial/COM Port
  • Parallel Port
  • VT-d (может быть включен, если вы установите DisableIoMapper в YES)
  • CSM (или Legacy Support, или Hybrid Boot)
  • Thunderbolt (Если возможно, отключите для первоначальной установки, поскольку Thunderbolt может вызвать проблемы, если он настроен неправильно)
  • Intel SGX
  • Intel Platform Trust
  • CFG Lock (защита от записи MSR 0xE2)(Это должно быть отключено, если вы не можете найти эту опцию, включите AppleCpuPmCfgLock в Kernel -> Quirks. Ваш хак не будет загружаться со включенным CFG-Lock)

# Включите

  • VT-x (Virtualization Support)
  • Above 4G decoding
  • Hyper-Threading
  • Execute Disable Bit
  • EHCI/XHCI Hand-off
  • OS type: Windows 8.1/10 UEFI Mode
  • DVMT Pre-Allocated(iGPU Memory): 32MB
  • SATA Mode: AHCI

# Теперь, когда это всё сделано, перейдите на Страницу Установки