OpenCore İle Hackintosh Cihazlarda Uyku Problemlerini Düzeltme

kindo

MASTER JEDI
MODERATOR
DENEYİMLİ ÜYE
18 Eki 2020
2,396
875
2,351
baslık-1.png
Hackintosh cihazlarda uyku sorunlarının nasıl çözüleceğini anlamak için öncelikle uyku sorunlarına genellikle nelerin sebep olduğunu anlamak gerekir. Uyku sorununa sebep olan durumların çoğu cihazdan cihaza farklılık gösterebilir. Bu sorunu anlayabilmek için rehberi dikkatlice okuyup sisteminizle karşılaştırmalar yapmanız ve önerilen yöntemleri kendinizce daraltarak uygulayar ilerlemek gerekir.
Rehberi takip edebilmek için hackintosh kurulumu ve belli başlı konularında en azından fikir sahibi olunmalı. İlk kurulumunuzun hemen ardından henüz Mac bir cihaza alışmadan, aşina olmadan en azından bir süre hackintosh deneyimi edinmeden bu rehberi doğrudan uygulamak zor gelebilir. Hackintosh cihazlar için bu rehber ile ilerlemek bir şekilde hackintosh yaptığımız cihazı baştan aşağı elden geçirmeye benzeyecek.

Genel Çerçeve

-Yanlış yönetilen donanımlar (en yaygın olarak PCIe tabanlı donanımlar)

Bunun nedeni, cihazlar bir S3 çağrısı (veya uyanma için S0) aldığında, sürücünün cihazları kapatması ve düşük güç moduna (uyanırken tersi) geçmesi gerektiğidir. Bu tür cihazlar sürücülerle işbirliği yapmadığında sorunlar ortaya çıkar ve bu sorunların ana sebepleri şu donanımlardır:
  • USB Denetleyicileri ve Cihazları
  • GPU'lar
  • Thunderbolt Denetleyicileri ve Aygıtları
  • Ağ kartları (Hem Ethernet hem de Wifi)
  • NVMe Sürücüleri
Doğrudan (veya açıkça) PCI / e ile ilgili olmayan uyku sorunlarına neden olabilecek başkaca durumlarda vardır:
  • CPU Güç Yönetimi
  • Görüntüler
  • NVRAM
  • RTC / Sistem Saatleri
  • IRQ Çakışmaları
  • Ses
  • SMBus
  • TSC
Ve birçok insanın unuttuğu bir şey, çoğu zaman çözümleri bitiren veya yetersiz bırakan durumlar:
  • CPU'lar
    • AVX genellikle iGPU'ları bozar ve genel kararlılığa zarar verir
  • Kötü RAM (Hem hız aşırtma hem de uyumsuz RAM)
    • Kötü / uyumsuz zamanlamalar bile ciddi sorunlara neden olabilir
  • Fabrika GPU Hız Aşırtmaları
    • OEM'ler genellikle özel VBIOS'ları ile bir kartı biraz fazla ileri götürür
    • Genellikle bu kartlar, düşük güçlü bir VBIOS seçmenize izin veren fiziksel bir anahtara sahip olacaktır.
Hazırlıklar Süreci

MacOS’u Hazırlamak:

Çok derine inmeden sistemimizi hazırlamamız gerekir. Önce terminali açıp aşağıdaki kodları sırasıyla çalıştıralım.

Kod:
sudo pmset autopoweroff 0
sudo pmset powernap 0
sudo pmset standby 0
sudo pmset proximitywake 0
Bu terminal komutlatı bizim için 4 şey yapacak:
  1. Otomatik kapatmayı devre dışı bırakır: Bu bir şekilde hazırda bekletme motodudur.
  2. Powerernap'i devre dışı bırakır: Cihazı ağ ve güncellemeler için periyodik olarak uyandırmak için kullanılır. (Ekranı uyandırmadan yapar)
  3. Beklemeyi devre dışı bırakır: Uyku ile hazırda bekletme moduna geçme arasındaki süre olarak kullanılır.
  4. İPhone / Watch'tan uyandırmayı devre dışı bırakır: Özellikle iPhone veya Apple Watch'unuz yaklaştığında makine uyanır.
Config Dosyamızı hazırlamak:

Çok az değişikliğe ihtiyaç duyulsa da önemli olanlar:
  • Misc -> Boot -> HibernateMode -> None
    • Bu rehber için S4 olan kara büyüden kaçınacağız
  • NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> boot-args
    • keepsyms=1 - Uyku sırasında bir çekirdek paniği olursa bunu minimuma indirir.
    • swd_panic=1 - Uykuya dalmanın yeniden başlatmaya neden olduğu sorunu önler, bunun yerine bize bir çekirdek panik günlüğü vermelidir.
BİOS’umuzu Hazırlamak:
  • Devre dışı bırakılacaklar (Disable):
    • LAN'da uyandırma (Wake on LAN)
    • Güvenilir Platform Modülü (Trust Platform Module)
      • Windows'ta BitLocker kullanıyorsanız, bunu devre dışı bırakmanın tüm şifreleme anahtarlarınızın kaybolmasına neden olacağını unutmayın. BitLocker kullanıyorsanız, devre dışı bırakın veya uyanma sorunlarının bir nedeni olabileceğini unutmayın.
    • USB'de Uyandırma ( Wake on USB) (Bazı kartlar aslında uyanmak için bunu gerektirebilir, ama çoğu bununla rastgele uyandırma çağrısı alır)
  • Etkinleştirilecekler (Enable):
    • Bluetooth ile Uyandırma (Klavye gibi uyanmak için bir Bluetooth cihazı kullanıyorsanız, aksi takdirde devre dışı bırakabilirsiniz)

Buraya kadar olan işlemlerle genel olarak bir hackintosh cihazda uyku durumunu düzenleyen ayarları hem Macos ortamında hem Bios için hem Config dosyamızda yaptık. Düzgün çalışan bir hackintosh cihazda bu yukarıdaki yöntemlerle cihazın uykuya dalması ve uyanması aktif olarak çalışıyor olması gerekir. Aksi durumda uykuya sebep olan nedenleri bulup ortadan kaldırmak için aşağıdaki adımları sırasıyla kendi cihazımızda kontrol edip sorunluysa düzelterek ilerlemememiz gerekir. Sorun devam ediyorsa rehberi uygulamaya devam edin.

Uyku Sorunlarına Yol Açan Ana Sebepler:
  1. USB
  2. GPU'lar
  3. Thunderbolt
  4. Ağ Kartları
  5. NVMe
  6. CPU Güç Yönetimi

USB Portları Düzeltme

Bu durum, Hackintosh sistemlerde uyku problemlerinin 1 numaralı nedenidir. Çünkü Apple'ın sürücüleri bağlantı noktalarını tahmin etmede oldukça kötüdür ve bağlantı noktası sınırı yamaları, kararsızlık yaratma gibi kötü bir etkiye sahiptir.
Bu rehber, yalnızca eşlemeden başka bazı düzeltmeleri de içerir:

I. USB Gücünün Sabitlenmesi
II. Kapatma / Yeniden Başlatma İşlemini Düzeltme
III. GPRW / UPRW / LANC Anında Uyandırma Yaması
IV. Klavye Uyandırma Sorunları

I. USB Gücünün Sabitlenmesi

Skylake ve daha yeni SMBIOS ile Apple artık IOUSBHostFamily üzerinden USB güç ayarları sağlamıyor; bu, gerçek Mac'lerin yaptığı aynı yöntemi benimsememiz ve bir USBX cihazı ile macOS sağlamamız gerektiği anlamına geliyor. Bu, tüm USB bağlantı noktalarınız için hem uyanma hem de uyku gücü değerlerini ayarlar ve birçok yüksek güçlü aygıtın düzeltilmesine yardımcı olabilir:
  • Mikrofonlar
  • DAC'ler
  • Web kameraları
  • Bluetooth Donanım Kilidi
Aşağıdaki SMBIOS için USBX gerekir:
  • iMac17, x ve daha yeni
  • MacPro7,1 ve daha yeni
  • iMacPro1,1 ve daha yeni
  • Macmini8,1 ve daha yeni
  • MacBook9, x ve daha yeni
  • MacBookAir8, x ve daha yeni
  • MacBookPro13, x ve daha yeni
Bu konudaa iin güzel tarafı USB Gücünün Sabitlenmesi için önceden derlenmiş bir dosya işimizi gayet kolaylaştırıyor. OSXİNFO imajı ile zaten hazır gelen SSDT-USBX.aml bu işi zaten yapıyor.

II. Kapatma / Yeniden Başlatma Sorununu Düzeltme
Hackintosh ile karşılaşabileceğiniz garip bir tuhaflık ise, kapatmak istediğimizde bilgisayarımızın kendini yeniden başlatabilmesidir. Bunun nedeni, denetleyiciyi kapatan eksik bir S5 çağrısıdır. Elbette Windows ve Linux, bu sorunu aşmak için donanım düzeltmesi uygular, ancak macOS'un böyle bir düzeltmesi yoktur, bunun yerine bozuk alanları bulmamız ve ACPI yazılarını düzeltmemiz gerekir. Bu durum diğer işletim sistemlerine zarar vermez.

Eğer cihazınınza Kapat ve Yeniden başlatma sorunu varsa bu düzeltmeleri uygulamanız gerekir.

Bunun için şunlara ihtiyacımız var:
_PRW Düzeltilmesi gereken USB Denetleyiciyi bulmak için , DSDT'nizde arama yapın ve içinde hangi Cihazdan bahsedildiğini görün, genellikle SB.PCI0.XHC. gibi bir şey olacaktır.

ACPI yolu ile FixShutdown-USB-SSDT.dsl dosyasını düzenleyin ve bir .aml dosyasına derleyin. MaciASL ile bunu yapabilirsiniz. (Bknz. DSDT düzenleme rehberi)

III. GPRW / UPRW / LANC Anında Uyandırma Yaması
"Kapanma / Yeniden Başlatma Sorununu Düzeltme" bölümüne benzer bir fikir, uyku sırasında USB veya güç durumlarından biri değişirse macOS anında uyanacaktır. Bunu düzeltmek için GPRW / UPRW / LANC çağrılarını yeni bir SSDT'ye yeniden yönlendirmemiz, aşağıdakileri denemeden önce anında uyanma sorunlarınız olduğunu doğrulamamız gerekir.

Bunu kontrol etmenin en iyi yolu terminalden aşağıdaki komutu çalıştırmaktır;
Kod:
pmset -g log | grep -e "Sleep.*due to" -e "Wake.*due to"
Bu komut ile ekseriyet aşağıdaki gibi bir sonuç alırsınız:
  • Wake [CDNVA] due to GLAN: Using AC
    • Genellikle WakeOnLAN'ın etkinleştirilmesinden kaynaklanır, bu seçeneği önce BIOS'ta devre dışı bırakmayı deneyin
    • Sorun WOL değilse, aşağıdaki yamaları deneyebilirsiniz
  • Wake [CDNVA] due to HDEF: Using AC
    • GLAN sorununa benzer
  • Wake [CDNVA] due to XHC: Using AC
    • Genellikle WakeOnUSB'nin etkinleştirilmesinden kaynaklanır, ilk önce BIOS'ta bu seçeneği devre dışı bırakmayı deneyin
    • GPRW yaması muhtemelen gerekli
  • DarkWake from Normal Sleep [CDNPB] : due to RTC/Maintenance Using AC
    • Genellikle PowerNap'ten kaynaklanır
  • Wake reason: RTC (Alarm)
    • Genellikle sistemi uyandıran bir uygulamadan kaynaklanır, uyumadan önce söz konusu uygulamadan çıkmanız sorunu çözmelidir.
Yukarıdaki işlemle aldığınız sonuç değerlerine göre aşağıdaki önerilen yamaları kullanın. Bu yamaları aynı anda kullanmayın.

SSDTACPI YamasıAçıklama
SSDT-GPRWGPRW to XPRW PatchEğer varsa ACPI kısmında bunu kullanın Method (GPRW, 2)
SSDT-UPRWUPRW to XPRW PatchEğer varsa ACPI kısmında bunu kullanın Method (UPRW, 2)
SSDT-LANCLANC to XPRW PatchEğer varsa ACPI kısmında bunu kullanın Device (LANC)

IV. Klavye Uyandırma Sorunları
Klavye uyandırma sorunlarıyla ilgili Intel'in 100 serisi yonga setlerinde ve daha yenileriyle ilgili tuhaf bir hata, bazen macOS'un monitörü çalıştırmak için ikinci bir tuşa basma veya başka bir uyandırma olayı gerektirmesidir. Bazılarının uyanmak için bir tuşa + güç düğmesi basma gerektirmesidir. Bu gibi bir sorununuz varsa düzeltmek için şunlardan birine ihtiyacınız var:
  • acpi-wake-type USB Denetleyicisine Ayarlayın. (Önerilen)
  • Sahte bir ACPI Cihazı oluşturun.
  • Darkwake'i devre dışı bırakın (ideal değildir, çünkü arka plan görevleri de ekranı açacaktır)
Yöntem 1 - Uyanma Türü Özelliği Ekle (Önerilen)
Bu nedenle ideal yöntem, XHCI Denetleyicisini (Bu bizim USB Denetleyicimizdir) bir ACPI uyandırma aygıtı olarak ilan etmektir, çünkü uygun uyandırma çağrılarını yürütmek için macOS için uyumlu EC'lere sahip değiliz.

Başlamak için, USB Denetleyicimizin PciRoot'unu almamız gerekecek. Bunun için gfxutil terminal betiğini kullanacağız. Betiği indirip çalıştırdığınızda aşağıdakine benzer bir sonuç elde edeceksiniz. (USB Denetleyicilerin adları genelde XHC, XHC1 ve XHCI şeklindedir. Bendeki örnekte XHC olarak görünmekte. Sizde bu isimlerden başka biri olabilir.
klavye duzeltme1.png

Usb denetleyici PciRoot yolunu belirledikten sonra config dosyanızı açın ve DevicesProperties kısmına gelip USB denetleyici kök yolu ile bir giriş ekleyin. Eklediğiniz PciRoot girişine bir alt giriş daha ekleyin ve aşağıdaki isim ve değeri belirleyin.

acpi-wake-type | Data | <01>
klavye2.png

Yöntem 2 - Sahte bir ACPI Cihazı Oluşturun
Bu yöntem, GPE ile ilişkilendirilecek sahte bir ACPI Cihazı oluşturur, ardından özelliğini acpi-wake-type USBWakeFixup.kext ile ekler.
Aslında kurulumu oldukça kolaydır, aşağıdakilere ihtiyacınız olacak:
Sisteminize özel SSDT-USBW oluşturmak için, USB denetleyicinizin ACPI yoluna ihtiyacınız olacak. Yukarıdaki gfxutil örneğine bakarsak, ACPI yolumuzu da listelediğini görebiliriz:
  • /PC0@0/XHCI@14 -> \_SB.PC0.XHCI
Şimdi bunu SSDT'mize aktarabiliriz:

Yukarıdaki bağlantıdan edindiğimiz SSDT-USBW.dsl dosyasını MaciASL ile yeni bir dosyaya aktarıp ACPI yolunu bizim donanımızdan çıkan sonuca göre belirleyip .aml olarak kaydediyoruz.
acpiduzeltme.png

Bu işlemi yaptık ve .aml dosyamızı derledik. Şimdi bu .aml dosyasını OC / ACPI içerisine atıp Config dosyamıza işliyoruz. Bu işlem bukadar.

Yöntem 3 - darkwake'i yapılandırma (karanlık uyanma)
En basit şekliyle, karanlık uyanmayı "kısmi uyanma" olarak düşünebilirsiniz. Burada donanımınızın yalnızca bazıları bakım görevleri için uyandırılırken diğerleri uykuda kalır (örn. Ekran). Bunu önemsememizin nedeni, karanlık uyanıklığın uyandırma sürecine klavye basımı gibi ekstra adımlar ekleyebilmesi. Ancak tamamen devre dışı bırakılması, hackintoshumuzun rastgele uyanmasına neden olabilir. Bu yüzden sabit olarak, ideal bir değer bulmak için aşağıdaki tabloyu gözden geçirmeliyiz.

Şimdi IOPMrootDomain'in kaynak kodunda bir göz atalım. Darkwake ile ilgili bakacağım değer //gDarkWakeFlags etiketi altında bulunuyor.
Kod:
// gDarkWakeFlags
enum {
    kDarkWakeFlagHIDTickleEarly      = 0x01, // hid tickle before gfx suppression
    kDarkWakeFlagHIDTickleLate       = 0x02, // hid tickle after gfx suppression
    kDarkWakeFlagHIDTickleNone       = 0x03, // hid tickle is not posted
    kDarkWakeFlagHIDTickleMask       = 0x03,
    kDarkWakeFlagAlarmIsDark         = 0x0100,
    kDarkWakeFlagGraphicsPowerState1 = 0x0200,
    kDarkWakeFlagAudioNotSuppressed  = 0x0400
};
Şimdi her bir parçayı gözden geçirelim:

BİTİSİMAÇIKLAMA
0N/ADarkwake'i devre dışı bırakır.
1HID Tickle EarlyKapaktan uyanmaya yardımcı olur, ek olarak uyandırmak için pwr düğmesine basılmasını gerektirebilir.
2HID Tickle LateTek tuşa basıldığında uyanmaya yardımcı olur, ancak otomatik uykuyu devre dışı bırakır.
3HID Tickle NoneHiçbiri ayarlanmamışsa varsayılan darkwake değeri.
3HID Tickle MaskDiğerleriyle eşleştirilmek.
256Alarm Is DarkKeşfedilecek.
512Graphics Power State 1WranglerTickled'ın hazırda bekletme ve RTC'den tamamen uyanmasını sağlar.
1024Audio Not SuppressedUyandıktan sonra sesin kaybolmasına yardımcı olur.

  • HID = İnsan arabirimi aygıtlarının (Klavyeler, fareler, işaret aygıtları, vb.)
Yukarıdaki tabloyu sisteminize uygulamak, hesap makinesini elinize alıp istediğiniz darkwake değerlerini toplayıp ve ardından son değeri önyükleme argümanlarınıza uygulamak kadar basittir.

Bununla birlikte, ne yaptığınızı bilmiyorsanız (muhtemelen bu kılavuzu okumayacak olsanız da), hepsini aynı anda birleştirmek yerine tek tek denemenizi öneririz.

Bu örnek için, deneyip birleştirelim kDarkWakeFlagHIDTickleLate ve kDarkWakeFlagGraphicsPowerState1:
  • 2 = kDarkWakeFlagHIDTickleLate
  • 512 = kDarkWakeFlagAudioNotSuppressed
Topladığımızda nihai değerimiz darkwake=514 olur. Bunu boot argümanlarına eklememiz yeterlidir.

NVRAM
|---Add
|---7C436110-AB2A-4BBB-A880-FE41995C9F82
|---boot-args | Sting | darkwake=514

Aşağıdakiler, halihazırda darkwake kullanan veya onu araştıranlar için, özellikle hangi değerlerin artık çalışmadığını açıklığa kavuşturmak içindir:
  • darkwake=8: Bu, Mavericks'ten beri çekirdekte bulunmuyor
    • Doğru açılış argümanı darkwake=0
  • darkwake=10: Bu, Mavericks'tenberi çekirdekte bulunmuyor
    • Doğru açılış argümanı darkwake=2
Uyku Düzeltmesinde USB sorunlarına uyguladığınız yöntemlerle çözemediğiniz durumlarda ek olarak:
MacOS Catalina (10.15) ve daha yenisine sahip USB haritaları: USB eşlemede bile uykunuzun kesildiğini görebilirsiniz. Olası bir çözüm: IOClass değerini olarak AppleUSBMergeNubolarak yeniden adlandırmaktır AppleUSBHostMergeProperties. Daha fazla bilgi için buraya bakın: Catalina'nın USB IOClass'ındaki değişiklikler

GPU’ları Düzeltme

GPU'larla neyin sorunlara neden olabileceğini bilmek oldukça kolaydır. Bu, macOS'ta desteklenmeyen GPU'lardır. Varsayılan olarak, işletim sisteminde zaten sürücüleri olmayan herhangi bir GPU, VESA sürücüleri olarak bilinen çok temel sürücüleri çalıştıracaktır. Bunlar minimum görüntü çıkışı sağlar, ancak macOS'un bu cihazlarla nasıl düzgün bir şekilde etkileşime gireceğini bilmemesi nedeniyle büyük bir soruna da neden olur. Bunu düzeltmek için, macOS'u genel bir PCIe cihazı (daha iyi idare edebilir, masaüstleri için ideal) olduğunu düşünmesi için kandırmanız veya kartı tamamen kapatmanız gerekir (dizüstü bilgisayarlarda, masaüstü dGPU'ların (harici ekran kartı) kapanma sorunları vardır)

Daha fazla bilgi için buraya bakın:
10.15.4 ve daha yeni sürümlerde iGPU kullanıcıları için özel notlar:
  • AppleGraphicsPowerManagement.kext'te gerçek Mac'lerde Apple'ın kullandığı sayısız hack nedeniyle iGPU uyanması kısmen bozuldu, bunun üstesinden gelmek için muhtemelen igfxonln=1 komutu ile tüm ekranları çevrimiçi olmaya zorlamanız gerekecek . Açıkçası, bu sorunu yaşadığınızdan emin olmak için önce test edin.
  • AAPL, ig-platform-id 07009B3E, masaüstü Coffee Lake (UHD 630) kullanıcıları için başarısız olabilir, 00009B3E bunun yerine deneyebilirsiniz . 0300923E bazen çalıştığı da bilinmektedir.
Diğer iGPU notları:
  • İGPU'lu bazı sistemler (örn. Kaby Lake ve Coffee Lake), daha düşük güç durumlarında sistem kararsızlığına neden olabilir ve bazen NVMe çekirdek paniği olarak ortaya çıkabilir. Çözmek için, forceRenderStandby=0 RC6 Render Standby'ı devre dışı bırakmak için önyükleme argümanlarınıza ekleyebilirsiniz . Daha fazla bilgi için buraya bakın: IGP, NVMe Kernel Panikine neden olur CSTS = 0xffffffff # 1193
  • Bazı Ice Lake dizüstü bilgisayarlar, Cannot allow DC9 without disallowing DC6 geçiş durumlarıyla ilgili sorunlar nedeniyle paniğe neden olabilir . Bunun için geçici bir çözüm olarak , önyükleme argümanlarınızdan birini -noDC9 veya kullanmaktır -nodisplaysleepDC6 komutunu kullanmak gerekir.
AMD dGPU'lu 4k Ekranlar için özel not:

Bazı ekranlar, esas olarak AGDC tercihlerinden dolayı rastgele uyanmayabilir. Düzeltmek için, bunu DeviceProperties içindeki dGPU'nuza uygulayın:
  • CFG,CFG_USE_AGDC | Data | 00
  • GPU'nuzun PciRoot'unu gfxutil ile bulabilirsiniz
  • /path/to/gfxutil -f GFX
amdcpu.png

Thunderbolt'u Düzeltme

Thunderbolt, esas olarak durumun karmaşıklığı nedeniyle hackintosh topluluğunda çok zor bir konudur. Thunderbolt ve uykunun aynı anda çalışmasını istiyorsanız, uygulayabileceğiniz sadece 2 yol var:
Not: Thunderbolt, uyku sorununuz yoksa extra bir şey yapmadan etkinleştirilebilir veya bunun tersi de geçerlidir.

Ağ Kartları (NIC’ler )Düzeltme

Ağ kartlarının yarattığı uyku problemlerini düzeltmek oldukça kolaydır, temel olarak aşağıdaki yöntemleri uygulamak yeterlidir:

  • WakeOnLAN BIOS'ta devre dışı bırakın
    • Çoğu sistemde, bu etkinleştirildiğinde uyku / uyanma sorunu çözülür.
  • Wake for network Access(sistem Tercihleri -> Pil veya Enerji tasarrufu)
    • Bunu kesmek bir çok hackintoshta çözmüş görünüyor.
NVMe'yi düzeltme

NVMe yani Non-Volatile Memory Express, SSD belleklerin yerine tasarlanmış, PCI Express arayüzünü kullanan yüksek hızlı bir depolama teknolojisidir. NVMe sürücüleri söz konusu olduğunda macOS oldukça seçici olabilir ve ayrıca Apple'ın güç yönetimi sürücülerinin yalnızca Apple markalı sürücülerle sınırlı olması sorunu da vardır. Doğal olarak bu cihazlar hackintosh sistemlerde uyku problemlerinde belirleyici bir konumda sorun yaratan etkenlerdir.

Bu soruna ilişkin yapılacak ana şeyler:

NVMe'nin en son aygıt yazılımında olduğundan emin olun (özellikle 970 Evo Plus sürücüler için önemlidir
  • NVMeFix.kext kullanın. Uygun NVMe güç yönetimine izin vermek için. Ve Sorunlu NVMe belleklerden kaçının.
Bunlar:
  • Samsung'un PM981 ve PM991 SSD'leri
  • Mikron'un 2200S
Ancak sisteminizde bu sürücüler varsa, bunları bir SSDT aracılığıyla devre dışı bırakmak en iyisidir. Yukarıda masa üstü harici ekran kartları devre dışı bırakma durumu bunlar için de geçerlidir. Masaüstü dGPU'ları devre dışı bırakma

CPU Güç Yönetimini Düzeltme

İntel İçin:
İşlemci güç yönetimine sahip olduğunuzu doğrulamak için aşağıdaki rehbere bakın. Sisteminizde güç yapılandırması yapılı değilse rehberi uygulayın.

Ayrıca, yanlış frekans vektörlerinin uyanma sorunlarına neden olabileceğini unutmayın, bu nedenle doğru SMBIOS'u kullandığınızı doğrulayın veya mevcut SMBIOS'unuzun frekans vektörlerini CPUFriend ile ayarlayın. Kötü frekans vektörleri yarattıı için one-key-cpufriend gibi araçlardan ve opencore kullanmadığı diğer araçlardan kaçınının. CPUFriend doğru yapılandırıldığında sizin için bu işi zaten yapacaktır.

Uyanırken yaşanan bir çekirdek paniği şunlar olabilir:
Sleep Wake failure in EFI
AMD için :
AMD CPUlar her ne kadar Macos tarafından hiç desteklenmesede opencore ile gelişen kernel yamaları ile bunlar mümkün hale gelebildi. Buna rağmen AMD taraflı çok fazla güç yapılandırma seçeneği olmasada AMDRyzenCPUPowerManagement.kext bu konuda umut vaad eder biraşamaya geldi. Ryzen tabanlı CPU'lara bu yöntemle güç yönetimi eklenebilir. Yükleme ve kullanım, deponun README.md dosyasında açıklanmıştır.

Uyku Sorunlarına Yol Açan Diğer Sebepler:
  1. Ekranlar
  2. NVRAM
  3. RTC
  4. IRQ Çakışmaları
  5. Ses
  6. SMBus
  7. TSC

EKRANLAR
Buradaki görüntüleme sorunları esas olarak dizüstü bilgisayar kapağı tespiti içindir, özellikle:
  • Yanlış yapılmış SSDT-PNLF
  • İşletim sistemi ve aygıt yazılımı kapağı uyandırma
  • Klavye, onu uyandıran kapaktan parlıyor (PS2 tabanlı klavyelerde)
Birincisinin düzeltilmesi oldukça kolaydır: OSXİNFO imajı ile gelen PNLF.aml dosyasının OC / ACPI içerisinde ve config dosyanıza işli olması yeterlidir.

Bununla beraber macOS'un kapak uyanma algılaması biraz bozulabilir ve bunu tamamen devre dışı bırakmanız gerekebilir:
  • sudo pmset lidwake komutunu terminalde çalıştırıp kapak kapatma algılamasını kapatabilirsiniz..
  • lidewake 1 komutu ile yeniden etkinleştirebilirsiniz.
İkincisi biraz daha fazla çalışma gerektirir. Yapacağımız şey, Skylake ve daha yeni tabanlı HP'lerde meydana gelen yarı rastgele anahtar spam'leri, diğer OEM'lerde de ortaya çıksa da etkisiz hale getirmeye çalışmaktır. Bu aynı zamanda klavyenizin PS2 tabanlı olduğunu ve VoodooPS2 çalıştırdığını varsayacaktır.

Bunu düzeltmek için SSDT-HP-FixLidSleep.dsl dosyasını alın ve ACPI yolunu klavyenize uyarlayın ( _CID değerini alın PNP0303). Bu yapıldıktan sonra, hem EFI / OC / ACPI hem de config.plist -> ACPI -> altında işleyin.

HP kullanıcılarının % 99'u için bu, rastgele anahtar spam'ini düzeltir. Bu şekilde düzeltme sapayalamazsanız, aşağıdaki konulara bakın:

NVRAM
Bu yüzden ilk olarak yapmamız gereken şey NVRAM'in çalışıp çalışmadığını kontrol etmek olmalı.
Bu başlık altında anlatılacak olan yöntemler NVRAM uyumu olmayan cihazlar içindir. Bunu unutmayın.
Genel olarak Hackintosh ile NVRAM uyumsuzluğu olan anakartlar X99 be X299 yonga setine sahip anakartlar. B360, B365, H310, H370, Z390 kullanıcılarının SSDT-PMC kullanmaları gerekli ( EFI/OC/ACPI ve config.plist -> ACPI -> Add).
Not: 10. Jenerasyon CPU'lar için SSDT gerekmiyor.

Eğer Clover'dan OpenCore geçiş yaptıysanız ve NVRAM sorunu varsa şu dosyaları sisteminizde varsa silin.
  • /Volumes/EFI/EFI/CLOVER/drivers64UEFI/EmuVariableUefi-64.efi
  • /Volumes/EFI/nvram.plist
  • /etc/rc.clover.lib
  • /etc/rc.boot.d/10.save_and_rotate_boot_log.local
  • /etc/rc.boot.d/20.mount_ESP.local
  • /etc/rc.boot.d/70.disable_sleep_proxy_client.local.disabled
  • /etc/rc.shutdown.d/80.save_nvram_plist.local
Eğer bazı klasörler boşsa bunları da silin:
  • /etc/rc.boot.d
  • /etc/rc.shutdown.d

NVRAM Kontrolü

Terminal açın ve aşağıdaki kodları tek tek girin.
Kod:
sudo -s
sudo nvram -c
sudo nvram myvar=osxinfo
exit
Şimdi sistemi yeniden başlatın ve aşağıdaki komutu girin.
Kod:
nvram -p | grep -i myvar
Eğer bu kodu girdikten sonra osxinfo sonucu gelmiyorsa NVRAM çalışmıyor demektir. Eğer osxinfo sonucu geliyorsa NVRAM çalışıyordur.
Not: nvram -c komutunun çalışması için SIP kapalı olması gerekli. Zira bu komut NVRAM bilgilerini sıfırlar. Alternatif olarak NVRAM sıfırlamayı OC boot menüden de yapabilirsiniz. Ayrıca Config-> Misc -> Security -> AllowNvramReset -> YES olarak ayarlı olması gerektiğini unutmayın.

nvram.plist ile NVRAM Taklit Etmek

NVRAM taklit edebilmek için üç ayar gerekli.

Config içinde:
  • Booter:
    • DisableVariableWrite: NO
  • Misc -> Security:
    • ExposeSensitiveData: 0x3
  • NVRAM:
    • LegacyEnable: YES
    • LegacyOverwrite YES
    • LegacySchema: NVRAM değişkenleri (OpenCore bunları nvram.plist'te bulunan değişkenlerle karşılaştırır)
    • WriteFlash: YES
EFI içinde
  • OpenRuntime.efi driver (uygun uyku, kapatma ve diğer hizmetlerin düzgün çalışması için gereklidir)
Şimdi OpenCore-0 /Utilities/LogoutHook/ içindeki 'LogoutHook.command' dosyayı güvenli bir yere koyun (Kök dizin / Kullanıcı klasörü gibi.
/Users/(kullanıcı ismin/LogoutHook/LogoutHook.command
Şimdi Terminal açın ve aşağıdaki komutla LogoutHook.command betiğini çalıştırılmasını sağlayın.
Kod:
sudo defaults write com.apple.loginwindow LogoutHook /Users/(kullanıcı ismin)/LogoutHook/LogoutHook.command
Bu işlem sonrası artık NVRAM aktif edilmiş olacaktır.

Not: macOS 10.12 ve öncesi sürümlerde nvram komutu sadece -x boot argümanı ile çalışır. Eğer 10.12 ve öncesi bir macOS kuruyorsanız nvram.mojave dosyasının da LogoutHook.command dosyası ile aynı komumda olması gerekli. Zira bu sayede nvram komut yerine bu dosya çalıştırılır ve hata alınmasını engeller.

RTC
Bu esas olarak Intel 300 Serisi anakartlar(Z3xx) için geçerlidir, özellikle 2 sorun vardır:
  • Varsayılan olarak, RTC devre dışı bırakılır (bunun yerine AWAC kullanılır)
  • RTC genellikle macOS ile uyumlu değildir
İlk sorunu çözmek için oldukça basittir, buraya bakın: Awac düzeltmesi

İkincisi için, kapattığınızda veya yeniden başlattığınızda RTC sorunlarınız olduğunu söylemek oldukça kolaydır. Özellikle, "BIOS Safemode'da yeniden başlatıldı" hatasıyla karşılaşacaksınız ve aşağıdakine benzer bir ekranla karşılaşırsınız.

biosrtcuyari.jpg

Bunu düzeltmek için, macos'un bu sorunlara neden olan RTC bölgelerine yazmasını önlememiz gerekir.
Birkaç düzeltme var:
  • DisableRtcChecksum: birincil sağlama toplamına (0x58-0x59) yazmayı önleyin, çoğu anakart ile çalışır
  • UEFI -> ProtoclOverride -> AppleRtcRam + NVRAM -> Add -> rtc-blacklist
    • Bellenim düzeyinde belirli bölgeleri kara listeler, bunun nasıl kurulacağı hakkında daha fazla bilgi için bkz Opencore Klavuzu.pdf
  • RTCMemoryFixup + rtcfx_exclude=
Ek olarak bazı eski anakartlarda yama yapmanız gerekebilir. RTC: Z68 RTC

IRQ çatışmaları
IRQ sorunları genellikle önyükleme sırasında ortaya çıkar, ancak bazıları IRQ çağrılarının uyku ile kırılabileceğini fark edebilir, bu düzeltme oldukça kolaydır:
  • SSDTTime betiğini indirip sisteminize ait SSDT.aml dosyasını düşürün ve yine betik ile bu SSDT.aml dosyanıza Fix Hpet yamasını uygulayın.
SSDTimer ile fix Hpet yaması uygulamak için bağlatıdaki rehber konunun 2. Kısmında anlatılan yöntemleri uygulayın.

SMBus
Smbus'u önemsemenizin ana nedeni, Applesmbus'un güç durumlarında olduğu gibi hem SMBUS hem de PCI cihazlarını düzgün bir şekilde yönetmesine yardımcı olabileceğidir. Sorun şu ki, kext genellikle kendi başına yüklenmeyecek, bu yüzden aslında SSDT-SMBS-MCHC'Yİ oluşturmanız gerekecek.

Nasıl yapılacağı hakkında daha fazla bilgi için buraya bakın: Smbus Desteği İçin Bkz.

TSC
TSC (Zaman Damgası sayacı), donanımın doğru hızda çalıştığından emin olmaktan sorumludur, sorun bazı ürün yazılımı (çoğunlukla HEDT/sunucu ve Asus Dizüstü Bilgisayarlar) tsc'yi sorunlara neden olan tüm çekirdeklere yazmayacaktır.
Bu sorunu çözmek için 3 seçeneğimiz var:

İlk 2'si ile kexti OC / KEXT içerisine ekleyip Config > Kernel > işlenmesi yeterlidir. Üçüncüsü ise bazı özelleştirmelere ihtiyaç duyacak:
  • Kext'i açın (Finder'da Paket İçeriğini Göster, Contents -> Info.plist) ve Info.plist -> ' IOKitPersonalities -> IOPropertyMatch -> IOCPUNumber den başlayarak sahip olduğunuz CPU iş parçacığı sayısına değiştirin 0(i9 7980xe 18 çekirdek, 35toplam 36 iş parçacığı olduğu için olacaktır )
  • Kextin derlenmiş sürümü burada bulunabilir: TSCAdjustReset.kext

tscpngonfig.png



Kaynak:
OpenCore Guide
 
Son düzenleme:

Benzer konular

AD Engelleyici Tespit Edildi

Anlıyoruz, reklamlar can sıkıcı!

Elbette, reklam engelleme yazılımı reklamları engelleme konusunda harika bir iş çıkarsa da, web sitemizin faydalı özelliklerini de engeller. En iyi site deneyimi ve bize destek olmak için lütfen AdBlocker’ınızı devre dışı bırakın.

AD Reklam Engelleyiciyi Devre Dışı Bıraktım    Hayır teşekkürler