# Оптимізація управління живленням

# Увімкнення X86PlatformPlugin

Отже, перш ніж ми зможемо налаштувати управління живленням на свій смак, спочатку переконайтеся, що завантажено ядро ​​XCPM від Apple. Зверніть увагу, що це підтримується тільки на Haswell та новіші (з Ivy Bridge-E), споживчі процесори Sandy, Ivy Bridge та AMD повинні посилатися на нижню частину посібників:

(відкриває нове вікно) та шукайте AppleACPICPU (зауважте, якщо ви використовуєте пошук, він не буде показувати дітям так чіткий пошук, як тільки ви знайдете запис):

XCPM присутній Відсутній XCPM
після

Як ви можете бачити з лівого зображення, ми додали X86PlatformPlugin, що означає, що драйвери управління процесором живлення Apple роблять свою справу (зверніть увагу, що ім'я процесора не має значення, імена процесорів мають багато варіантів, таких як CP00, CPU0, PR00 тощо) має значення те, що AppleACPICPU приєднує до нього). Якщо ви отримаєте щось на зразок правильного зображення, то, ймовірно, проблема. Обов’язково перевірте наступне:

    SSDT-ПЛУГА.aml присутній і включений у вашому config.plist та EFI/OC/ACPI
      Якщо ви цього пропустили, перейдіть до Початок роботи з ACPI

    (відкриває нове вікно) про те, як це зробити

  • SSDT-PLUG встановлений для першого потоку вашого процесора, ви можете перевірити, вибравши перший перерахований процесор (CP00 для нашого прикладу) і переконайтесь, що у вас є це у властивостях:
  • Примітка X99:

    XCPM власне не підтримує Haswell-E та Broadwell-E, це означає, що нам потрібно підробити ідентифікатор процесора в модель, яка підтримує XCPM:

    Haswell-E:

    • Ядро -> Емуляція:
      • Cpuid1Data: C3060300 00000000 00000000 00000000
      • Cpuid1Mask: FFFFFFFF 00000000 00000000 00000000

    Бродвелл-Е:

    • Ядро -> Емуляція:
      • Cpuid1Data: D4060300 00000000 00000000 00000000
      • Cpuid1Mask: FFFFFFFF 00000000 00000000 00000000

    # Використання процесора Friend

    Для початку нам знадобиться кілька речей:

    • Завантажено плагін X86Platform
      • Це означає, що процесори Sandy, Ivy Bridge та AMD не підтримуються
    • CPUFriend

      (відкриває нове вікно)

      • Ця вилка має деякі додаткові функції, які можуть як спростити процес, так і використовувати кращий контроль

    # LFM: низькочастотний режим

    Тепер давайте запустимо CPUFriendFriend.command:

    Коли ви вперше відкриваєте CPUFriendFriend, вам буде запропоновано запит щодо вибору значення LFM. Це може розглядатися як мінімальний рівень вашого процесора або найнижче значення, за якого він буде простоювати. Це значення може значно допомогти у правильному функціонуванні сну, оскільки macOS повинна мати можливість переходу з S3 (сплячий режим) в S0 (пробудження).

    Щоб визначити своє значення LPM, ви можете:

      Шукайте частоту зниження TDP на веб-сайті ARK від Intel

    (відкриває нове вікно)

    • Зверніть увагу, що більшість процесорів не мають перерахованого значення, тому вам потрібно буде визначитись самостійно
  • Або виберіть рекомендовані значення:
  • ПоколінняLFM ValueComment
    Broadwell + Ноутбуки08Еквівалент 800 МГц
    Бродвелл + Настільні комп'ютериЕквівалент 1000 МГц
    HEDT/сервер Haswell/Broadwell (тобто X99)0DЕквівалент 1300 МГц
    Skylake + HEDT/сервер (тобто X299)Еквівалент 1200 МГц
    • Примітка: Значення LFM доступне лише на Broadwell та новіших SMBIOS
    • Примітка 2: ці значення не встановлені в камені, кожна машина буде мати унікальні характеристики, тому вам доведеться експериментувати, що найкраще підходить для вашого обладнання

    У цьому прикладі ми будемо використовувати i9 7920x

    (відкриває нове вікно), який має базовий тактовий сигнал 2,9 ГГц, але не LFM, тому ми виберемо 1,3 ГГц (тобто 1300 МГц) і працюватимемо вгору/вниз, поки не знайдемо стабільність.

    • Зверніть увагу, що значення LFM - це просто мультиплікатор процесора, тому вам потрібно буде правильно обрізати своє значення
      • тобто Поділіть на 100, а потім перетворіть у шістнадцяткову

    • Зверніть пильну увагу, ми використовували 13 для 1,3 ГГц, а не 1,3

    # EPP: налаштування енергоефективності

    Далі йде перевага щодо енергетичних показників, EPP. Це повідомляє macOS про те, як швидко доводити процесор до повного годинника. 00 скаже macOS, щоб CPU працював якомога швидше, наскільки це можливо, тоді як FF буде говорити macOS повільно, і нехай CPU зростає набагато довший проміжок часу. Залежно від того, що ви робите, та від охолодження на вашій машині, можливо, ви захочете встановити щось посередині. Нижче на діаграмі можна трохи допомогти:

    Швидкість EPP
    0x00-0x3F Максимальна продуктивність
    0x40-0x7F Баланс продуктивності
    0x80-0xBF Баланс потужності
    0xC0-0xFF Максимальна економія енергії

    Примітка: Тільки Skylake та новіші SMBIOS офіційно підтримують EPP

    # Упередження продуктивності

    Цей останній запис має допомогти macOS визначити, яку загальну продуктивність ви хочете від вашого центрального процесора. Загальна рекомендація залежить від вашої точної настройки, а експерименти допомагають зрозуміти, що для вас найкраще.

    # Очищення

    Після завершення ви отримаєте CPUFriendDataProvider.kext та ssdt_data.aml. Який варіант ви обираєте, але я рекомендую варіант kext, щоб уникнути головного болю при введенні даних у Windows та Linux.

    • Примітка: Порядок завантаження не має значення для CPUFriendDataProvider, оскільки це просто кекст лише для plist
    • Примітка 2: Проблеми з пробудженням, спричинені CPUFriend, ймовірно, пов’язані з неправильними векторами частоти, кожна система унікальна, тому вам доведеться пограти, поки не отримаєте стабільну конфігурацію. Паніка ядра матиме збій Sleep Wake в efi .
    • Примітка 3: Якщо ви вирішили використовувати ssdt_data.aml, зверніть увагу, що SSDT-PLUG більше не потрібен. Однак налаштування цього SSDT порушено на платформах HEDT, таких як X79, X99 та X299, тому ми настійно рекомендуємо SSDT-PLUG із CPUFriendDataProvider.kext.

    # Сенді та Айві Брідж Керування енергією

    З Sandy та Ivy Bridge у споживчих ПК виникають проблеми з підключенням до XCPM від Apple. Отже, щоб обійти це, нам потрібно створити власну таблицю керування живленням.

    • Примітка: Процесори Ivy Bridge-E офіційно підтримують XCPM, замість цього зверніться до Увімкнення X86PlatformPlugin

    • Переконайтеся, що таблиці CpuPm та Cpu0Ist є НЕ впав
    • ssdtPRGen

    Починаючи з налаштування OpenCore у розділі Ivy Bridge, ми рекомендували користувачам скинути свої CpuPm та Cpu0Ist, щоб уникнути будь-яких проблем з AppleIntelCPUPowerManagement.kext. Але відмова від цих таблиць негативно впливає на порушення турбопідсилення в Windows. Отже, щоб вирішити цю проблему, ми хочемо зберегти таблицю нашого OEM, але ми хочемо додати нову таблицю, щоб доповнити дані лише для macOS. Отже, коли ми закінчимо створювати таблицю CPU-PM, ми знову додамо твердотільні твердотільні процесори для наших процесорів.

    Для початку візьміть свій config.plist, потім перейдіть до ACPI -> Видалити та переконайтеся, що для обох цих розділів увімкнено значення ТАК:

    Значення типу ключа
    Всі Логічна ТАК
    Прокоментуйте Рядок Знизьте CpuPm
    Увімкнено Логічна ТАК
    OemTableId Дані 437075506d000000
    Довжина столу Кількість 0
    Таблиця Підпис Дані 53534454
    Значення типу ключа
    Всі Логічна ТАК
    Прокоментуйте Рядок Падіння Cpu0Ist
    Увімкнено Логічна ТАК
    OemTableId Дані 4370753049737400
    Довжина столу Кількість 0
    Таблиця Підпис Дані 53534454

    Як тільки це буде зроблено, тепер ми можемо взяти ssdtPRGen і запустити його:

    Після закінчення ви отримаєте SSDT.aml під /Users/your-name>/Library/ssdtPRGen/ssdt.dsl, ви можете легко знайти його за допомогою комбінації клавіш Cmd + Shift + G та вставлення

    Не забудьте зараз додати це як до EFI/OC/ACPI, так і до свого списку config.plist. Я рекомендую перейменувати його на SSDT-PM, щоб легше знаходити.

    Нарешті, ми можемо відключити попередній ACPI -> Видалити записи (Увімкнено встановлено на НІ):

    Значення типу ключа
    Всі Логічна ТАК
    Прокоментуйте Рядок Знизьте CpuPm
    Увімкнено Логічна НІ
    OemTableId Дані 437075506d000000
    Довжина столу Кількість 0
    Таблиця Підпис Дані 53534454
    Значення типу ключа
    Всі Логічна ТАК
    Прокоментуйте Рядок Падіння Cpu0Ist
    Увімкнено Логічна НІ
    OemTableId Дані 4370753049737400
    Довжина столу Кількість 0
    Таблиця Підпис Дані 53534454

    # ssdtPRgen Виправлення неполадок

    Поки ssdtPRgen намагається вирішити будь-які проблеми несумісності з SSDT вашого OEM, ви можете виявити, що він все ще стикається при завантаженні, оскільки ваш OEM вже оголосив певні пристрої або методи в таких розділах, як _INI або _DSM .

    Якщо під час завантаження ви виявите помилки типу SSDT-PM:

    Це означає, що є певні конфлікти, щоб вирішити цю проблему, ми рекомендуємо перенести інформацію ssdtPRgen у такий формат:

    Зверніть пильну увагу на те, що ми зробили:

    • Переконайтеся, що об’єкт Processor переміщено до зовнішнього
    • Перемістіть усі свої методи в область обробки процесора

    Інформацію про редагування та повторну компіляцію SSDT-PM див. Тут: Початок роботи з ACPI

    # Управління живленням процесора AMD

    Незважаючи на те, що macOS може офіційно не підтримувати управління процесором живлення процесора AMD, спільні зусилля намагаються додати його. Зокрема, це SMCAMDP-процесор

    (відкриває нове вікно). Зверніть увагу, що під час додавання цього kext це має бути після VirtualSMC у вашому config.plist, оскільки це плагін.

    Увага: Цей kext, як відомо, також створює проблеми зі стабільністю, якщо ви отримуєте випадкові паніки ядра або проблеми із завантаженням, майте на увазі, що цей kext може бути винуватцем.