1. Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha Fazla Bilgi.
Uyarıyı kapat
PROFİL MESAJINDAN YARDIM TALEPLERİ, BUNDAN BÖYLE İSTİSNASIZ SİLİNECEKTİR!!

Hackintosh Cihazlarda Güç Yönetimi

'OS X INFO KÜTÜPHANESİ' forumunda montezuma tarafından 29 Ekim 2016 tarihinde açılan konu

Bu Sayfayı Paylaş

  1. Cihazımıza Hackintosh kurulumu yaptıktan sonra sistemimiz için uygun düzenlemeleri yaparken (Bootloader, Kext, SMBIOS vs.) ilk olarak uygulanması gereken şey güç yönetimidir. Bunun için genelde "NullCpuPowerManagement.kext"kullanıyoruz. Ancak "NullCpuPowerManagement.kext" kullanmak Laptop'larda pil ömrü, ısınma ve gürültü sorunlarında gerçekçi bir çözüm sunmuyor.

    Bu rehberde size Sandy Bridge, Ivy Bridge yada Haswell CPU kullanan dizüstü cihazlar için doğal güç yönetiminin nasıl uygulanacağını anlatacağım.

    ssdtPRgen.sh kullanarak SSDT.aml oluşturmak.
    Bunun için aşağıdaki ssdtPRgen.sh betiğini kullanacağız.
    GitHub - Piker-Alpha/ssdtPRGen.sh: Script to generate a SSDT for Power Management
    Yukarıdaki bağlantıda bu betiğin nasıl kurulacağı “Read Me” dosyasında anlatılmıştır. Ancak biz yinede üyelerimiz için paylaşalım;

    Adımlar:
    İlk olarak SSDT.aml oluşturmak için gerekeli betiği Terminal kullanarak sistemize indirelim. Bunun için;
    OS X 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
    Broadwell, Skylake ve daha sonrası güncel sistemleri için ş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 yaptıktan sonra betiği aşağıdaki komut ile çalıştırın:
    Kod:
    ./ssdtPRGen.sh
    Not: Eğer bu betik tarafından desteklenmeyen bir işlemciniz varsa , bu CPU’nun 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
    Yukarıda girdiğimiz kod ile “i7-4710HQ” kullanarak i7-4720HQ için turbo ve turbo olmayan frekanslar geçersiz kıldık ve betiğin sorunsuzca SSDT üretmesi sağladık.

    İşlem sonunda betik bize çıkan sonucu "Extra" klasörüne kopyalamak isteyip istemediğinizi soracak. Burada klavyede “n” tuşuna basın.
    Bundan sonra ssdt.aml içinde aynı soru gelecek. Bunun içinde gelen seçenekte “n” seçin.
    Bu işlemden sonra dosyalar şurada oluşturulacak: ~/Library/ssdtPRgen/SSDT.aml.
    Bundan sonra oluşturulan dosyayı /EFI/Clover/ACPI/patched/ içine kopyalayın.
    Bunu Terminal kodu isterseniz ilk olarak EFI bölüntüsünü mount edin ve aşağıdaki kodu girin:
    Kod:
    cd ~
    cp ~/Library/ssdtPRgen/ssdt.aml /Volumes/EFI/EFI/Clover/ACPI/patched/SSDT.aml
    Hatırlatma; Hibernate ( Hazırda beklet) OS X tarafından desteklenmiyor. Hibernate kapatmak için aşağıdaki kodları girin;
    Kod:
    sudo pmset -a hibernatemode 0
    sudo rm /var/vm/sleepimage
    sudo mkdir /var/vm/sleepimage
    SSDT kurulumundan sonra çalışıp çalışmadığını kontrol etmek için:

    AppleInfo.kext ile:
    1. AppleIntelCPUPowerManagementInfo.kext indirin. ( AppleIntelInfo.kext)
      AppleIntelInfo.kext.zip
    2. Ardından inen kexti desktop'a taşıyın.
    3. Terminal açın ve aşağıdaki kodları sıra ile girin.
      Kod:
      sudo -s
      Kod:
      chown -R 0:0 ~/Desktop/AppleIntelInfo.kext
      Kod:
      chmod -R 755 ~/Desktop/AppleIntelInfo.kext
      Kod:
      kextload ~/Desktop/AppleIntelInfo.kext
      Kod:
      cat /tmp/AppleIntelInfo.dat
    4. Son koddan sonra terminal ekranında şu sonucu göreceksiniz:
      Screen Shot 2016-11-23 at 01.14.15.png
    5. Appleinfo.kext'in çalışmasını durdurmak için şu kodu kullanın:
      Kod:
      kextunload ~/Desktop/AppleIntelInfo.kext
    Not: Sonuçların doğru olduğunu kontrol etmek için "cat /tmp/AppleIntelInfo.dat" bir kaç kez aralıklarla girin.

    Intel Power Gagdet ile:
    1. Aşağıdaki linkten Intel Power Gadget indirin:

      https://software.intel.com/file/613985/download
    2. İnen klasör içinden pkg dosyasını çalıştırıp kurulumunu yapın.
    3. Uygulamalar klasöründen Intel Power Gadget bulun ve çalıştırın.
    4. Aşağıdaki paylaştığım resimdeki gibi CPU'nun CPU güç durumunu değiştirdiğini doğrulayın.
      Screen Shot 2016-11-23 at 01.22.13.png


    Hatırlatma: Eğer Haswell veya Ivy Bridge işlemci kullanıyorsanız IORegistryExplorer programını kullanarak X86PlatformPlugin yüklendiğini doğrulayın. Bunun için IORegistryExplorer açtıktan sonra arama penceresine CPU0 yazın.

    Son Denetim:

    Yukarıda yaptığımız işlemlerin doğru olarak çalıştığından emin olmak için ayarlarımızı kontrol etmemiz gerekiyor.
    • SSDT.aml, EFI/Clover/ACPI/patched içinde olmalı
    • config.plist/KernelAndKextPatches/AsusAICPUPM=true (Haswell öncesi) olarak işaretli olmalı.
    • config.plist/KernelAndKextPatches/KernelPm=true (Haswell+) olarak işaretli olmalı.
    • config.plist/KernelAndKextPatches/KernelLapic=true olarak işaretli olmalı.
    • İşlemciniz ile uygun Sistem Kimliği (SMBIOS) (config.plist/SMBIOS)
    • Rollback olmamış AppleACPIPlatform.kext

    AppleACPIPlatform ve EmbeddedControl

    Not: Sandy Bridge PM için, AppleACPIPlatform.kext rollback yapmak mümkün ancak önermiyoruz. Bu yüzden geri alınmış AppleACPIPlatform.kext’e dahil olan batarya yönetimi paketlerine dikkat edin.
    AppleACPIplatform.kext çalıştığında, 8 bitden büyük olan EC ( Embedded Control ) kayıtlarını manipule eden DSDT metodu çalışmayacaktır. Ve hata verecektir. Bu yüzden bu metotların yamalanması gerekiyor. Uygun yamaları şu adresten bulabilirsiniz:
    GitHub - RehabMan/Laptop-DSDT-Patch: Common DSDT patches for Ivy/Sandy/Haswell laptops for running OS X

    AMD Radeon Kullanıcıları:
    Burada config.plist/ACPI/DropTables içinde MCFG kullanmaları gerekebilir.

    Eski İşlemci Kullananlar:
    • Sandy Bridge’den daha eski CPU’lar GeneratePStates=Y GenerateCStates=Y DropSSDT=Y kullanmalıdır. Bunlar için Custom SSDT hazırlamaya gerek yok. ( Zira bunlar için herhangi bir SSDT aracı yok )
    • DropSSDT=Yes ve 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 yapabilirsekte, en kolay yolu config.plist/ACPI/SSDT/DropOem=true olarak ayarlamak.
    • Güncel bir sisteminiz varsa DropOem=true kullanmayın. Bu sadece Sandy Bridge ve eski sistemler için gereklidir.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Hepsini görmek için tıklayın...
    #1 montezuma, 29 Ekim 2016
    Son düzenleme: 31 Ocak 2018
  2. Güzel anlatım için teşekkürler,

    Anlayamadığım birkaç şey sormak istiyorum;

    Öncelikle bunların çalışması için EFI klasöründen NullCPUPowerManagement.kext i silmemiz gerekiyormu? Bir çok USB kurulum ile a bu geliyor bizde kullanıyoruz tabi.

    2. olarak ana dizinde oluşan ssuddrv.kext i EFI klasörüne kopyalamak gerekiyormu? SSDT yi kopyalıyoruz çünkü.

    3. olarak IORegistryExplorer da X86PlatformPlugin göremiyorum bunun nedeni ne olabilir?

    4. olarak i5 4210u Haswell işlemcim var bu nedenle GeneratePStates=Y GenerateCStates=Y kullanmam gerekiyor mu?

    5. olarak sistemime clover ile hiç smbios kimliği vermedim ve verdiğim zaman sistemim açılmamıştı. Clover bunu otomatik yapıyor diye düşünüyorum yapmasa açılmazdı değilmi? Sorum, ben yinede bütün bunların çalışması için Clover ile SMBios oluşturmalımıyım?

    6. Clover DropTables'da Clover'ın yüklemesi ile gelen 3 satırı i5 4210u Haswell kullandığım için silmem gereklimidir?

    SSDT TableID CPU0Ist
    SSDT TableID CPUpm
    DMAR

    Bu arada Clover SSDT kısmındaki seçeneklerin tamamı boş çünkü ne işe yaradıklarını tam olarak bilmediğim için hiç değiştirmedim


    Kusura bakmayın hayli uzun oldu ama yardımcı olursanız gerçekten çok sevinirim.

    Şimdiden çok çok teşekkür ederim!
     
  3. Buradaki rehberi uyguladıktan sonra NullCPUPowerManagement.kext'e gerek yok.
    Buradaki betik sadece SSDT oluşturur. ssuddrv.kext gibi bir kext oluşmaz.
    Gerek yok.
    Clover bunu otomatik olarak ayarlamaz. SMBIOS sistem ve cihazın uyumlu çalışması için gerekli. Eğer güç yönetimi ve bazı donanımların uymlu çalışmasını istiyorsan donanımına uygun bir SMBIOS kimliği kullanmalısın.
    SSDT oluşturduktan sonra sistemin güç yönetimi çalışıyorsa, silebilir yada silmeyebilirsin.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Hepsini görmek için tıklayın...
  4. Selam,
    bende şöyle bir hata veriyor;
    Kod:
    Error: Unknown processor model ...
    Dogans-MacBook-Air:~ coder$ cd ~
    
    Dogans-MacBook-Air:~ coder$ curl -o ./ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/Beta/ssdtPRGen.sh
    
    % Total % Received % Xferd Average Speed Time Time Time Current
    
    Dload Upload Total Spent Left Speed
    
    100 153k 100 153k 0 0 150k 0 0:00:01 0:00:01 --:--:-- 150k
    
    Dogans-MacBook-Air:~ coder$ chmod +x ./ssdtPRGen.sh
    
    Dogans-MacBook-Air:~ coder$ ./ssdtPRGen.sh -p 'I7-4720HQ' -f 2500 -turbo 2700
    
    ssdtPRGen.sh v0.9 Copyright (c) 2011-2012 by † RevoGirl
    
    v6.6 Copyright (c) 2013 by † Jeroen
    
    v21.5 Copyright (c) 2013-2017 by Pike R. Alpha
    
    -----------------------------------------------------------
    
    Bugs > Issues · Piker-Alpha/ssdtPRGen.sh · GitHub <
    
    System information: Mac OS X 10.12.3 (16D32)
    
    Brandstring: "Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz"
    
    Override value: (-p) processor model, now using: I7-4720HQ!
    
    Override value: (-f) clock frequency, now using: 2500 MHz!
    
    Override value: (-turbo) maximum (turbo) frequency, now using: 2700 MHz!
    
    Error: Unknown processor model ...
    
    Visit http://ark.intel.com to gather the required data:
    
    Processor Number
    
    TDP
    
    Low Frequency Mode (use AppleIntelInfo.kext)
    
    Base Frequency
    
    Max Turbo Frequency
    
    Cores
    
    Threads
    
    Aborting ...
    
    Done.
     
    #4 dgnzcn, 1 Mart 2017
    Moderatör tarafından düzenlendi: 1 Mart 2017
  5. İşlemci tanımlanamamış. Sistem bilgilerini paylaşır mısın?
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Hepsini görmek için tıklayın...
  6. i5-72ooU
    7 nesil kaby lake.
     
  7. Betik Kabylake işlemcileri tanıması lazım. Betiği "-p 'I7-4720HQ' -f 2500 -turbo 2700" komutu ile mi çalıştırıyorsun?
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Hepsini görmek için tıklayın...
  8. evet şöyle: -p 'I7-4720HQ' -f 2500 -turbo 2700

    ama şöyle de denedim yine aynı: -p 'I5-7200U' -f 2500 -turbo 3200
     
  9. Kod girmeden denedin mi? Yani sadece betiği terminale sürükle ve çalıştrmak suretiyle.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Hepsini görmek için tıklayın...
  10. Bahsettiğin şey şu mu; şöyle de denedim :


    cd ~
    curl -o ./ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh

    chmod +x ./ssdtPRGen.sh
    cd ~
    curl -o ./ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/Beta/ssdtPRGen.sh
    chmod +x ./ssdtPRGen.sh
    ./ssdtPRGen.sh

    "Bu komuttan sonra
    ssdt.aml dosyası oluşacak. Bu dosyayı /EFI/Clover/ACPI/patched/ içerisine at" denmiş ama; bende ssdt.dsl dosyası oluşuyor.
     
Yükleniyor...
Yükleniyor...