OpenCore ile macOS kurulumundan sonra dikkat edilmesi gereken en önemli husus işlemci güç yönetimin aktif edilmesi. Rehberde ilk olarak Haswell ve sonrası ( Ivy Bridge-E) için güç yönetimini ardından da Sandy Bridge, Ivy Bridge ve AMD işlemciler için gerekli adımlar paylaşılmakta. Rehbere başlamadan önce Apple'ın XCPM çekirdeğinin yüklenmiş olduğundan emin olmamız gerekiyor. Bunun için de ilk olarak
IORegistryExplorer indirin ve uygulamayı çalıştırıp
AppleACPICPU araştırın. Bunu bulduğunuzda aşağıdaki gibi iki sonuçla karşılaşırsınız:
Soldaki görüntüden de görebileceğiniz gibi, Apple'ın CPU Güç Yönetiminden sorumlu X86PlatformPlugin registery içinde tanımlı. Eğer sağ resimdeki gibi bir sonuç çıktıysa X86PlatformPlugin yüklenmemiş demektir. Bu noktada aşağıdakileri kontrol edin.
SSDT-PLUG.aml dosyasının hem EFI / OC/ ACPI içinde, hemde Config / ACPI içinde eklenmiş olduğundan emin olun. BU SSDT dosyası işlemcinin ilk thread'ı olarak ayarlıdır ve bu yüklendikten sonra registery içinden (CP00) bunu kontrol edebilirsiniz.
Kod:
plugin-type | Number | 0x1
X99 için hatırlatma:
XCPM, Haswell-E ve Broadwell-E'yi yerel olarak desteklemez. Bu bağlamda CPU kimliğini XCPM'yi destekleyen bir modele taklit etmemiz gerekiyor. Bunun için config dosyanızı OpenCore Configurator ile açıp Kernel -> Emulate içinde şu ayarları girin.
- Haswell-E:
- Kernel -> Emulate:
- Cpuid1Data: C3060300 00000000 00000000 00000000
- Cpuid1Mask: FFFFFFFF 00000000 00000000 00000000
- Broadwell-E:
- Kernel -> Emulate:
- Cpuid1Data: D4060300 00000000 00000000 00000000
- Cpuid1Mask: FFFFFFFF 00000000 00000000 00000000
CPU Friend Kullanmak
Başlamak için birkaç şeye ihtiyacımız olacak:
- X86PlatformPlugin yüklenmiş olması gerekiyor.
- Sandy, Ivy Bridge ve AMD CPU'lar desteklenmemekte.
- CPUFriend
- CPUFriendFriend
- Bu hem süreci basitleştirmeye, hem de daha iyi bir kontrol sağlamaya yardımcı olabilecek bazı ek özelliklere sahiptir.
LFM: Low Frequency Mode
Şimdi indirdiğimiz
CPUFriendFriend içinden CPUFriendFriend.command dosyasını çalıştıralım. Dosyayı çift tıklayıp çalıştırdığımızda bizi aşağıdaki gibi bir ekran karşılayacak.
Ekli dosyayı görüntüle 23804
Bu ekranda LFM değerinizi seçmeniz için bir uyarı ile karşılaşacaksınız. Bu, CPU'nuzun taban değeri veya boşta kalacağı en düşük değerdir. Buradaki değer MacOS'in S3'ten (uyku) S0'a (uyanma) kolayca geçiş yapabilmesi gerektiğinden, bu sistemin uyku ve uyanmasında doğru şekilde çalışmasına büyük ölçüde yardımcı olabilir.
LFM değerinizi belirlemek için şunlardan birini yapabilirsiniz:
- Intel'in ARK site'inden TDP-down Frequency değerine bakabilirsiniz.
- Çoğu CPU'nun listelenen bir değeri olmadığını unutmayın, bu nedenle kendinizi belirlemeniz gerekir.
- Ya da aşağıda önerilen değerleri girebilirsiniz.
| Jenerasyon | LFM Değeri | Açıklama |
|---|
| Broadwell+ Laptop | 08 | 800Mhz'ye eşdeğer |
| Broadwell+ Masaüstü | 0A | 1000Mhz'ye eşdeğer |
| Haswell/Broadwell HEDT/Server(Örnek: X99) | 0D | 1300Mhz'ye eşdeğer |
| Skylake+ HEDT/Server(Örnek. X299) | 0C | 1200Mhz'ye eşdeğer |
- Not: LFM değeri sadece Broadwell ve daha yeni SMBIOS kimliklerinde mevcuttur.
- Not 2: Bu değerler kesin olarak belirlenmemiştir, dolayısıyla her makinenin farklı özellikleri olabilir ve bu nedenle donanımınız için en iyi olanı denemeniz gerekebilir
Durumu daha iyi açıklayabilmek için bir örneklendirme yapalım. 2.9 GHz'lik bir temel saate sahip olan ancak LFM'si olmayan i9 7920x bir işlemcimiz var. Bunun için doğru frekans değerini bulmak için ilk olarak 1.3 GHz'yi (yani 1300Mhz) seçeceğiz ve kararlılığı bulana kadar yukarı / aşağı çekerek denemeler yapacağız.
Not: LFM değerinin basit bir ifadeyle CPU'nun çarpanı olduğunu, bu nedenle bu değerin uygun şekilde ayarlanması gerektiğini unutmayın. Bunu bulmak için aşağıdaki komutu kullanabilirsiniz. Bu kullanmak istediğiniz saat hızını 100'e böler, ardından sonucu onaltılık tabana dönüştürür.
Not: Burada dikkat etmeniz gereken 1.3Ghz için 13 kullandık, 1.3 değil. Siz de bunu kullanırken buna dikkat edin.
EPP: Energy Performance Preference
Ekli dosyayı görüntüle 23843
Bundan sonra gelecek olan seçenekte EPP ayarlamasını yapacağız. Burada İşlemcinin saat hızını belirleyeceğiz. Buradaki düzenleme ile işlemcinin turbo saat hızını ihtiyacımıza uygun olarak ayarlayabiliriz. Örnek olarak 00 olarak bir ayar seçersek işlemcinin maksimum performansta çalışmasını sağlayabilir, FF ile işlemcinin yavaş çalışmasını ancak duruma göre işlemcinin performansını yavaşça artırmasını sağlayabilirsiniz. Buradaki en önemli etmen cihazının işlemci soğutucusunun ne kadar iyi olduğu. Eğer maksimum performans seçerseniz ve iyi bir soğutucunuz yoksa işlemcinin ısınması ve performans düşüklüğü yaşama ihtimaliniz var. Aşağıdaki tablo hangi ayarı seçmeniz gerektiğine yardımcı olacaktır.
| EPP | Hız |
|---|
| 0x00-0x3F | Maksimum Performans |
| 0x40-0x7F | Dengeli Performans |
| 0x80-0xBF | Dengeli Güç |
| 0xC0-0xFF | Maksimum Güç Tasarrufu |
Not: Sadece Skylake sonrası ve daha yeni SMBIOS kimlikleri EPP destekler.
Performans BIAS
Ekli dosyayı görüntüle 23845
Bu son giriş, macOS' e işlemcinizden ne tür bir genel performans istediğinizi belirlemede yardımcı olmak içindir. Genel olarak buradaki ayarları sistem kullanımıza bağlı olarak değiştirebilir ve kendi cihazına en uygun düzenlemeleri bulabilirsiniz. Bütün işlemlerden sonra klasör/ Results içinde gerekli bütün dosyalar oluşturulmuş olacaktır.
Ekli dosyayı görüntüle 23846Ekli dosyayı görüntüle 23847
Results içinde CPUFriendDataProvider.kext ve ssdt_data.aml dosyalarının oluşturulduğunu göreceksiniz. Güç yönetimi için bunlardan birini kullanabilirsiniz. Ancak benim tavsiyem Windows ve Linux ile çakışma yapmaması için kext yöntemini tercih etmeniz (OpenCore ACPI, Windows ve linux sistemlere etki eder).
Not: CPUFriend'den ile uyku /uyanma sorunları yaşarsanız sebebi yanlış frekans vektörlerinden kaynaklıdır. Zira her sistem benzersizdir, bu nedenle kararlı bir yapılandırma elde edene kadar config dosyanızda düzenlemeler yapmanız gerekebilir .
Not 2: Eğer ssdt_data.aml kullanmayı seçerseniz SSDT-PLUG.aml dosyanıza gerek yok. Ancak sadece ssdt_data kullanımı HEDT platform ailesine ait x79, x99 ve x299 sistemlerde hataya neden olabilir. Bu nedenle bu sistemlerde ssdt_data.aml yerine SSDT-PLUG ile CPUFriendDataProvider.kext kullanılması önemli.
Sandy ve Ivy Bridge Sistemler için Güç Yönetimi
Sandy ve Ivy Bridge sahip sistemlerin Apple'ın XCPM'sine bağlanma sorunları var. Bu yüzden bunu aşmak için kendi Güç Yönetim tablomuzu oluşturmamız gerekiyor.
not: Ivy Bridge-E işlemciler Resmi olarak XCPM desteklemekte. Bu bağlamda rehberin ilk konusunu inceleyin.
İhtiyacımız olan:
- CpuPm ve Cpu0Ist tablolarının düşürülmediğinden emin olun
- ssdtPRGen
Ivy Bridge kurulumunda AppleIntelCPUPowerManagement.kext ile ilgili herhangi bir sorunu önlemek için kullanırken CpuPm ve Cpu0Ist tablolarının OpenCore Config içinde kaldırılması gerekiyor. Ancak bu tabloları kaldırmak, Windows'ta turbo kullanımına olumsuz etki yaratmakta. Bu nedenle, bunu çözmek için OEM tablosuna dokunmadan, yalnızca macOS için verileri desteklemek üzere yeni bir tablo eklemeliyiz. Bundan sonra, CPU-PM tablomuzu oluşturmayı bitirdiğimizde, OEM'in CPU SSDT'lerini yeniden eklemek yeterli olacaktır.
İlk olarak ACPI-> Delete sekmesinde aşağıdaki ayarların YES olarak aktif edilmiş olduğundan emin olalım.
| Key | Type | Value |
|---|
| All | Boolean | YES |
| Comment | String | Drop CpuPm |
| Enabled | Boolean | YES |
| OemTableId | Data | 437075506d000000 |
| TableLength | Number | 0 |
| TableSignature | Data | 53534454 |
| Key | Type | Value |
|---|
| All | Boolean | YES |
| Comment | String | Drop Cpu0Ist |
| Enabled | Boolean | YES |
| OemTableId | Data | 4370753049737400 |
| TableLength | Number | 0 |
| TableSignature | Data | 53534454 |
Bundan sonra yukarıda paylaştığım ssdtPRGen çalıştıralım.
Ekli dosyayı görüntüle 23849
Bu işlemden sonra SSDT.aml dosyası /Users/your-name>/Library/ssdtPRGen/ssdt.dsl oluşturulmuş olacaktır. Dosyaya ulaşmak için kolay yol Cmd+Shift+G basın ve gelen klasöre git seçneğinde ~/Library/ssdtPRGen/ girin. Bundan sonra gelen pencere dosyanın oluşturuldu klasör olacaktır.
Ekli dosyayı görüntüle 23851
Burdaki ssdt.aml dosyasının ismini anlaşılır olması için SSDT-PM.aml olarak yeniden adlandırın EFI / ACPI içine koyun. Ayrıca Config dosyanızı açın ve aynı şekilde Config / ACPI / Add içinde bu dosyayı gösterin.
Son olarak daha önce Config / ACPI / Delete içinde YES olarak ayarladığınız ayarları NO olarak ayarlayıp config dosyanızı kaydedin.
| Key | Type | Value |
|---|
| All | Boolean | YES |
| Comment | String | Drop CpuPm |
| Enabled | Boolean | NO |
| OemTableId | Data | 437075506d000000 |
| TableLength | Number | 0 |
| TableSignature | Data | 53534454 |
| Key | Type | Value |
|---|
| All | Boolean | YES |
| Comment | String | Drop Cpu0Ist |
| Enabled | Boolean | NO |
| OemTableId | Data | 4370753049737400 |
| TableLength | Number | 0 |
| TableSignature | Data | 53534454 |
sdtPRgen Olası sorun
SsdtPRgen, OEM'inizin SSDT'si ile herhangi bir uyumsuzluk sorununu gidermeye çalışırken, OEM'inizin _INI veya _DSM gibi bölümlerde belirli aygıtları veya yöntemleri zaten bildirmiş olması nedeniyle, önyükleme sırasında çakışmalar olabilir. Eğer boot sırasında SSDT-PM ile alakalı olarak aşağıdaki gibi bir hata alırsanız bunun anlamı bahsettiğim üzere çakışmadan kaynaklı hatadır.
Kod:
ACPI Error: Method parse/execution failed [\_SB._INI] , AE_ALREADY_EXIST
Bunu çözmek için ssdtPRgen bilgilerini aşağıdaki gibi bir biçime taşımanız gerekli.
Kod:
DefinitionBlock ("ssdt.aml", "SSDT", 1, "APPLE ", "CpuPm", 0x00021500)
{
External (\_PR_.CPU0, DeviceObj) // External Processor definition
External (\_PR_.CPU1, DeviceObj) // External Processor definition
Scope (\_PR_.CPU0) // Processor's scope
{
Name (APLF, Zero)
Name (APSN, 0x04)
Name (APSS, Package (0x20)
{
/* … */
})
Method (ACST, 0, NotSerialized)
{
/* … */
}
/* … */
}
Önemli not:
- Processor object (işlemci nesnesi) External (harici) olarak taşındığından emin olun.
- Bütün metotları Processor'ün (işlemcinin) Scope'na (kapsamına) taşıyın.
AMD Güç Yönetimi
AMD bildiğiniz üzere desteklenmiyor. Ancak Hackintosh adına AMD için geliştirmeler var. AMD için kullanılması gereken kext ise
SMCAMDProcessor. Unutulmaması gereken bu kextin çalışması için VirtualSMC olması ve config / Kernel içnde VirtualSMC'nin hemen altında bu kextin eklenmiş olması gerekliliği.
Kaynak:
OpenCore Guide