Заводим SpeedStep. Правильно.

Всем привет!

В последнее время ко мне все чаще и чаще стучатся в личку с проблемами сна и прочих вещей, которые часто растут ногами с одного, для многих, страшного и непонятного места.
А когда я спрашиваю: “Как заводили SpeedStep” – то, в буквальном смысле, получаю следующую реакцию: 😯 .
Когда же отправляю читать Книгу по Кловеру, то люди возвращаются с фразой: “Так ниче и не понял”.
Что ж, если вы из числа таких людей — эта статья для вас. Итак, поехали!


Для начала чуток матчасти

Весь спидстеп можно условно разделить на две партии: Коммунистическую (Sandy Bridge и ниже) и Демократическую (Ivy Bridge и выше).
При чем тут коммунисты?”, – спросите вы. Все очень просто: все процессоры до первого поколения серии “I” работают по принципу разгона за счет частоты, а не множителей, которых раз два и обчелся. К чему веду: куча понтов, а выбор небольшой. И только процессоры серии “I” изменили весь курс в сторону количества множителей, что открыло путь к широкому применению достаточно мощных процессоров на ноутбуках, не расходуя, при этом, огромное количество энергии, что увеличивает автономность работы лэптопов. При этом, процессоры до семейства Сенди остались под управлением старой системы (вроде как что-то изменилось, но не особо чувствуется) и только Иви Бридж открыл следующий этап управления питанием. Вот тут и началась вся демократия: большой выбор, да и подход совсем новый.
Об этом и пойдет речь.
Вцелом, разница между заводом спидстепа будет не очень большая, но есть общие принципы, которые отличаются. Частично я встречал информацию в просторах интернета, а некоторые моменты – мои личные наблюдения и тесты.

Примечание
Я не буду рассматривать завод СпидСтепа процессоров, которым нужна замена ядра.
Это относится к AMD и Intel Atom. У AMD его нету вообще. Там Cool’n’Quiet, но мы не об этом.
Завод Intel Pentium и Celeron поколения Haswell и выше описан в другой статье у нас на сайте.

Sandy Bridge и ниже

Sandy Bridge и ниже

Итак, предлагаю вооружится терпением и IORegistryExplorerпакетом FakeSMC от RehabMan (с него нам понадобятся плагины для фейка и утилита HWMonitor), MaciASL, утилитой для тестирования нашего процессора GeekBenchа так же программой MacTracker.

 Что нам нужно для успеха:

  1. Удалить и впредь никогда не использовать NullCPUPowerManagement.kext!
  2. Не в коем случаи не редактировать конфиг CloverConfigurator`ом! Он полностью испортит ВСЮ проделанную нами работу, т.к. он неверно работает со спидстепом! Все изменения советую проводить через PlistEditPro или XCode.
  3. Знать модель процессора (core i3/5/7, core2duo и т.д).
  4. Модель чипсета материнской платы (нативный он или нет).

А теперь разберем более подробно.

Модель процессора

Модель процессора

Почему принципиально важно знать модель своего процессора? Потому что от модели процессора зависит модель SMBios, который нам нужно будет подобрать и если он выбран неправильно – спидстеп работать не будет. Обычно Кловер сам справляется с этой задачей, подбирая самый удачный вариант. Но лично в моем опыте я не раз встречал ситуации, когда выставленный мною СМБиос значительно улучшал производительность всей системы.

Примечание
Посмотреть модель процессора можно в биосе, ГУИ Кловера или при старте утилиты ГикБенч (она указывает точную модель).
Мы будем рассматривать процессор Intel Core2Duo E6750, 2,66GHz (с разгоном до 3,2), ядро Conroe,  поскольку этот процессор есть на руках.

Итак:

  1. Узнаем модель процессора.
  2. Ищем процессор в гугле и смотрим подробную информацию о нем.
  3. Узнаем семейство ядра: Conroe, Merom, Wolfdale и т.д (это повлияет на выбор СМБиоса).
  4. Открываем MacTracker и выбираем модель настоящика: iMac, MacBookAir, MacPro, MacBookPro, MacServer, MacMini (соотвественно ноутбук у вас или декстоп).MacTracker
  5. Двойной клик по нужной нам модели.
  6. Смотрим на область с надписью “Processor”. Нас интересует модель, ядро, частота и размер кеша.iMac10,1
    Примечание
    Если данные не совпали с вашими, то вверху окна есть стрелочки, которыми вы можете листать модели подряд. Задача найти самую близкую модель к нашему процессору. 
  7. Теперь нашу модель нужно внести в config.plist Кловера.config.plist
    Примечание
    Обязательно редактируйте конфиг программой PlistEditPro или XCode . Настоятельно рекомендую не использовать для этой цели CloverConfigurator. Если интересна причина – почитайте статью Слайса (автора Кловера) на сайте applelife.ru про КловерКонфигуратор.
    Теперь разберемся подробнее в выборе СМБиоса для этого процессора. Кловер мне подставляет iMac8,1, где стоял процессор с ядром Pernyn. Но я вручную выбрал СМБиос с ядром Wolfdale. Причина очень проста: iMac10,1 лучше подходит по параметрам моему разогнанному процессору, чем iMac8,1. Да и тесты ГикБенча показали нормальную разницу в пользу iMac10,1. К тому же, визуально разница была заметна. Впрочем разница между ядрами в процессорах Core2 не играет фундаментальной роли. Тут более важно соблюсти частоту и кеш (это более сильно влияет на скорость работы). Эмпирика покажет.
  8. Далее нужно “завести” наш SppedStep.
    Есть разные способы, но мы рассмотрим достаточный способ, на мой взгляд. Это генерация Кловером.
    Заходим во вкладку ACPI/SSDT нашего конфига и ищем вкладку Generate.Config. Generate
    Теперь принципиально важный момент: для процессоров выпуска до 2011 года принудительно нужна генерация C-states, не смотря на то, что в 10.11+ управление питанием отдано P-states. Этот пункт еще зависит от выбранного нами СМБиоса.
    К примеру: компьютеры iMac зачастую управляются P-states, а MacPro – C-states.
    Опять таки, выбирая СМБиос для своего компьютера, я бы посоветовал найти в гугле IOReg настоящего Мака той модели, которую вы выбрали и посмотреть какими стейтами он управляется.
    Если вернуться к реальному примеру, который мы с вами рассматриваем, то могу сказать несколько нюансов. Спидстеп моего процессора требовал C-states, вплоть до системы 10.11+. После обновления до El Capitan – кловер сам отключает мне их и Спидстеп прекрасно работает на P-states.
    Если вы не хотите долго разбираться в этих вещах – просто включите генерацию обоих. Если C-states не нужны – кловер сам исправит ситуацию и отключит не нужную генерацию. Все покажет Эмпирика.
    Примечание
    Если выполняется генерация С-стейтов, то желательно так же проставить фикс в ACPI/DSDT/Fixes/FIX_ACST_4000000=Yes
  9. Теперь нужно активировать пункты PluginType (имеет отношение к разновидности старой и новой системы), MinMultiplier (указываем минимальный множитель на 2 ступени меньше, чем у вашего процессора. У меня минимальный 6, по-этому я указал 4. Влияет на питание процессора в простое. Эмпирика) и DropOEM (отвечает за отброс всех родных АЦПИ таблиц, который нам не нужен) и прописать так, как на скрине.DropOEM
  10. Теперь нужно сделать выборочный отброс родных таблиц, которые отвечают за СпидСтеп. Для этого переходим во вкладку ACPI/DropTables.Знімок екрана 2016-08-24 о 12.43.21
    Нас интересует TableID CpuPm и Cpu0IstВ дефолтном конфиге дроп сделан по названию таблиц, но такой метод не всегда эффективный. Далеко не все производители придерживаются стандартов наименования в АЦПИ. Такие “кадры”, как Acer и НР посчитали, что они умнее всех и сделали по-своему.
    Недавно я столкнулся с тем фактом, что прописаны обе таблицы, которые отвечают за спидстеп в конфиге, но кловер, почему-то, отбросил только одну. Потом я таки увидел, что название одной таблицы не совпадает с той, которая в конфиге. Хорошо, если таблицы не пересекаются в названиях и можно просто ID подправить. А что если у вас Acer, а таблица называется ACRPRDT и отвечает не только за проц, а за графон, ЖД, обороты куллера и т.д? В этом случаи по имени дропать нельзя, иначе, в противном случаи, вы просто отрубите все эти важные системы.
    Для этого у нас есть дроп по-длине таблицы. Снимаем оригинальные таблицы нажав F4 в меню кловера. После этого идем по пути: EFI/EFI/Clover/ACPI/origin и наблюдаем, примерно, следующую картину:
    Нас инетерсуют все таблицы с названием “SSDT-x”. Открываем их по-очереди и смотрим на боковую панель. Наша задача отбросить все таблицы, где есть название “CPU”.

    Нашли все? Теперь ищем строку “Length” (она выделена мною на скринах). Именно эти значения нам и нужно вписать в конфиг, чтобы кловер понимал что нужно отбросить.
    Удаляем строки TableID и вносим данные, как показано на скрине:
    Примечание
    Таблиц может быть больше, чем 2. Часто это копии, которые создал либо кловер, либо разработчики. Но я советую вносить все, а кловер уже сам определит какие ему отбрасывать, а какие нет.
  11. Следующий важный момент – правка HPET. Если ее не сделать, то Кловеру просто не будет за что “уцепится”. Это можно делать вручную через компилятор ДСДТ.
    Впрочем, Кловер делает это отлично и сам с помощью ACPI/DSDT/Fixes/FixHPET_0010=Yes.
  12. Теперь переходим в раздел KernelAndKextPatches, ищем пункт KernelPm и ставим Yes.KernellPM
    Раньше считалось, что патч необходим только Haswell+, но недавно я увидел, что Кловер сам подставил мне его на процессоре предыдущего поколения и я решил посмотреть разницу.
    Проведя ряд тестов, я сделал вывод, что патч нужен абсолютно всем поколениям процессоров Intel. Просто многие системы с Haswell+ вы даже не запустите без него (если у вас запускается, то это, конечно, здорово, но нет смысла писать нам и во все другие инстанции, что вы Д’Артаньян, а все вокруг… не очень хорошие люди), а процессоры предыдущих поколений показали достаточно высокие результаты с этим патчем, нежели без него. Особенно меня впечатлил мой Intel Core i5 3210M, который выдал на 800 очков больше в ГикБенче в мультиядерном режиме, а это, друзья, серьезная разница. Эмпирика.
  13. *Этот пункт касается только ноутбуков и материнских плат ASUS. Дело в том, что AppleIntelCPUPowerManagement.kext пишет в UEFI (BIOS) по адресу MSR 0xE2, который только для чтения и происходит kernel panic.
    Чтобы избежать такой проблемы, в разделе KernelAndKextPatches ищем пункт AsusAICPUM и ставим Yes (как на скрине в пункте 12).
  14. *Следующее действие актуально только если у вас установлена система 10.9-10.11 (в Сиерре поддержку для процессоров ниже Haswell випилили).
    Эпл сделала возможность управление питанием процессора напрямую через ядро системы, что делает спидстеп более агресивным. Для этого нам нужно вписать аргумент в конфиг “-xcpm”.
  15. Находим пункт CPU в конфиге и полностью его удаляем. Эти параметры лучше отдать кловеру, он справится на “ура”.
    (“Но в кцх же сказано!” — да, сказано. А ещё там точно так же сказано, что это необходимо только для процессоров, с которыми клевер не знаком и не может справится!)Итак, все, что касается процессора мы сделали. Теперь перейдем к следующему пункту.[_/su_spoiler]

Проверка

Проверка

Теперь надо проверить наш СпидСтеп. Для этого нам понадобится IORegistryExplorer.

  1. Идем по пути CPU0@0/AppleACPICPU/ACPI_SMC_PlatformPlugin, как показано на скрине.
    Sandy-
    Об успешном заводе SpeedStep свидетельствует наличие строки PerformanceStateArray и наличие значений в ней.
    Примечание
    Если у вас стоит 10.10 Yosemite или ниже, то у вас должна быть еще одна строка, под названием ACPIVerms и она будет иметь значение, типа “0х3е8945”. Если у вас она появилась – СпидСтеп заведен.
  2. Теперь открываем нашу папку с FakeSMC и плагинами. Если ваш фейк, который вы используете уже имеет плагины, то они вам не нужны. Но если же ваш фейк не от Рехабмена или у него нету плагинов – советую взять Фейк, который я дал в начале статьи и закинуть в него плагины.
    Примечание
    Для этого нужно зайти в кекст с помощью ПКМ/Показать содержимое пакета/Contents/ и тут создать папку Plugins, а потом туда положить 4 плагина, которые идут в комплекте с кекстом.
    Если вы делали изменения в кексте – нужна перезагрузка, иначе мониторинга не будет.
  3. Открываем HWMonitor наблюдаем за частотами и множителями процессора.
    Если они изменяются, как на скринах ниже, – это уже второе подтверждение верной работы СпидСтепа.HWMonitor (Max) HWMonitor (Min)
  4. Последний тест, который я бы советовал провести – GeekBench. Вы просто будете знать сколько очков получит ваш процессор. Ну или же можете сделать сравнительные тесты своего процессора с разными СМБиосами, а так же с наличием и отсутствием ключа KernelPM, а потом сделать соответственные выводы.[_/su_spoiler]

Ivy Bridge

Ivy Bridge

Теперь мы, как-бы, плавно переходим к “демократической” партии. Более новый подход к вычислительной мощности, с максимальным энергосбережением. Процессоры этого поколения отличаются серьезным отрывом по скорости от предыдущих, но они далеко не фонтан. Впрочем метод завода будет похожим, но имеются некие отличия.

Итак, предлагаю вооружится терпением и IORegistryExplorerпакетом FakeSMC от RehabMan (с него нам понадобятся плагины для фейка и утилита HWMonitor), MaciASL, утилитой для тестирования нашего процессора GeekBenchа так же программой MacTracker.

Что нам нужно для успеха:

  1. Удалить и впредь никогда не использовать NullCPUPowerManagement.kext!
  2. Не в коем случаи не редактировать конфиг CloverConfigurator`ом! Он полностью испортит ВСЮ проделанную нами работу, т.к. он неверно работает со спидстепом! Все изменения советую проводить через PlistEditPro или XCode.
  3. Знать модель процессора (core i3/5/7).
  4. Модель чипсета материнской платы (нативный он или нет).

А теперь разберем более подробно.

Модель процессора

Модель процессора

Почему принципиально важно знать модель своего процессора? Потому что от модели процессора зависит модель SMBios, который нам нужно будет подобрать и если он выбран неправильно – спидстеп работать не будет. Обычно Кловер сам справляется с этой задачей, подбирая самый удачный вариант. Но лично в моем опыте я не раз встречал ситуации, когда выставленный мною СМБиос значительно улучшал производительность всей системы.

Примечание
Посмотреть модель процессора можно в биосе, ГУИ Кловера или при старте утилиты ГикБенч (она указывает точную модель).
Мы будем рассматривать процессор Intel Core i5, 3210M, 2,5GHz (3,1GHz with TurboBoost),  поскольку этот процессор есть на руках. Этот способ завода абсолютно точно подходит для любых других процессоров этого поколения: как для мобильных, так и для десктопных версий.

Итак:

  1. Узнаем модель процессора.
  2. Ищем процессор в гугле и смотрим подробную информацию о нем.
  3. Открываем MacTracker и выбираем модель настоящика.
     Десктопы:
     iMac13,1; iMac13,2;
    MacMini6,1; MacMini6,2;
    MacPro6,1.
     Мобильные:
    MacBookPro9,1; MacBookPro9,2; MacBookPro10,1; MacBookPro10,2;
    MacBookAir5,1; MacBookAir5,2.
  4. Двойной клик по нужной нам модели.
  5. Смотрим на область с надписью “Processor”. Нас интересует модель, ядро, частота и размер кеша.MBA5,2
  6. Примечание
    Если данные не совпали с вашими, то вверху окна есть стрелочки, которыми вы можете листать модели подряд. Задача найти самую близкую модель к нашему процессору. 
  7. Теперь нашу модель нужно внести в config.plist Кловера.MBA SMBios
    Примечание
    Обязательно редактируйте конфиг программой PlistEditPro или XCode . Настоятельно рекомендую не использовать для этой цели CloverConfigurator. Если интересна причина – почитайте статью Слайса (автора Кловера) на сайте applelife.ru про КловерКонфигуратор.
  8. Далее нужно “завести” наш SpeedStep.
    Есть разные способы, но мы рассмотрим достаточный способ, на мой взгляд. Это генерация Кловером.
    Заходим во вкладку ACPI/SSDT нашего конфига и ищем вкладку Generate.Config. Generate
    Теперь принципиально важный момент: для систем 10.10 Yosemite и ниже нужно сгенерировать С и Р-стейты, а для 10.11+ нужна генерация только Р-стейтов.
    Но последние тесты показали, что для процессоров, которые поддерживают технологию TurboBoost , генерация С-стейтов обязательна, поскольку без них TurboBoost не работает.
    К тому же, мои тесты показали, что даже на процессорах без TurboBoost генерация С-стейтов показывает более высокие тесты и заметную разницу в производительности системы на визуальном уровне.
    Примечание
    Если выполняется генерация С-стейтов, то желательно так же проставить фикс в ACPI/DSDT/Fixes/FIX_ACST_4000000=Yes
  9. Теперь нужно активировать пункты PluginType (имеет отношение к разновидности старой и новой системы), MinMultiplier (указываем минимальный множитель 7. Влияет на питание процессора в простое и автономность работы. Эмпирика) и DropOEM (отвечает за отброс всех родных АЦПИ таблиц, который нам не нужен) и прописать так, как на скрине.SSDT Ivy
    Также очень важно продублировать первый стейт, так как для Иви это увеличивает автономность. Об этом указано в КЦХ и реально проверено мною. На скрине этот пункт выделеный первым.
  10. Теперь нужно сделать выборочный отброс родных таблиц, которые отвечают за СпидСтеп. Для этого переходим во вкладку ACPI/DropTables.Знімок екрана 2016-08-24 о 12.43.21
    Нас интересует TableID CpuPm и Cpu0IstВ дефолтном конфиге дроп сделан по названию таблиц, но такой метод не всегда эффективный. Далеко не все производители придерживаются стандартов наименования в АЦПИ. Такие “кадры”, как Acer и НР посчитали, что они умнее всех и сделали по-своему.
    Недавно я столкнулся с тем фактом, что прописаны обе таблицы, которые отвечают за спидстеп в конфиге, но кловер, почему-то, отбросил только одну. Потом я таки увидел, что название одной таблицы не совпадает с той, которая в конфиге. Хорошо, если таблицы не пересекаются в названиях и можно просто ID подправить. А что если у вас Acer, а таблица называется ACRPRDT и отвечает не только за проц, а за графон, ЖД, обороты куллера и т.д? В этом случаи по имени дропать нельзя, иначе, в противном случаи, вы просто отрубите все эти важные системы.
    Для этого у нас есть дроп по-длине таблицы. Снимаем оригинальные таблицы нажав F4 в меню кловера. После этого идем по пути: EFI/EFI/Clover/ACPI/origin и наблюдаем, примерно, следующую картину:
    Нас инетерсуют все таблицы с названием “SSDT-x”. Открываем их по-очереди и смотрим на боковую панель. Наша задача отбросить все таблицы, где есть название “CPU”.

    Нашли все? Теперь ищем строку “Length” (она выделена мною на скринах). Именно эти значения нам и нужно вписать в конфиг, чтобы кловер понимал что нужно отбросить.
    Удаляем строки TableID и вносим данные, как показано на скрине:
    Примечание
    Таблиц может быть больше, чем 2. Часто это копии, которые создал либо кловер, либо разработчики. Но я советую вносить все, а кловер уже сам определит какие ему отбрасывать, а какие нет.
  11. Следующий важный момент – правка HPET. Если ее не сделать, то Кловеру просто не будет за что “уцепится”. Это можно делать вручную через компилятор ДСДТ.
    Впрочем, Кловер делает это отлично и сам с помощью ACPI/DSDT/Fixes/FixHPET_0010=Yes.
  12. Теперь переходим в раздел KernelAndKextPatches, ищем пункт KernelPm и ставим Yes.KernellPM
    Раньше считалось, что патч необходим только Haswell+, но недавно я увидел, что Кловер сам подставил мне его на процессоре предыдущего поколения и я решил посмотреть разницу.
    Проведя ряд тестов, я сделал вывод, что патч нужен абсолютно всем поколениям процессоров Intel. Просто многие системы с Haswell+ вы даже не запустите без него (если у вас запускается, то это, конечно, здорово, но нет смысла писать нам и во все другие инстанции, что вы Д’Артаньян, а все вокруг… не очень хорошие люди), а процессоры предыдущих поколений показали достаточно высокие результаты с этим патчем, нежели без него. Особенно меня впечатлил мой Intel Core i5 3210M, который выдал на 800 очков больше в ГикБенче в мультиядерном режиме, а это, друзья, серьезная разница. Эмпирика.
  13. *Этот пункт касается только ноутбуков и материнских плат ASUS. Дело в том, что AppleIntelCPUPowerManagement.kext пишет в UEFI (BIOS) по адресу MSR 0xE2, который только для чтения и происходит kernel panic.
    Чтобы избежать такой проблемы, в разделе KernelAndKextPatches ищем пункт AsusAICPUM и ставим Yes (как на скрине в пункте 12).
  14. *Следующее действие актуально только если у вас установлена система 10.9-10.11 (в Сиерре поддержку для процессоров ниже Haswell випилили).
    Эпл сделала возможность управление питанием процессора напрямую через ядро системы, что делает спидстеп более агресивным. Для этого нам нужно вписать аргумент в конфиг “-xcpm”.
  15. Находим пункт CPU в конфиге и полностью его удаляем. Эти параметры лучше отдать кловеру, он справится на “ура”.
    (“Но в кцх же сказано!” — да, сказано. А ещё там точно так же сказано, что это необходимо только для процессоров, с которыми клевер не знаком и не может справится!)

Итак, все, что касается процессора мы сделали. Теперь перейдем к следующему пункту.[_/su_spoiler]

Проверка

Проверка

Теперь надо проверить наш СпидСтеп. Для этого нам понадобится IORegistryExplorer.

  1. Идем по пути CPU0@0/AppleACPICPU/AppleACPICPUInterruptController/X86PlatformPlugin, как показано на скрине.IOReg
  2. Об успешном заводе SpeedStep свидетельствует наличие строк CPUCStates и CPUPStates, а также наличие значений в них.
  3. Теперь открываем нашу папку с FakeSMC и плагинами. Если ваш фейк, который вы используете уже имеет плагины, то они вам не нужны. Но если же ваш фейк не от Рехабмена или у него нету плагинов – советую взять Фейк, который я дал в начале статьи и закинуть в него плагины.
    Примечание
    Для этого нужно зайти в кекст с помощью ПКМ/Показать содержимое пакета/Contents/ и тут создать папку Plugins, а потом туда положить 4 плагина, которые идут в комплекте с кекстом.
    Если вы делали изменения в кексте – нужна перезагрузка, иначе мониторинга не будет.
  4. Открываем HWMonitor наблюдаем за частотами и множителями процессора.
    Если они изменяются, как на скринах ниже, – это уже второе подтверждение верной работы СпидСтепа.
    Знімок екрана 2016-08-24 о 23.07.19 Знімок екрана 2016-08-24 о 23.07.29 Знімок екрана 2016-08-24 о 23.07.44
    Примечание
    Последние тесты показали, что для завода TurboBoost генерация С-стейтов обязательна.
  5. Последний тест, который я бы советовал провести – GeekBench. Вы просто будете знать сколько очков получит ваш процессор. Ну или же можете сделать сравнительные тесты своего процессора с разными СМБиосами, а так же с наличием и отсутствием ключа KernelPM, а потом сделать соответственные выводы.[_/su_spoiler]

Haswell и выше

Haswell+

Система завода полностью аналогична системе IvyBridge, за исключением некоторых пунктов.

Итак, предлагаю вооружится терпением и IORegistryExplorerпакетом FakeSMC от RehabMan (с него нам понадобятся плагины для фейка и утилита HWMonitor), MaciASL, утилитой для тестирования нашего процессора GeekBenchа так же программой MacTracker.

Что нам нужно для успеха:

  1. Удалить и впредь никогда не использовать NullCPUPowerManagement.kext!
  2. Не в коем случаи не редактировать конфиг CloverConfigurator`ом! Он полностью испортит ВСЮ проделанную нами работу, т.к. он неверно работает со спидстепом! Все изменения советую проводить через PlistEditPro или XCode.
  3. Знать модель процессора (core i3/5/7).
  4. Модель чипсета материнской платы (нативный он или нет).

А теперь разберем более подробно.

Модель процессора

Модель процессора

Почему принципиально важно знать модель своего процессора? Потому что от модели процессора зависит модель SMBios, который нам нужно будет подобрать и если он выбран неправильно – спидстеп работать не будет. Обычно Кловер сам справляется с этой задачей, подбирая самый удачный вариант. Но лично в моем опыте я не раз встречал ситуации, когда выставленный мною СМБиос значительно улучшал производительность всей системы.

Примечание
Посмотреть модель процессора можно в биосе, ГУИ Кловера или при старте утилиты ГикБенч (она указывает точную модель).
Мы будем рассматривать процессор Intel Core i3, 4005U, 1,7GHz (no TurboBoost),  поскольку этот процессор есть на руках. Этот способ завода абсолютно точно подходит для любых других процессоров этого поколения: как для мобильных, так и для десктопных версий.

Итак:

  1. Узнаем модель процессора.
  2. Ищем процессор в гугле и смотрим подробную информацию о нем.
  3. Открываем MacTracker и выбираем модель настоящика.
     Десктопы:
    iMac14,1+;
    MacMini7,1+;
     Мобильные:
    MacBookPro11,1+;
    MacBookAir6,1+.
  4. Двойной клик по нужной нам модели.
  5. Смотрим на область с надписью “Processor”. Нас интересует модель, ядро, частота и размер кеша.

    Примечание
    Если данные не совпали с вашими, то вверху окна есть стрелочки, которыми вы можете листать модели подряд. Задача найти самую близкую модель к нашему процессору. 
  6. Теперь нашу модель нужно внести в config.plist Кловера.

    Примечание
    Обязательно редактируйте конфиг программой PlistEditPro или XCode . Настоятельно рекомендую не использовать для этой цели CloverConfigurator. Если интересна причина – почитайте статью Слайса (автора Кловера) на сайте applelife.ru про КловерКонфигуратор.
  7. Далее нужно “завести” наш SpeedStep.
    Есть разные способы, но мы рассмотрим достаточный способ, на мой взгляд. Это генерация Кловером.
    Заходим во вкладку ACPI/SSDT нашего конфига и ищем вкладку Generate.
  8. Теперь принципиально важный момент: для систем 10.10 Yosemite и ниже нужно сгенерировать С и Р-стейты, а для 10.11+ нужна генерация только Р-стейтов.
    Но последние тесты показали, что для процессоров, которые поддерживают технологию TurboBoost, генерация С-стейтов обязательна, поскольку без них TurboBoost не работает.
    К тому же, мои тесты показали, что даже на процессорах без TurboBoost генерация С-стейтов показывает более высокие тесты и заметную разницу в производительности системы на визуальном уровне.
    Примечание
    Если выполняется генерация С-стейтов, то желательно так же проставить фикс в ACPI/DSDT/Fixes/FIX_ACST_4000000=Yes
  9. Теперь нужно активировать пункты PluginType (имеет отношение к разновидности старой и новой системы), MinMultiplier (указываем минимальный множитель 7. Влияет на питание процессора в простое и автономность работы. Эмпирика) и DropOEM (отвечает за отброс всех родных АЦПИ таблиц, который нам не нужен) и прописать так, как на скрине.
  10. Теперь нужно сделать выборочный отброс родных таблиц, которые отвечают за СпидСтеп. Для этого переходим во вкладку ACPI/DropTables.Знімок екрана 2016-08-24 о 12.43.21
    Нас интересует TableID CpuPm и Cpu0IstВ дефолтном конфиге дроп сделан по названию таблиц, но такой метод не всегда эффективный. Далеко не все производители придерживаются стандартов наименования в АЦПИ. Такие “кадры”, как Acer и НР посчитали, что они умнее всех и сделали по-своему.
    Недавно я столкнулся с тем фактом, что прописаны обе таблицы, которые отвечают за спидстеп в конфиге, но кловер, почему-то, отбросил только одну. Потом я таки увидел, что название одной таблицы не совпадает с той, которая в конфиге. Хорошо, если таблицы не пересекаются в названиях и можно просто ID подправить. А что если у вас Acer, а таблица называется ACRPRDT и отвечает не только за проц, а за графон, ЖД, обороты куллера и т.д? В этом случаи по имени дропать нельзя, иначе, в противном случаи, вы просто отрубите все эти важные системы.
    Для этого у нас есть дроп по-длине таблицы. Снимаем оригинальные таблицы нажав F4 в меню кловера. После этого идем по пути: EFI/EFI/Clover/ACPI/origin и наблюдаем, примерно, следующую картину:
    Нас инетерсуют все таблицы с названием “SSDT-x”. Открываем их по-очереди и смотрим на боковую панель. Наша задача отбросить все таблицы, где есть название “CPU”.

    Нашли все? Теперь ищем строку “Length” (она выделена мною на скринах). Именно эти значения нам и нужно вписать в конфиг, чтобы кловер понимал что нужно отбросить.
    Удаляем строки TableID и вносим данные, как показано на скрине:
    Примечание
    Таблиц может быть больше, чем 2. Часто это копии, которые создал либо кловер, либо разработчики. Но я советую вносить все, а кловер уже сам определит какие ему отбрасывать, а какие нет.
  11. Следующий важный момент – правка HPET. Если ее не сделать, то Кловеру просто не будет за что “уцепится”. Это можно делать вручную через компилятор ДСДТ.
    Впрочем, Кловер делает это отлично и сам с помощью ACPI/DSDT/Fixes/FixHPET_0010=Yes.
  12. Теперь переходим в раздел KernelAndKextPatches, ищем пункт KernelPm и ставим Yes.KernellPM
  13. *Этот пункт касается только ноутбуков и материнских плат ASUS. Дело в том, что AppleIntelCPUPowerManagement.kext пишет в UEFI (BIOS) по адресу MSR 0xE2, который только для чтения и происходит kernel panic.
    Чтобы избежать такой проблемы, в разделе KernelAndKextPatches ищем пункт AsusAICPUM и ставим Yes (как на скрине в пункте 12).
  14. *Следующее действие актуально только если у вас установлена система 10.9+
    Эпл сделала возможность управление питанием процессора напрямую через ядро системы, что делает спидстеп более агресивным. Для этого нам нужно вписать аргумент в конфиг “-xcpm”.
  15. Находим пункт CPU в конфиге и полностью его удаляем. Эти параметры лучше отдать кловеру, он справится на “ура”.
    (“Но в кцх же сказано!” — да, сказано. А ещё там точно так же сказано, что это необходимо только для процессоров, с которыми клевер не знаком и не может справится!)Итак, все, что касается процессора мы сделали. Теперь перейдем к следующему пункту.[_/su_spoiler]

    Проверка

    Проверка

    Теперь надо проверить наш СпидСтеп. Для этого нам понадобится IORegistryExplorer.

    1. Идем по пути CPU0@0/AppleACPICPU/AppleACPICPUInterruptController/X86PlatformPlugin, как показано на скрине.
    2. Об успешном заводе SpeedStep свидетельствует наличие строк CPUCStates и CPUPStates, а также наличие значений в них.
    3. Теперь открываем нашу папку с FakeSMC и плагинами. Если ваш фейк, который вы используете уже имеет плагины, то они вам не нужны. Но если же ваш фейк не от Рехабмена или у него нету плагинов – советую взять Фейк, который я дал в начале статьи и закинуть в него плагины.
      Примечание
      Для этого нужно зайти в кекст с помощью ПКМ/Показать содержимое пакета/Contents/ и тут создать папку Plugins, а потом туда положить 4 плагина, которые идут в комплекте с кекстом.
      Если вы делали изменения в кексте – нужна перезагрузка, иначе мониторинга не будет.
    4. Открываем HWMonitor наблюдаем за частотами и множителями процессора.
      Если они изменяются, как на скринах ниже, – это уже второе подтверждение верной работы СпидСтепа.

      Примечание
      Последние тесты показали, что для завода TurboBoost генерация С-стейтов обязательна.
    5. Последний тест, который я бы советовал провести – GeekBench. Вы просто будете знать сколько очков получит ваш процессор. Ну или же можете сделать сравнительные тесты своего процессора с разными СМБиосами, а потом сделать соответственные выводы.[_/su_spoiler]

Чипсет

Чипсет

От этого пункта спидстеп зависит напрямую. Узнать модель можно на сайте материнской платы, ноутбука или утилитой DPCIManagerЕсли чипсет нативный, то ничего предпринимать не придется. А вот если нет – тогда нужно будет его заводить.

Примечание
Зачастую, в ноутбуках с процессорами семейства Sandy/Ivy Bridge, Haswell+ стоят нативные чипсеты, которые не требуют завода, но это не значит, что если у вас такой лэптоп, то этот пункт можно пропускать. В противном случаи вы можете оказаться с ненативным чипсетом и спидстепа вам не видать,  как своих ушей.
В десктопах чаще встречается обратная ситуация.

С нативных чипсетов: Z77/Z87, HM75/76/77. Остальные нужно проверять!

  1. Открываем Консоль и в поиске пишем: AppleLPC.
    Если видим следующую картину, с надписью, что неизвестный чип был зарегистрирован – сразу переходим к Х пункту.AppleLPC
  2. Если после поиска вы получаете пустую страницу – скорее всего у вас ненативный чипсет.
    Хотя иногда стоит перезагрузить компьютер и попробовать осуществить поиск заново. И если после этого у вас пустая страница – смотрим следующий пункт.NoAppleLPC
    Примечание
    “Бывает, что кекст сам выгружается из памяти за ненадобностью, хотя чипсет поддерживаемый” (из книги Клевер Цвета Хаки).
    В этом случае стоит убедится наверняка, по-этому смотрим следующий пункт.
  3. Нам нужно проверить нативность чипсета. Для этого открываем DPCIManager и переходим во вкладку PCI List. Я выделил строку с чипсетом. У вас может быть другой, по-этому ищите более короткий Device Name, со словами Chipset LPC Controller.DPCI Manager
    Нас интересуют цифры из второй колонки Device. Это и есть ID нашего чипсета, по которому мы будем проверять его нативность.
    В данном случаи мы имеем 1E49.
  4. Идем по пути /System/Library/Extensions/AppleLPC.kext. 
  5. ПКМ по кексту и выбираем: Показать содержимое пакета.
  6. Переходим в папку Contents и Открываем info.plist.
  7. Нажимаем Cmd+F (у меня cmd стоит на alt, а option на win. Так более нативно по расположению клавиш. И у некоторых юсбшек такое встречается по-умолчанию) и попадаем в меню поиска.
    AppleLPC search
  8. Вбиваем наш ID и жмем Next или Enter. Если программа находит совпадение – чипсет нативный и вы можете сразу переходить к пункту 10.
  9. Если же совпадений нету, как в моем случаи – заходим в наш config.plist. Ищем вкладку ACPI/DSDT/Fixes/FakeLPC_0020 и ставим ему Yes.
  10. Сохраняем наш конфиг и перезагружаем компьютер.

Если SpeedStep так и не завелся

Если СпидСтеп так и не завелся…

Бывают случаи, когда кловер не справляется с заводом списдтепа. Причины могут быть разные и мы не будем углубляться.
Но что же делать, если вы проделали столько работы, а спидстеп так и не заработал? Решение есть! Называется ssdrPRGen.sh от Pike. Это скрипт, который выполнит генерацию ССДТ для вашего процессора (ссылку на оригинальный источник дам в конце статьи).

  1. Первым делом нужно отключить все, кроме P-States.

    Можно как удалить все пункты, так и поставить перед ними #. В таком случаи кловер будет их игнорировать.
  2. Открываем терминал и вставляем следующую команду:
    curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh

    С ее помощью мы скачаем скрипт на свой компьютер. Файл появится по пути: *OS-Disk/Библиотека/*Пользователь/ssdtPRGen.sh

  3. Теперь вводим следующие команды по-очереди и вводим свой пароль:
    chmod +x ~/ssdtPRGen.sh
    sudo ~/ssdtPRGen.sh
  4. Скрипт задаст 2 вопроса, на какие мы по-очереди отвечаем “No”. Для этого нужно нажать “n” и Энтер.
  5. Открываем файндер и нажимаем сочетание клавиш: Cmd+Shift+G или “Переход–>Переход к Папке…” и в появившемся окне пишем: ~/Library/ssdtPRGen/
  6. Монтируем наш ЕФИ раздел и копируем файл SSDT.aml по пути: EFI/EFI/CLOVER/ACPI/patched/
    Если у вас уже есть файл с таким именем, то переименуйте его (в  SSDT-1 и т.д.), чтобы наш файл обязательно назывался SSDT.aml
  7. Все. Перезагружаемся и радуемся рабочему спидстепу!

Поздравляю! Вы это сделали!

Надеюсь, что данная статья помогла Вам с Вашей проблемой.
Если есть замечания или пожелания – пишите комментарии!


За основу взяты материалы из КЦХapplelife, ssdtPRGen.sh от Pike R. Alpha и личного опыта.

Автор статьи, оформление – Александр Дубовик (Olderst)

4 комментария to “Заводим SpeedStep. Правильно.

  • Доброго времени суток, помогите с заводим SpeedStep.
    Что на данный момент стоит у меня:
    Процессор Intel i5-3470 3.2 GHz
    Память 8 GB DDR3
    Графика Nvidia GeForce GTX 660ti 2 Mb
    Материнская плата ASRock B75 Pro3
    macOS High Sierra
    iMac (27-inch, Late 2013)
    В интернете я поискал какое у меня ядро, нашел (Ivy Bridge)
    Начал следовать вашей инструкции и тут на самом интересном я понимаю что у меня папка EFI/EFI/Clover/ACPI/origin пустая.
    Значит я через MaciASL сохраняю фалы все которые он мне показывает в эту папку (я вообще в этом не шарю но думаю они должны быть там).
    Все делаю как тут написано, но нечего не происходит, открываю CloverConfigurator а там нет X86PlatformPlugin.
    Могу отчёт скинуть DarwinDumper.
    Задание спасибо, все добра 🙂

    • Их нужно создать. Вы не все делаете правильно. Нужно сделать дампы файлов с помощью загрузчика. Сделайте по-инструкции генерацию стейтов, а дроп, который в конфигу, по-умолчанию работать будет для вашего процессора. Значит нужды файлы в оригин закидать нету.
      Просто сделайте все, как в инструкции и все заработает

      • Спасибо за ответ, мне сказали что у меня все отлично должно работать без танцев с бубном, но есть одно но… у меня не работает выключение, при нажатие выключить у меня перезагружается 🙁

  • Хорошая а главное полезная информация, спасибо за ваш вклад.

Добавить комментарий

%d такие блоггеры, как: