# Настольный Sandy Bridge

Поддержка Версия
Поддерживаемая версия OpenCore 0.6.9
Начало поддержки в macOS OS X 10.6.7, Snow Leopard
Примечание 1 iGPU Sandy Bridge официально поддерживаются до macOS 10.13
Примечание 2 Многие Sandy Bridge платы не поддерживают UEFI

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

И так, создание 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-IMEI (opens new window) Необходимо для добавления отсутствующих IMEI устройств на процессорах Sandy Bridge с материнскими платами 7 серии

Обратите внимание, что вы не должны добавлять ваш сгенерированный 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 не слишком хорошо поддерживает SandyBridge и может вызвать панику 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. Для нас, наши патчи предоставлены (handled) нашим SSDT. Это более чистое решение, поскольку позволяет нам загружать Windows и другие ОС с помощью OpenCore

# Quirks

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

# Booter

Booter

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

# MmioWhitelist

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

# Quirks

Информация

Настройки относящиеся к патчингу 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

# Add

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

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

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

AAPL,snb-platform-id - это то, что macOS использует для определения того, как драйверы iGPU взаимодействуют с нашей системой, и эти два значения выбираются между следующими:

AAPL,snb-platform-id Комментарии
10000300 Используется, когда iGPU используется для управления дисплеем
00000500 Используется, когда iGPU используется только для вычислительных задач, не управляя дисплеем

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

device-id Комментарии
26010000 Используется, когда iGPU используется для управления дисплеем
02010000 Используется, когда iGPU используется только для вычислительных задач, не управляя дисплеем

И наконец, у вас должно быть что-то вроде этого:

Key Type Value
AAPL,snb-platform-id Data 00000500
device-id Data 26010000

(Это пример для настольного HD 3000 с используемым dGPU в качестве вывода)

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

Это необходимо, если у вас процессор Sandy Bridge на материнской плате 7 серии (т.е. B75, Q75, Z75, H77, Q77, Z77), в частности, это необходимо для подмены вашего IMEI устройства на поддерживаемое. Обратите внимание, что это свойство по-прежнему требуется с или без SSDT-IMEI.

Key Type Value
device-id Data 3A1C0000

Примечание: Это не нужно, если у вас материнская плата 6 серии(т.е. H61, B65, Q65, P67, H67, Q67, Z68)

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 Comment
AppleCpuPmCfgLock YES Не требуется, если CFG-Lock отключен в BIOS
DisableIOMapper YES Не требуется, если VT-D отключен в BIOS
LapicKernelPanic NO Компьютеры HP нуждаются в этом квирке
PanicNoKextDump YES
PowerTimeoutKernelPanic YES
XhciPortLimit YES Если ваша плата не имеет USB 3.0, вы можете это выключить
Более подробная информация
  • 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 Описание
agdpmod=pikera Используется для отключения boardID на GPU Navi(RX 5000 series), без этого вы получить чёрный экран. Не используйте, если у вас не Navi(т.е. Polaris и Vega карты не должны использовать это)
nvda_drv_vrl=1 Используется для включения веб-драйверов Nvidia на картах Maxwell и Pascal в Sierra и High Sierra
-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 следует оставить в покое. В нашем случае, мы изменим следующее:

Quirk Enabled
WriteFlash YES
Более подробная иннформация
  • 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.

На примере этого Sandy Bridge, мы выберем iMac12,2 SMBIOS - это сделано намеренно для совместимости. Для Sandy Bridge используются два основных SMBIOS:

SMBIOS Оборудование
iMac12,2 Стандартный Sandy Bridge SMBIOS
MacPro6,1 SMBIOS для Mojave и новее
  • Если вы планируете запустить macOS 10.14, Mojave или новее, рекомендованным SMBIOS будет MacPro6,1, а iGPU должен быть отключен в BIOS из-за того, что он больше не поддерживается

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

  #######################################################
 #               iMac12,2 SMBIOS Info                  #
#######################################################

Type:         iMac12,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

ConnectDrivers: YES

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

# Drivers

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

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

  • HfsPlusLegacy.efi
  • OpenRuntime.efi
  • OpenUsbKbDxe.efi(Если ваша прошивка не поддерживает UEFI)

# APFS

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

# Audio

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

# Input

Информация

Относится к использованию клавиатуры в boot.efi для поддержки FileVault и горячих клавиш, оставьте здесь всё по умолчанию, кроме:

Quirk Value Комментарии
KeySupport NO Включите, если ваш BIOS поддерживает UEFI

# Output

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

# ProtocolOverrides

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

# Quirks

Информация

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

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

    • Исправляет в тех случаях, когда MSR_FLEX_RATIO (0x194) не может быть отключен в BIOS, требуется для всех pre-Skylake систем
  • 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)

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

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

# Отключите

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

# Включите

  • VT-x
  • 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

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