# Настольный Comet Lake

Поддержка Версия
Поддерживаемая версия OpenCore 0.6.9
Начало поддержки в macOS macOS 10.15, Catalina

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

И так, создание 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-PLUG (opens new window) Позволяет нативно управлять питанием процессора на Haswell и новее, см. Руководство по началу работы с ACPI (opens new window) для получения дополнительной информации.
SSDT-EC-USBX (opens new window) Исправляет встроенные контроллеры с питанием USB, см. Руководство по началу работы с ACPI (opens new window) для получения дополнительной информации.
SSDT-AWAC (opens new window) Это патч RTC 300 серии (opens new window), требуется для всех B460 и Z490 плат, которые предотвращают загрузку macOS. Альтернативой является SSDT-RTC0 (opens new window), когда AWAC SSDT несовместим из-за отсутствия Legacy RTC часов, чтобы проверить, нужен ли вам и какой использовать, см. страницу Начало работы с ACPI (opens new window)
SSDT-RHUB (opens new window) Требуется для исправления ошибок Root-device на Asus и, возможно, MSI платах. Материнские платы Gigabyte и Asrock не нуждаются в этом SSDT

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

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

# Delete

Этот раздел блокирует загрузку определенных ACPI таблиц, в нашем случае, мы можем игнорировать это.

# Patch

Этот раздел позволяет нам динамически модифицировать части ACPI (DSDT, SSDT, и т.д.) через OpenCore. Для нас, наши патчи предоставлены (handled) нашим SSDT. Это более чистое решение, поскольку позволяет нам загружать Windows и другие ОС с помощью OpenCore

# Quirks

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

# Booter

Booter

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

# MmioWhitelist

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

# Quirks

Информация

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

Quirk Enabled
DevirtualiseMmio YES
EnableWriteUnprotector NO
ProtectUefiServices YES
RebuildAppleMemoryMap YES
SetupVirtualMap NO
SyncRuntimePermissions YES
Более подробная информация
  • AvoidRuntimeDefrag: YES
    • Исправляет рантайм сервисы UEFI, такие как дата, время, NVRAM, управление питанием, т.д.
  • DevirtualiseMmio: YES
    • Уменьшает объем Stolen памяти, расширяет возможные значения для slide=N, и очень полезен при устранении проблем с выделением памяти (Memory Allocation, требуется также ProtectUefiServices на Z490.
  • EnableSafeModeSlide: YES
    • Позволяет использовать Slide переменные в безопасном режиме.
  • EnableWriteUnprotector: NO
    • Этот квирк и RebuildAppleMemoryMap обычно конфликтуют, рекомендуется включить последнее на новых платформах и отключить эту запись.
    • Однако, из-за проблем с OEM-производителями не использующие последнии сборки EDKII, вы можете обнаружить, что комбинация выше приводит к сбоям ранней загрузки. Это происходит из-за отсутствующего MEMORY_ATTRIBUTE_TABLE, и поэтому мы рекомендуем отключить RebuildAppleMemoryMap и включить EnableWriteUnprotector. Подробнее можно прочитать в разделе решения проблем.
  • ProtectUefiServices: YES
    • Защищает UEFI сервисы от переопределения прошивкой, требуется для Z490.
  • ProvideCustomSlide: YES
    • Используется для вычисления значения Slide переменной. Необходимость этого квирка определяется сообщением OCABC: Only N/256 slide values are usable! в дебаг логах. Если сообщение OCABC: All slides are usable! You can disable ProvideCustomSlide! присутствует в вашем логе, вы можете отключить ProvideCustomSlide.
  • RebuildAppleMemoryMap: YES
    • Создает Memory Map совместимую с macOS, может сломаться с некоторыми OEM прошивками ноутбуков, поэтому если вы получили сбой ранней загрузки - отключите это.
  • SetupVirtualMap: NO
    • Исправляет вызовы SetVirtualAddresses на виртуальные адреса, однако сломано из-за защиты памяти Comet Lake. ASUS, Gigabyte и AsRock платы не будут грузится с этим.
  • SyncRuntimePermissions: YES
    • Исправляет согласование с MAT таблицами и требуется для загрузки Windows и Linux с MAT таблицами, также рекомендуется для macOS. В основном актуально для пользователей RebuildAppleMemoryMap.

# DeviceProperties

DeviceProperties

# Add

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

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

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

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

AAPL,ig-platform-id Комментарии
07009B3E Используется, когда iGPU используется для управления дисплеем
00009B3E Альтернатива 07009B3E, если он не работает
0300C89B Используется, когда iGPU используется только для вычислительных задач, не управляя дисплеем
  • Примечание: В macOS 10.15.5 и новее, похоже, есть много проблем с черным экраном при использовании 07009B3E, если у вас возникают подобные проблемы, попробуйте переключиться на 00009B3E

Мы также добавим ещё 2 свойства: framebuffer-patch-enable, framebuffer-stolenmem. Первый включает патчинг через WhateverGreen.kext, и второй устанавливает минимальный размер графической памяти в 19 Мб. Это обычно не нужно, когда это может быть настроено в BIOS (рекомендуется 64 Мб), но требуется - когда настройки недоступны.

  • Примечание: Headless фреймбуферы(где dGPU - вывод на экран) не нуждаются в framebuffer-patch-enable и framebuffer-stolenmem
Key Type Value
AAPL,ig-platform-id Data 07009B3E
framebuffer-patch-enable Data 01000000
framebuffer-stolenmem Data 00003001

(Это пример для настольного UHD 630 без dGPU и настроек iGPU памяти в BIOS)

PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)

Эта запись относится к контроллеру Intel I225-V 2.5GBe, установленному на более дорогих платах Comet Lake, и то, что мы будем делать здесь, — обманом заставлять драйвер Apple I225LM поддерживать наш сетевой контроллер I225-V:

Key Type Value
device-id Data F2150000
  • Примечание: Если ваша плата не поставляется с сетевой картой Intel I225, нет причин добавлять эту запись.
  • Примечание 2: Если вы получаете панику ядра на кекст AppleIntelI210Ethernet, то скорее всего, ваш путь к Ethernet PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)

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

Требуется для спуфинга (подмены) неподдерживаемых процессоров, к счастью, в 10.15.5+ была добавлена поддержка Comet Lake S, поэтому здесь нет необходимости подменять. Для тех, кто использует High Sierra или Mojave, вам понадобится нижеприведенная информация, чтобы спуфить на поддерживаемую модель процессора (из-за проблем со стабильностью, это руководство не будет касаться спуфинга CPUID)

# Force

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

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

# Block

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

# Patch

Патчит ядро с кекстами.

Исправление контроллеров I225-V

Эта запись относится к контроллеру Intel I225-V 2.5GBe, установленному на более дорогих платах Comet Lake, и то, что мы будем делать здесь, — обманом заставлять драйвер Apple I225LM поддерживать наш сетевой контроллер I225-V.

Key Type Value
Base String __Z18e1000_set_mac_typeP8e1000_hw
Comment String I225-V patch
Enabled Boolean True
Find Data F2150000
Identifier String com.apple.driver.AppleIntelI210Ethernet
MinKernel String 19.0.0
Replace Data F3150000
  • Примечание 1: Если ваша плата не поставляется с сетевой картой Intel I225, — нет причин добавлять эту запись.
  • Примечание 2: Для всех остальных ключей (key) оставьте значения по умолчанию

# Quirks

Информация

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

Quirk Enabled Комментарии
AppleXcpmCfgLock YES Не требуется, если CFG-Lock отключен в BIOS
DisableIOMapper YES Не требуется, если VT-D отключен в BIOS
LapicKernelPanic NO Компьютеры HP нуждаются в этом квирке
PanicNoKextDump YES
PowerTimeoutKernelPanic YES
XhciPortLimit YES
Более подробная информация
  • AppleCpuPmCfgLock: NO
    • Требуется только, когда CFG-Lock нельзя отключить в BIOS
    • Применимо только для Ivy Bridge и старее
      • Примечание: Broadwell и старее требуют этого при запуске 10.10 или старее
  • AppleXcpmCfgLock: YES
    • Требуется только, когда 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 карты не должны использовать это)
-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.

На примере этого Comet Lake, мы выберем iMac20,1 SMBIOS - это сделано намеренно для совместимости. Для Comet Lake используются два основных SMBIOS:

SMBIOS Hardware
iMac20,1 i7-10700K и ниже(т.е. 8 ядер и меньше)
iMac20,2 i9-10850K и выше(т.е. 10 ядер)

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

  #######################################################
 #               iMac20,1 SMBIOS Info                  #
#######################################################

Type:         iMac20,1
Serial:       C02XG0FDH7JY
Board Serial: C02839303QXH69FJA
SmUUID:       DBB364D6-44B2-4A02-B922-AB4396F16DA8
  • Примечание: MacSerial в настоящее время не поддерживает Linux, поэтому вы должны взять компьютер с Windows или macOS, чтобы сгенерировать значения

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 Комментарии
UnblockFsConnect NO В основном нужно материнским платам HP
Более подробная информация
  • 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)(Это должно быть отключено, если вы не можете найти эту опцию, включите AppleXcpmCfgLock в Kernel -> Quirks. Ваш хак не будет загружаться со включенным CFG-Lock)

# Включите

  • VT-x
  • Above 4G decoding
    • Примечание для BIOS новее 2020 г.: При включение Above4G - может стать доступной опция Resizable BAR Support на некоторых Z490 и более новых материнских платах. Убедитесь, что эта опция установлена в Disabled вместо Auto.
  • Hyper-Threading
  • Execute Disable Bit
  • EHCI/XHCI Hand-off
  • OS type: Windows 8.1/10 UEFI Mode
  • DVMT Pre-Allocated(iGPU Memory): 64MB
  • SATA Mode: AHCI

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