# Ryzen и Threadripper(17h и 19h)

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

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

И так, создание 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 Описание
SSDT-EC-USBX (opens new window) Исправляет встроенные контроллеры с питанием USB, см. Руководство по началу работы с ACPI (opens new window) для получения дополнительной информации.
SSDT-CPUR (opens new window) Исправляет определение процессора на материнскиз платах B550 и A520, не используйте, если у вас нет системы на AMD B550 или A520. Вы можете найти готовый вариант здесь: SSDT-CPUR.aml (opens new window)

Обратите внимание, что вы не должны добавлять ваш сгенерированный 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

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

# Quirks

Информация

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

Quirk Enabled Комментарии
DevirtualizeMmio NO Обратите внимание, что TRx40 требует этого квирка
EnableWriteUnprotector NO
RebuildAppleMemoryMap YES
SetupVirtualMap YES - Обратите внимание, что платы на B550, A520 и TRx40 должны выключить это. На новых версиях BIOS платы X570 также должно быть отключено это.
- X470 и B450 с обновлением BIOS датируемым концом 2020 г. также требуют отключения этого квирка
SyncRuntimePermissions YES
Более подробная информация
  • AvoidRuntimeDefrag: YES
    • Исправляет рантайм сервисы UEFI, такие как дата, время, NVRAM, управление питанием, т.д.
  • EnableSafeModeSlide: YES
    • Позволяет использовать Slide переменные в безопасном режиме.
  • EnableWriteUnprotector: NO
    • Этот квирк и RebuildAppleMemoryMap обычно конфликтуют, рекомендуется включить последнее на новых платформах и отключить эту запись.
    • Однако, из-за проблем с OEM-производителями не использующие последнии сборки EDKII, вы можете обнаружить, что комбинация выше приводит к сбоям ранней загрузки. Это происходит из-за отсутствующего MEMORY_ATTRIBUTE_TABLE, и поэтому мы рекомендуем отключить RebuildAppleMemoryMap и включить EnableWriteUnprotector. Подробнее можно прочитать в разделе решения проблем.
  • 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: YES
    • Исправляет вызовы SetVirtualAddresses на виртуальные адреса;
    • Для плат B550, A520 и TRx40 необходимо отключить этот квирк.
  • SyncRuntimePermissions: YES
    • Исправляет согласование с MAT таблицами и требуется для загрузки Windows и Linux с MAT таблицами, также рекомендуется для macOS. В основном актуально для пользователей RebuildAppleMemoryMap.

# DeviceProperties

DeviceProperties

# Add

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

По умолчанию, в Sample.plist этот раздел настроен для iGPU и Audio. У нас нет iGPU, поэтому PciRoot PciRoot(0x0)/Pci(0x2,0x0) можно удалить из раздела Add. Для звука, мы будем настраивать Layout в boot-args разделе, поэтому удаление PciRoot(0x0)/Pci(0x1b,0x0) также рекомендуется из Add и Block разделов

TL;DR, удалите все PciRoot здесь, поскольку мы не будем этот раздел.

# Delete

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

# Kernel

Kernel Kernel Patches
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

Информация

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

Quirk Enabled
DummyPowerManagement YES
Более подробная информация
  • CpuidMask: Оставьте это поле пустым
    • Маска для фейкового CPUID
  • CpuidData: Оставьте это поле пустым
    • Фейковая (fake) запись CPUID
  • DummyPowerManagement: YES
    • Новая альтернатива NullCPUPowerManagement, требуется для всех систем на базе процессоров AMD, поскольку они не имеют нативного управления питанием
  • MinKernel: Оставьте это пустым
    • Минимальная версия ядра, в которую будут инжектироваться патчи, если не указано значение, они будут примененятся ко всем версиям macOS. См. возможные значения в таблице ниже
    • например, 12.00.00 для OS X 10.8
  • MaxKernel: Оставьте это пустым
    • Максимальная версия ядра, в которую будут инжектироваться патчи, если не указано значение, они будут примененятся ко всем версиям macOS. См. возможные значения в таблице ниже
    • например, 11.99.99 для OS X 10.7
Kernel Support Table
OS X Version 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

# Force

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

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

# Block

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

# Patch

Именно здесь происходит волшебный патчинг ядра для AMD. Пожалуйста, обратите внимание, что KernelToPatch и MatchOS из Clover становятся Kernel и MinKernel/MaxKernel в OpenCore, вы можете найти предварительно сделанные патчи от AlGrey (opens new window)(algrey#9303).

Патчи ядра:

Установка патчей:

  • Откройте оба файла,
  • Удалите раздел Kernel -> Patch из config.plist
  • Скопируйте раздел Kernel -> Patch из patches.plist
  • Вставьте туда, где были старые патчи в config.plist

# Quirks

Информация

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

Quirk Enabled
PanicNoKextDump YES
PowerTimeoutKernelPanic YES
XhciPortLimit YES
Более подробная информация
  • AppleCpuPmCfgLock: NO
    • Требуется только, когда CFG-Lock нельзя отключить в BIOS. Пользователи AMD могут игнорировать
  • AppleXcpmCfgLock: NO
    • Требуется только, когда CFG-Lock нельзя отключить в BIOS. Пользователи AMD могут игнорировать
  • AppleXcpmExtraMsrs: NO
    • Отключает множественный доступ к MSR, необходимый для неподдерживаемых процессоров, таких как Pentium и некоторых Xeon
  • CustomSMBIOSGuid: NO
    • Выполняет патчинг GUID для UpdateSMBIOSMode установленным в Custom. Обычно актуально для ноутбуков Dell
    • Включение этого квирка в тандеме с PlatformInfo -> UpdateSMBIOSMode -> Custom отключает инжекцию SMBIOS в ОС не от Apple, однако мы не одобряем этот метод, потому что он ломает совместимость с Bootcamp. Используйте на свой страх и риск
  • DisableIoMapper: NO
    • AMD не имеет DMAR или VT-D, так что не актуально
  • 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. Более подходящее решение для AMD можно найти здесь: AMD USB Mapping (opens new window)

# 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 параметр, который указывает ОС также печатать символы при панике ядра. Это может дать более полезное представление о том, что вызывает саму панику.
npci=0x2000 Это отключает отладку PCI связанную с kIOPCIConfiguratorPFM64, альтернативой является npci=0x3000, который дополнительно отключает отладку, связанную с gIOPCITunnelledKey. Требуется, если загрузка застревает на PCI Start Configuration, поскольку есть IRQ конфликты связанные с вашими PCI линиями. Не требуется, если Above4GDecoding включен. Источник (opens new window)
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
  • 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.

Для этого примера, мы выберем iMacPro1,1 SMBIOS, но некоторые SMBIOS работают с определенными графическими процессорами лучше, чем остальные:

  • iMacPro1,1: AMD RX Polaris и новее
  • MacPro7,1: AMD RX Polaris и новее
    • Обратите внимание, что для MacPro7,1 минимальная версия - Catalina
  • MacPro6,1: AMD R5/R7/R9 и старее
  • iMac14,2: Nvidia Kepler и новее
    • Примечание: iMac14,2 поддерживает версии macOS 10.8-10.15, для macOS 11 Big Sur и новее - используйте MacPro7,1

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

  #######################################################
 #              iMacPro1,1 SMBIOS Info                 #
#######################################################

Type:         iMacPro1,1
Serial:       C02YX0TZHX87
Board Serial: C029269024NJG36CB
SmUUID:       DEA17B2D-2F9F-4955-B266-A74C47678AD3

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 Comment
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)

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

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

# Отключите

  • Fast Boot
  • Secure Boot
  • Serial/COM Port
  • Parallel Port
  • Compatibility Support Module (CSM)(Должно быть выключено, поскольку ошибки GPU, такие как gIO являются обычным явлением, когда эта опция включена)

Специальное примечание для пользователей 3990X: macOS в настоящее время не поддерживает более 64 потоков в ядре, и поэтому ядро паникует, если увидит больше. 3990X имеет 128 потоков, поэтому половина из них должна быть отключена. В таких ситуациях мы рекомендуем отключить hyper-threading в BIOS.

# Включите

  • Above 4G decoding(Это должно быть включено, если вы не можете найти эту опцию, добавьте npci=0x2000 в boot-args. Не включайте одновременно эту опцию и npci)
    • Если вы используете материнскую плату Gigabyte/Aorus или AsRock, включение этой опции может привести к поломке некоторых драйверов (например, Ethernet) и/или сбоям загрузки в других ОС. Если это произойдет, отключите эту опцию и выберите вместо этого npci.
    • Примечание для BIOS новее 2020 г.: При включение Above4G - может стать доступной опция Resizable BAR Support на некоторых X570 и более новых материнских платах. Убедитесь, что эта опция установлена в Disabled вместо Auto.
  • EHCI/XHCI Hand-off
  • OS type: Windows 8.1/10 UEFI Mode
  • SATA Mode: AHCI

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