macOS Laptoplar için Güç Yönetimi

Güç yönetimi, bir laptopa macOS kurulurken yapılması gereken önemli şeylerden biridir. Sıcaklık/gürültü ve batarya ömrü sorunları için NullCPUPowerManagement kullanmak iyi bir çözüm olmuyor.

Neyse ki Clover ile, NullCPUPowerManagement'e ihtiyacımız kalmıyor.

Uyku modunu devre dışı bırakmak

Hackintosh'da uyku modunun (diski durdurmak/s4 sleep) desteklenmediğini anlayalım.

O yüzden kapatmalıyız.
Kod:
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage

Güncellemelerden sonra her zaman kontrol edip devre dışı bırakmayı unutmayın.

Uyku modu ile alakalı diğer ayarları da kapatmak gerekli.
Kod:
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0

ssdtPRGen.sh kullanarak özel SSDT.aml yapmak

Not: Eğer aşağıdaki rehberi takip edip yaptıysanız ve Haswell veya daha güncel bir işlemciye sahipseniz, burada sizin yapabileceğiniz bir şey kalmıyor. Rehberdeki plist'lerde CPU PM halihazırda etkin halde. Haswell veya daha güncel sistemlerde, gerekli ayarlamalar Clover(config.plist/ACPI/SSDT/Generate/PluginType=true) tarafından inject olduğu için ssdtPRgen.sh tarafından oluşturulan SSDT.aml'ye ihtiyacımız kalmıyor.

Fakat Sandy/Ivy Bridge için ssdtPRGen.sh scriptini kullanın: Piker-Alpha/ssdtPRGen.sh

Kullanmanız için gerekli adımlar README içerisinde bulunuyor.

Oluşturulan SSDT.aml EFI bölümünde bulundurulmalı. Tam olarak /EFI/Clover/ACPI/patched/SSDT.aml.

Adımlar

İlk olarak SSDT.aml oluşturmak için gerekli betiği Terminal kullanarak sistemimize indirelim. Bunun için;
macOS içinde Terminal uygulamasını açın ve aşağıdaki kodları sıra ile girin:
Kod:
cd ~
curl -o ./ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh
chmod +x ./ssdtPRGen.sh

Güncel sistemler (Broadwell, Skylake ve daha sonrası) şu kodları kullanın.
Kod:
cd ~
curl -o ./ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/Beta/ssdtPRGen.sh
chmod +x ./ssdtPRGen.sh

Bu işlemden sonra betiği şu komut ile çalıştırın:
Kod:
./ssdtPRGen.sh

Bazı Ivy Bridge işlemciler için "-w 2" veya "-w 3" kullanmanız gerekebilir. (Stabildir, beta için "-c 2" veya "-c 3" kullanabilirsiniz).

Not: Eğer bu betik tarafından desteklenmeyen bir işlemciniz varsa, bu işlemcinin bilgilerini sizin girmeniz gerekir.

Örnek olarak i7-4720HQ için kodu şu şekilde girmeniz gerekir:
Kod:
./ssdtPRGen.sh -p 'i7-4710HQ' -f 2600 -turbo 3600

Bu terminal kodu ile i7-4720HQ için “i7-4710HQ” kullanarak turbo ve turbo olmayan frekanslar geçersiz kılınır ve betiğin sorunsuzca SSDT üretmesi sağlanır.

Betiği çalıştırdıktan sonra sonucu /Extra klasörüne kopyalamak isteyip istemediğinizi soracak. Burada klavyede “n” tuşuna basın. Aynı şekilde SSDT.aml için de aynı soru gelecek. Bunun için de “n” seçin.

Bu işlemden sonra dosyalar şurada oluşturulacak: ~/Library/ssdtPRgen/SSDT.aml.

EFI bölümünüzün /Volumes/EFI kısmına mount edildiğini farz ederek, dosyayı EFI'de /EFI/Clover/ACPI/patched/SSDT.aml bölümüne kopyalayalım.
Kod:
cd ~
cp ~/Library/ssdtPRGen/ssdt.aml /Volumes/EFI/EFI/Clover/ACPI/patched/SSDT.aml

PM'yi test etmek

Özel SSDT dosyamızı kurduktan sonra sistemi yeniden başlatıp test etmeliyiz. AppleIntelInfo.kext kullanarak test edin.

AppleIntelInfo.kext'i buradan indirin.

Kext'i sakın /L/E veya /S/L/E'ye kurmayın.

Kext'i ZIP'den çıkarıp yüklenebilecek bir yere kopyalayın:
Kod:
cd ~/Downloads
sudo mkdir /kexts
sudo cp -R AppleIntelInfo.kext /kexts

Şimdi yükleyelim:
Kod:
sudo kextutil /kexts/AppleIntelInfo.kext

Şimdi bilgisayarı, görevleri, benchmark vb. şeyleri değiştirmek için kullanalım.
AppleIntelInfo.kext sonuçlarına bakabilirsiniz:
Kod:
# view with page control
sudo cat /tmp/AppleIntelInfo.dat|more

Veya TextEdit'de yükleyebileceğiniz bir kopyasını yapın:
Kod:
# create copy of it
sudo cp /tmp/AppleIntelInfo.dat AppleIntelInfo.txt
# open in TextEdit
open AppleIntelInfo.txt

İlaveten, Ivy Bridge ve sonrası (Ivy, Haswell, Broadwell, Skylake, KabyLake, vb.), IORegistryExplorer'i çalıştırıp X86PlatformPlugin'in CPU0 node'un altında çalıştığından emin olmalısınız.

Son Denetim:

Yukarıda kurulumu ve testi anlattık. Ancak bu işlemin doğru olarak çalışması için bazı ayarlarımızı kontrol etmemiz gerek. Bunlar;
  • SSDT.aml, EFI/Clover/ACPI/patched içinde olmalı (Sadece Sandy/Ivy Bridge için).
  • config.plist/KernelAndKextPatches/AsusAICPUPM=true (Haswell öncesi) olarak işaretli olmalı.
  • config.plist/KernelAndKextPatches/KernelPm=true (Haswell sonrası) olarak işaretli olmalı.
  • config.plist/KernelAndKextPatches/KernelLapic=true olarak işaretli olmalı.
  • İşlemciniz ile uygun SMBIOS olduğuna dikkat edin (config.plist/SMBIOS).
  • Rollback(Geri alma) olmadığından emin olun: AppleACPIPlatform.kext.
  • NullCPUPowerManagement.kext olmadığından emin olun. (Genellikle bu anlama da gelir: AppleIntelCPUPowerManagement)

AppleACPIPlatform ve EmbeddedControl

Not: Sandy Bridge'de PM için, AppleACPIPlatform.kext rollback yapmak mümkün ancak önermiyoruz. Bu yüzden rollback yapılmış AppleACPIPlatform.kext’e dahil olan batarya yönetimi paketlerine dikkat edin.

Not: Stok AppleACPIPlatform.kext çalıştığında, 8 bitden büyük olan EC (Embedded Control) kayıtlarını emüle eden DSDT metodu çalışmayacaktır ve hata verecektir. Bu yüzden bu metotların yamalanması gerekiyor. Bu kayıtlara erişim DSDT batarya yöntemlerinde yaygındır. Uygun yamaları şu adresten bulabilirsiniz: https://github.com/RehabMan/Laptop-DSDT-Patch

AMD Radeon Kullanıcıları:

Burada, config.plist/ACPI/DropTables içinde MCFG kullanmaları gerekebilir.

Eski İşlemci Kullananlar:

Sandy Bridge’den daha eski işlemciler için özel SSDT.aml yerine config.plist/Generate=true kullanılmalıdır. Buna ek olarak OEM CPU ile ilişkili SSDT'leri droplamanız gerekecek. Bu, genellikle config.plist/ACPI/SSDT/DropOem=true ayarlamak anlamına gelir.

DropOem=true

Eğer eski bir donanımınız varsa OEM CPU ile alakalı SSDT çıkarmanız gerekebilir. Her ne kadar bunu Config.plist/ACPI/DropTables ile yapabilsek de, en kolay yolu config.plist/ACPI/SSDT/DropOem=true olarak ayarlamak.

Eğer Haswell ve sonrası sisteminiz varsa, tüm SSDT'leri tutarsanız sistem neredeyse her zaman daha iyi çalışır. Güncel sistemler bile SSDT'ler yokken boot'da sorun yaşatabilir.

Zorunlu değilseniz DropOem=true kullanmayın. Bu sadece Sandy Bridge ve eski sistemler için gerekli.

Sadece XCPM

Eğer Haswell veya daha güncel bir bilgisayarınız varsa (örn. Haswell, Broadwell, Skylake, KabyLake, vs.), ssdtPRgen.sh gerektirmeyen daha sade bir method kullanabilirsiniz. Güç yönetimi kernel (XCPM)'in içinde olduğundan beri, ssdtPRgen.sh tarafından oluşturulan ihtiyacımız olmayan özel tablolar ile birlikte geliyor. Fakat hala X86PlatformPlugin'i yüklememiz lazım.

Yükleyebilmek için sadece "plugin-type" inject edecek bir SSDT'ye ihtiyacımız var ("plugin-type"=1). SSDT'yi buradan bulabilirsiniz: RehabMan/OS-X-Clover-Laptop-Config (hotpatch/SSDT-XCPM.dsl).

Direkt link: https://raw.githubusercontent.com/RehabMan/OS-X-Clover-Laptop-Config/master/hotpatch/SSDT-XCPM.dsl

İçindekiler gayet sade:
Kod:
// Inject plugin-type=1 on _PR.CPU0
// This is experimental to see how only injecting plugin-type with native CPU PM SSDTs
// works on various platforms.
//
// Results: OK on Haswell+, not so good on Ivy
DefinitionBlock("", "SSDT", 2, "hack", "PluginType", 0)
{
    External(\_PR.CPU0, DeviceObj)
    Method (\_PR.CPU0._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return (Package()
        {
            "plugin-type", 1
        })
    }
}
//EOF

Kullanmak için AML'yi MaciASL içerisinde derlememiz, ardından da EFI/Clover/ACPI/patched'a kopyalamamız lazım.

Örneğin, Terminal'de (Sisteminizde iasl kurulu olduğunu varsayarsak):
Kod:
# download SSDT-XCPM.dsl and compile it as SSDT-XCPM.aml
curl -o ./SSDT-XCPM.dsl https://raw.githubusercontent.com/RehabMan/OS-X-Clover-Laptop-Config/master/hotpatch/SSDT-XCPM.dsl
iasl SSDT-XCPM.dsl
# not valid to use both SSDT.aml and SSDT-XCPM.aml, so remove it
rm /Volumes/EFI/EFI/Clover/ACPI/patched/SSDT.aml
cp SSDT-XCPM.aml /Volumes/EFI/EFI/Clover/ACPI/patched/SSDT-XCPM.aml

Burada da gösterildiği gibi, basitçe config.plist/ACPI/SSDT/Generate/PluginType=true olarak ayarlayabilirsiniz:
1588597237675.png


Test etmek ve onaylamak, ssdtPRgen.sh tarafından oluşturulan SSDT.AML ile aynı.

Skylake/Kaby Lake(ve sonrası) için deneysel seçenek: HWP

Skylake işlemcilerde, Intel SpeedShift (SST/HWP) adında yeni bir güç yönetimi teknolojisi tanıttı.

HWP açıkken, işlemci, pstate yönetimini işletim sistemi yerine kendisi hallediyor. İşlemci kendiliğinden otomatik olarak en yüksek ve en düşük pstate değerine geçiyor.

HWP kullanmak için, HWP aktif edilebilen SMBIOS kullanın. Şu anlık MacBook9,1/MacBookPro 13,X/MacBookPro14,X/MacBookPro15,X destekli. Ayrıca HWP, xcpm_idle'ın kullanılmasına neden olduğundan, xcpm_idle yamasının etkinleştirildiğinden emin olun. RehabMan'in Clover laptop rehberinde sağladığı tüm plist'lerde varsayılan olarak etkindir. Eğer güncel plist'ler yerine eski bir tane kullanıyorsanız, yamayı config.plist/KernelAndKextPatches/KernelToPatch bölümüne kopyalamak zorunda kalabilirsiniz.

X86PlatformPlugin.kext için yamalı bir kaynak enjektörü oluşturarak (veya kext'in kendisini yayarak) diğer SMBIOS'lar için de HWP'yi etkinleştirebilirsiniz. Ama bu başka bir günün konusu.

Not: Öncesinde bahsedildiği gibi hala ssdtPRgen.sh'deki veya SSDT-XCPM.aml'daki SSDT.aml'ye ihtiyacınız var.
 
Son düzenleyen: Moderatör:
Ben hata görmüyorum. Sorunsuz çıkartmış SSDT dosyanı.
Dosya /Users/karakaya/Library/ssdtPRGen/ssdt.aml yolunda.
 
Merhabalar
Dediğiniz konumdan dosyayı buldum ve istenilen konuma attım.
Kext'leri de yükledim ve sistemi yeniden başlattım.
Herhangi bir değişiklik olmadı halen CPU tam performans çalışmaya devam ediyor .
Nerede yanlış yaptığımı bulamadım . Yazınızda her satırı tek tek defalarca okudum gözden kaçırdığım olmasın sizleri yormayım diye ama beceremedim.
Bu işlerin acemisi olarak yaptığım herşeyi foto alıp atıyorum. Yardımlarınızı bekliyorum.
Teşekkür ederim.
Ekran Resmi 2016-11-23 22.52.09.png
Ekran Resmi 2016-11-23 22.52.48.png
Ekran Resmi 2016-11-23 22.56.03.png
Ekran Resmi 2016-11-23 22.56.15.png
Ekran Resmi 2016-11-23 22.57.56.png
Ekran Resmi 2016-11-23 22.59.09.png
Ekran Resmi 2016-11-23 22.59.52.png
 
Dostum merhaba,

Benim senin(sizin) kadar kod bilgim yok ancak yapmaya çalıştığımda son durum olarak şunla karşılaştım. (ekran görüntüsü) bana bu aşamadan sonra ne yapman gerektiğini söyleye bilir misin?
 

Dosya Ekleri

  • Ekran Resmi 2017-02-13 10.49.32.png
    Ekran Resmi 2017-02-13 10.49.32.png
    32,8 KB · Görüntüleme: 76
Dostum merhaba,

Benim senin(sizin) kadar kod bilgim yok ancak yapmaya çalıştığımda son durum olarak şunla karşılaştım. (Ekran görüntüsü) bana bu aşamadan sonra ne yapman gerektiğini söyleyebilir misin?

Selamlar.

cp ~/Library/ssdtPRgen/ssdt.aml /Volumes/EFI/EFI/Clover/ACPI/patched/SSDT.aml

Komutu EFI dosyanızın bulunduğu sabit diskin adının da EFI olduğu varsayılarak yazılmış. Sizde muhtemelen NO NAME adındadır. O yüzden şu komutu deneyin:

cp ~/Library/ssdtPRgen/ssdt.aml /Volumes/NO NAME/EFI/Clover/ACPI/patched/SSDT.aml
 
Son düzenleyen: Moderatör:
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı