# Ноутбучный Icelake
Поддержка | Версия |
---|---|
Поддерживаемая версия OpenCore | 0.6.9 |
Начало поддержки в macOS | macOS 10.15, Catalina |
# Отправная точка
И так, создание config.plist может показаться сложным, но это не так. Это просто занимает некоторое время, но это руководство расскажет вам как всё конфигурировать, и вы не останетесь в стороне. Это также означает, что если у вас есть проблемы, проверьте настройки конфига, чтобы убедиться, что они правильные. Основные моменты, которые нужно подметить с OpenCore:
- Все свойства должны быть определены, у OpenCore нет значений по умолчанию, поэтому не удаляйте разделы, если это явно не указано. Если руководство не упоминает эту опцию, оставьте значения по умолчанию
- Sample.plist не может использоваться как есть (as is), вы должны сконфигурировать его к вашей системе
- НЕ ИСПОЛЬЗУЙТЕ КОНФИГУРАТОРЫ, они редко соблюдают конфигурацию OpenCore, и даже такие как, от Mackie добавляют свойства из Clover и ломают plist!
С этим всё, быстрое напоминание, какие инструменты нам нужны:
- ProperTree (opens new window)
- Универсальный plist редактор
- GenSMBIOS (opens new window)
- Для генерации наших SMBIOS данных
- Sample/config.plist (opens new window)
- См. предыдущий раздел о том, как получить: Настройка config.plist
И прочтите это руководство несколько раз, прежде чем настраивать OpenCore, и убедитесь, что он правильно настроен. Обратите внимание, что изображения не всегда будут актуальными, поэтому прочтите текст под ними, если ничего не сказано - оставьте значения по умолчанию.
# ACPI
# Add
Информация
Здесь вы добавите SSDT для вашей системы, это очень важно чтобы загрузить macOS, и они имеют множество применений, к примеру USB map (opens new window), отключение неподдерживаемых GPU и т.п. А с нашей системой, она обязана загрузиться. Рукводство по созданию SSDT можно найти здесь: Начало работы с ACPI (opens new window)
Нам понадобится пара SSDT, чтобы вернуть функциональность, предоставляемую Clover:
Требумые_SSDT | Описание |
---|---|
SSDT-PLUG (opens new window) | Необходимо для правильного управления питанием процессора, вам нужно будет запустить скрипт ssdtPRGen.sh от Pike для создания этого файла. Это будет выполнено после установки (opens new window). |
SSDT-EC-USBX (opens new window) | Исправляет встроенные контроллеры с питанием USB, см. Руководство по началу работы с ACPI (opens new window) для получения дополнительной информации. |
SSDT-GPIO (opens new window) | Создает заглушку, чтобы VoodooI2C мог подключиться, тем, у кого возникли проблемы с работой VoodooI2C, могут попробовать вместо этого - SSDT-XOSI (opens new window). Обратите внимание, что Intel NUC не нуждается в этом |
SSDT-PNLF-CFL (opens new window) | Исправляет регулировку яркости, см. Руководство по началу работы с ACPI (opens new window) для получения дополнительной информации. Обратите внимание, что Intel NUC не нуждается в этом |
SSDT-AWAC (opens new window) | Это патч RTC 300 серии (opens new window), требуется для большинства B360, B365, H310, H370, Z390 и некоторых Z370 плат, которые предотвращают загрузку macOS. Альтернативой является SSDT-RTC0 (opens new window), когда AWAC SSDT несовместим из-за отсутствия Legacy RTC часов, чтобы проверить, нужен ли вам и какой использовать, см. страницу Начало работы с ACPI (opens new window) |
SSDT-RHUB (opens new window) | Требуется для исправления ошибок Root-device на многих ноутбуках Icelake |
Обратите внимание, что вы не должны добавлять ваш сгенерированный 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. В нашем случае, нам понадобится следующее:
- Переименование OSI
- Это необходимо при использовании SSDT-XOSI, поскольку мы перенаправляем все вызовы OSI на этот SSDT, это не требуется, если вы используете SSDT-GPIO
Comment | String | Change _OSI to XOSI |
---|---|---|
Enabled | Boolean | YES |
Count | Number | 0 |
Limit | Number | 0 |
Find | Data | 5f4f5349 |
Replace | Data | 584f5349 |
# Quirks
Настройки относящиеся к ACPI, оставьте здесь всё по умолчанию, так как нам эти квирки не нужны.
# 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) на Z390. Требуется такжеProtectUefiServices
на IceLake и Z390 Coffee Lake.
- Уменьшает объем Stolen памяти, расширяет возможные значения для
- EnableSafeModeSlide: YES
- Позволяет использовать Slide переменные в безопасном режиме.
- EnableWriteUnprotector: NO
- Этот квирк и RebuildAppleMemoryMap обычно конфликтуют, рекомендуется включить последнее на новых платформах и отключить эту запись.
- Однако, из-за проблем с OEM-производителями не использующие последнии сборки EDKII, вы можете обнаружить, что комбинация выше приводит к сбоям ранней загрузки. Это происходит из-за отсутствующего
MEMORY_ATTRIBUTE_TABLE
, и поэтому мы рекомендуем отключить RebuildAppleMemoryMap и включить EnableWriteUnprotector. Подробнее можно прочитать в разделе решения проблем.
- ProtectUefiServices: NO
- Защищает UEFI сервисы от переопределения прошивкой, в основном актуально для виртуальных машин, Icelake и Z390 систем.
- Если у вас Z390 - включите этот квирк.
- ProvideCustomSlide: YES
- Используется для вычисления значения Slide переменной. Необходимость этого квирка определяется сообщением
OCABC: Only N/256 slide values are usable!
в дебаг логах. Если сообщениеOCABC: All slides are usable! You can disable ProvideCustomSlide!
присутствует в вашем логе, вы можете отключитьProvideCustomSlide
.
- Используется для вычисления значения Slide переменной. Необходимость этого квирка определяется сообщением
- RebuildAppleMemoryMap: YES
- Создает Memory Map совместимую с macOS, может сломаться с некоторыми OEM прошивками ноутбуков, поэтому если вы получили сбой ранней загрузки - отключите это.
- SetupVirtualMap: YES
- Исправляет вызовы SetVirtualAddresses на виртуальные адреса, может вызвать раннюю панику ядра на Ice Lake.
- SyncRuntimePermissions: YES
- Исправляет согласование с MAT таблицами и требуется для загрузки Windows и Linux с MAT таблицами, также рекомендуется для macOS. В основном актуально для пользователей RebuildAppleMemoryMap.
# DeviceProperties
# Add
Устанавливает Device Properties в map.
PciRoot(0x0)/Pci(0x2,0x0)
Этот раздел настраивается с помощью Патчинга фреймбуфера (opens new window)(на русском (opens new window)) в WhateverGreen и используется для настройки важных свойств iGPU.
При настройке iGPU, нижеприведенная таблица должна помочь найти правильные значения для установки. Вот объяснение некоторых значений:
- AAPL,ig-platform-id
- Это используется внутри для настройки iGPU
- Port Count
- Количество поддерживаемых дисплеев
Обычно, при настройке свойств iGPU следуйте этим шагам. Следуйте примечаниям к конфигурации под таблицей, если они говорят иначе:
- При первоначальной настройке config.plist укажите только
AAPL,ig-platform-id
- обычно этого достаточно - Если вы загружаетесь и не получаете ускорения графики (7 МБ видеопамяти и однотонный фон дока), вам, вероятно, придется попробовать другие значения
AAPL,ig-platform-id
, добавить stolenmem патчи, или даже добавить свойствоdevice-id
.
AAPL,ig-platform-id | Port Count | Комментарии |
---|---|---|
0000528A | 6 | Рекомендуемое значение G4/G7 |
# Примечания к конфигурации
- В некоторых случаях, когда вы не можете установить DVMT-prealloc для этих карт на выше, чем 256 МБ в настройках UEFI, вы можете получить панику ядра. Обычно они настроены на 32 МБ DVMT-prealloc, в этом случае эти значения добавляются в ваши свойства iGPU
Key | Type | Value |
---|---|---|
framebuffer-patch-enable | Number | 1 |
framebuffer-stolenmem | Data | 00003001 |
framebuffer-fbmem | Data | 00009000 |
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
# 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 | Комментарии |
---|---|---|
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. Используйте на свой страх и риск
- Выполняет патчинг GUID для UpdateSMBIOSMode установленным в
- DisableIoMapper: YES
- Необходим для обхода VT-D, если он не может быть отключен в BIOS или необходим для других операционных систем, гораздо лучшая альтернатива
dart=0
, поскольку SIP может оставаться включенным в Catalina
- Необходим для обхода VT-D, если он не может быть отключен в BIOS или необходим для других операционных систем, гораздо лучшая альтернатива
- DisableLinkeditJettison: YES
- Позволяет Lilu и другим более надежно работать без
keepsyms=1
- Позволяет Lilu и другим более надежно работать без
- DisableRtcChecksum: NO
- Предотвращает запись AppleRTC в основную контрольную сумму (0x58-0x59), требуется для тех пользователей, у которых сбрасывается BIOS или отправляется в безопасный режим после перезагрузки/выключения
- ExtendBTFeatureFlags NO
- Полезно для тех, у кого есть проблемы со стабильностью работы с картами не от Apple/Fenvi
- LapicKernelPanic: NO
- Отключает панику ядра на прерывании lapic AP ядра, что обычно необходимо для систем HP. Эквивалентно
Kernel LAPIC
в Clover
- Отключает панику ядра на прерывании lapic AP ядра, что обычно необходимо для систем HP. Эквивалентно
- 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
- 10.4-10.5 —
- Устанавливает тип архитектуры ядра, вы можете выбрать между
KernelCache: Auto
- Задаёт тип кэша ядра, в основном используется для отладки и поэтому мы рекомендуем
Auto
для лучшей поддержки
- Задаёт тип кэша ядра, в основном используется для отладки и поэтому мы рекомендуем
# 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
- Позволяет сбрасывать NVRAM как в меню выбора загрузки, так и при нажатии
- AllowSetDefault: YES
- Позволяет нажатием
CTRL+Enter
иCTRL+Index
устанавливать загрузочное устройство по умолчанию в меню выбора
- Позволяет нажатием
- ApECID: 0
- Используется для привязки secure-boot персонализированных идентификаторов, в настоящее время этот квирк ненадежен из-за бага в установщике macOS, поэтому мы вам настоятельно рекомендуем оставить это по умолчанию.
- AuthRestart: NO
- Включает аутентифицированный перезапуск для FileVault 2, поэтому пароль не требуется при перезагрузке. Может рассматриваться как угроза безопасности, поэтому это необязательно
- BlacklistAppleUpdate: YES
- Используется для блокировки обновлений прошивки, используется как дополнительный уровень защиты, так как macOS Big Sur больше не использует переменную
run-efi-updater
- Используется для блокировки обновлений прошивки, используется как дополнительный уровень защиты, так как macOS Big Sur больше не использует переменную
- 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
# 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
Более подробная информация
- rtc-blacklist: <>
- Для использования в сочетании с RTCMemoryFixup, см. здесь для получения дополнительной информации: Устранение проблем с записью RTC (opens new window)
- Большинство пользователей могут игнорировать этот раздел
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) |
-igfxcdc | Устраняет паники ядра на основе Clock ID на процессорах Ice Lake, рекомендуется для всех пользователей |
-igfxdvmt | Как и выше, решает проблему с некоторыми прошивками, имеющими 60 МБ зарезервированными для iGPU памяти, которое может вызвать панику ядра |
- Специфичные для GPU boot-args:
boot-args | Описание |
---|---|
-wegnoegpu | Используется для отключения всех других графических процессоров, кроме интегрированного iGPU Intel, полезно для тех, кто хочет запускать более новые версии macOS, где их dGPU не поддерживается |
csr-active-config:
00000000
- Настройки для 'System Integrity Protection' (SIP). Обычно рекомендуется изменить его с помощью csrutil через раздел восстановления.
- csr-active-config по умолчанию имеет значение
00000000
, что и включает SIP. Вы можете выбрать несколько различных значений, но в целом мы рекомендуем оставить этот параметр включенным для обеспечения наилучшей безопасности. Более подробную информацию можно найти на нашей странице устранения неполадок: Отключение SIP
run-efi-updater:
No
- Это используется для предотвращения обновления прошивки Apple и нарушения порядка загрузки; это важно, так как эти обновления прошивки (предназначенные для Mac) не будут работать.
prev-lang:kbd: <>
- Требуется для нелатинских клавиатур в формате
lang-COUNTRY:keyboard
, рекомендуется оставить пустым, хотя вы можете указать его(По умолчанию в образцовом конфиге стоит русский язык): - Американская:
en-US:0
(656e2d55533a30
в HEX) - Полный список может быть найден в AppleKeyboardLayouts.txt (opens new window)
- Подсказка:
prev-lang:kbd
можно заменить на String, чтобы вы могли ввестиen-US:0
без преобразования в HEX
- Требуется для нелатинских клавиатур в формате
Key | Type | Value |
---|---|---|
prev-lang:kbd | String | en-US:0 |
# Delete
Принудительно перезаписывает переменные NVRAM, обратите внимание, что Add
не перезаписывает значения присутствующие в NVRAM, поэтому значения вроде boot-args
следует оставить в покое.
LegacyEnable: NO
- Позволяет хранить NVRAM в nvram.plist, что необходимо для систем без нативного NVRAM
LegacyOverwrite: NO
- Разрешает перезапись переменных прошивки из nvram.plist, требуется только для систем без нативного NVRAM
LegacySchema
- Используется для назначения NVRAM переменных, используется с LegacyEnable в YES
WriteFlash: YES
- Позволяет записывать в флеш-память все добавленные переменные.
# PlatformInfo
Информация
Для настройки SMBIOS, мы будем использовать приложение GenSMBIOS (opens new window) от CorpNewt.
На примере этого IceLake, мы выберем MacBookAir9,1 SMBIOS - это сделано намеренно для совместимости. Типичная разбивка выглядит следующим образом:
SMBIOS | Тип процессора | Тип GPU | Размер дисплея | Touch ID |
---|---|---|---|---|
MacBookAir9,1 | Двух/Четырехъядерный 12w | iGPU: G4/G7 | 13" | Есть |
MacBookPro16,2 | Четырехъядерный 28w | iGPU: G4/G7 | 13" | Есть |
Запустите GenSMBIOS, выберите 1 для загрузки MacSerial и 3 для выбора SMBIOS. Это даст нам вывод похожий на этот:
#######################################################
# MacBookAir9,1 SMBIOS Info #
#######################################################
Type: MacBookAir9,1
Serial: C02XG0FDH7JY
Board Serial: C02839303QXH69FJA
SmUUID: DBB364D6-44B2-4A02-B922-AB4396F16DA8
- Примечание: MacSerial в настоящее время не поддерживает Linux, поэтому вы должны взять компьютер с Windows или macOS, чтобы сгенерировать значения MacBookPro16,2
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
- Устанавливает, распаяна ли память или нет в информацию SMBIOS, чисто косметически, поэтому рекомендуем
UpdateDataHub: YES
- Обновляет Data Hub поля
UpdateNVRAM: YES
- Обновляет NVRAM поля
UpdateSMBIOS: YES
- Обновляет SMBIOS поля
UpdateSMBIOSMode: Create
- Заменяет таблицы новым выделенным EfiReservedMemoryType, используйте
Custom
на ноутбуках Dell, требующихCustomSMBIOSGuid
квирка - Включение этого квирка с
CustomSMBIOSGuid
вCustom
может также отключать инжекцию SMBIOS в ОС не от Apple, однако мы не одобряем этот метод, потому что он ломает совместимость с Bootcamp. Используйте на свой страх и риск
- Заменяет таблицы новым выделенным EfiReservedMemoryType, используйте
# UEFI
ConnectDrivers: YES
- Принудительно загружает .efi драйверы, изменение на NO автоматически подключит UEFI драйверы. Это может сделать загрузку немного быстрее, но не все драйверы подключаются сами. К примеру, некоторые драйверы файловой системы могут не загружаться.
# Drivers
Добавьте свои .efi драйверы сюда.
Драйверы, которые должны быть здесь:
- HfsPlus.efi
- OpenRuntime.efi
# APFS
Настройки относящиеся к APFS драйверу, оставьте здесь всё по умолчанию.
# Audio
Относится к настройкам AudioDxe, в нашем случае, мы это проигнорируем(оставьте по умолчанию). Это не относится к поддержке звука в macOS.
- Для дальнейшего использования AudioDxe и раздела Audio, см. страницу После установки: Добавление GUI и Boot-chime (opens new window)
# Input
Относится к использованию клавиатуры в boot.efi для поддержки FileVault и горячих клавиш, оставьте здесь всё по умолчанию, так как нам не нужны эти квирки. Более подробную информацию смотрите здесь: Безопасность и FileVault (opens new window)
# Output
Относится к визуальному выводу OpenCore, оставьте здесь всё по умолчанию, так как нам не нужны эти квирки.
# ProtocolOverrides
В основном актуально для виртуальных машин, устаревших маков, и пользователей FileVault. Более подробную информацию смотрите здесь: Безопасность и FileVault (opens new window)
# Quirks
Информация
Относится к квиркам в UEFI среде, в нашем случае, мы будем менять следующее:
Quirk | Enabled | Comment |
---|---|---|
ReleaseUsbOwnership | YES | |
UnblockFsConnect | NO | В основном нужно материнским платам HP |
Более подробная информация
ReleaseUsbOwnership: YES
- Освобождает USB-контроллер от драйвера прошивки, необходимого, когда ваша прошивка не поддерживает EHCI/XHCI Handoff. Большинство ноутбуков имеют «мусорные» прошивки, так что нам это тоже понадобится
DisableSecurityPolicy: NO
- Отключает платформенную политику безопасности в прошивке. Рекомендуется для прошивок, в которых отключение Secure Boot не позволяет загружать сторонние драйверы прошивки.
- Если у вас устройство серии Microsoft Surface, рекомендуем включить эту опцию
RequestBootVarRouting: YES
- Перенаправляет AptioMemoryFix из
EFI_GLOBAL_VARIABLE_GUID
вOC_VENDOR_VARIABLE_GUID
. Необходимо в тех случаях, когда прошивка пытается удалить загрузочную запись, и рекомендуется включать на всех системах для правильно установки обновлений, работы панели управления загрузочным диском (Startup Disk), т.д.
- Перенаправляет AptioMemoryFix из
UnblockFsConnect: NO
- Некоторые блочные разделы прошивки обрабатываются открываясь в режиме драйвера, что приводит к невозможности установки протоколов файловой системы. Обычно актуально для систем HP, когда в списке нет дисков
# ReservedMemory
Используется для исключения определенных областей памяти из ОС, в основном актуально для iGPU Sandy Bridge или систем с неисправной памятью. Использование этого квирка не рассматривается в этом руководстве
# Уборка
И теперь, вы готовы сохранить свой EFI и поместить его в EFI/OC.
Для тех, у кого есть проблемы с загрузкой, пожалуйста, сначала прочтите раздел Решение проблем, и если ваши вопросы остаются без ответа, в вашем распоряжении есть много ресурсов:
Санитарная проверка:
И так, благодаря усилиям Ramus, у нас также есть удивительный инструмент, который поможет проверить вашу конфигурацию для тех, кто, возможно, что-то пропустил:
Обратите внимание, что этот инструмент не разрабатывается и не поддерживается Dortania, все проблемы с этим сайтом должны отправляться сюда: Репозиторий Sanity Checker (opens new window)
# Напоминания о конфигурации
Пользователям HP:
- Kernel -> Quirks -> LapicKernelPanic -> True
- В противном случае, вы получите панику ядра на LAPIC
- UEFI -> Quirks -> UnblockFsConnect -> True
Пользователям Dell:
- Kernel -> Quirk -> CustomSMBIOSGuid -> True
- PlatformInfo -> UpdateSMBIOSMode -> Custom
# Настройки 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
- Hyper-Threading
- Execute Disable Bit
- EHCI/XHCI Hand-off
- OS type: Windows 8.1/10 UEFI Mode
- DVMT Pre-Allocated(iGPU Memory): 256MB
- SATA Mode: AHCI