High Sierra ile beraber çift ekran kartı olan arkadaşlarda şu sorun ortaya çıkmaya başladı "Window Server Service only ran for 0 seconds" Bu sorunun en temiz çözümü ikinci ekran kartını kapatmak. Bunun nasıl yapılacağını burada anlatmıştım. Bazıları için bu biraz zor olabildiği için RehabMan'ın bulduğu daha basit bir yöntemi sizinle paylaşmak istiyorum. Bu yöntemle bu hata engellenir ama ekran kartı tamamen kapanmadığı için pil ömrünü etkiler. Bu yöntemi başarı ile uyguladıktan sonra ilk yöntem ile ekran kartınızı kapatmanızı öneririm.
Bu yöntem ile ikinci ekran kartının yolunu bulacağız ve yamalayacağız.
ACPI yolunun bulunması
İşlemler:
- Clover ile boot ettikten sonra F4 tuşuna basın ve ACPI dosyalarınızı to ACPI/origin klasörüne çıkartın.
- dosyaları dissassemble edin
- _OFF methodlarının bulunması
- dosyaların incelenip ACPI yolunun bulunması
Öncelikle orjinal DSDT ve SSDT dosyalarınıza ihtiyacımız var. Bunun için buradaki rehberi takip ederek bir klasöre dosyalarınızı çıkartın. Sökerken BÖLÜM 4: ACPI Dosyalarının "refs.txt" İle Sökülmesi kısmını takip edin.
Bütün işlerimi .dsl dosylarına yapacağız. Dsl dosyalarınızı hazırladıktan sonra rehberi takip edin. Asla .aml dosyalarına yama yapmayın. Çoğu zaman hata alırsınız.
Size rehber olması açısından ilk rehberde kullandığım dosyaları kullanacağım. Oradaki dosyaları indirip takip edebilirsiniz.
Şimdi ekran kartının olduğu dosya veya dosyaları bulacağız. Dosyaların olduğu klasöre gidiyoruz ve terminal ile şunu yazıyoruz
Sonuçta şunu bulacaksınız
SSDT-12.dsl
Demek ki ekran kapatma kısmımız bu dosyada.MaciASL ile bu dosyayı açın ve _OFF u arayın.
O methodun içersindeyken durum çubuğuna bakarsanız ikinci ekran kartının adresini göreceksiniz. Bu donanım için bu adres \_SB.PCI0.RP05.PEGP
Eğer MaciASL ile incelerseniz sol üst köşede \_SB.PCI0.RP05.PEGP şeklinde bir klasör simgesi görürsünüz. Teyit etmek için bakarsanız siz de ekran kartının şu şekilde olduğunu görürsünüz
Sonuç olarak ekran kartımızın adresi: _SB.PCI0.RP05.PEGP
Buna uygun SSDT yapamasını yapalım
SSDT yamasının yapılması
orjinal SSDT yaması şu şekilde:
Bizim Ekran kartı adresimiz _SB.PCI0.RP05.PEGP
O yüzden bu yamayı şöyle değiştiriyoruz
Bu yamayı yapmak için MaciASL programını açın File->New i seçin ve yukarıdaki içeriği yapıştırın.Daha sonra File->Save As e tıklayın ve format olarak ACPI Machine Language Binary i seçin. İsim olarak da SSDT-DiscreteSpoof yazarak masaüstüne kaydedin. Daha sonra bu dosyayı EFI/Clover/ACPI/patched/SSDT-DiscreteSpoof.aml adresine kopyalayın. EFI klasörünüz gizli olabilir Clover Configurator veya EFI Mounter ile mount edin.
Clover Configurator ile config dosyanızı açın ve Clover ACPI/Sorted Order kısmının en alt satırına SSDT-DiscreteSpoof.aml ekleyin
Bu yöntem SSDT de bulunan _DSM methodu ile yama yapmaktadır. Eğer doğal dosyalarınızın içinde _DSM methodu varsa bu sorun oluşturabilir. Bu yüzden resimde görüleceği gibi _DSM->XDSM yamasını yapabilirsiniz.
Bu yöntem ile ikinci ekran kartının yolunu bulacağız ve yamalayacağız.
ACPI yolunun bulunması
İşlemler:
- Clover ile boot ettikten sonra F4 tuşuna basın ve ACPI dosyalarınızı to ACPI/origin klasörüne çıkartın.
- dosyaları dissassemble edin
- _OFF methodlarının bulunması
- dosyaların incelenip ACPI yolunun bulunması
Öncelikle orjinal DSDT ve SSDT dosyalarınıza ihtiyacımız var. Bunun için buradaki rehberi takip ederek bir klasöre dosyalarınızı çıkartın. Sökerken BÖLÜM 4: ACPI Dosyalarının "refs.txt" İle Sökülmesi kısmını takip edin.
Bütün işlerimi .dsl dosylarına yapacağız. Dsl dosyalarınızı hazırladıktan sonra rehberi takip edin. Asla .aml dosyalarına yama yapmayın. Çoğu zaman hata alırsınız.
Size rehber olması açısından ilk rehberde kullandığım dosyaları kullanacağım. Oradaki dosyaları indirip takip edebilirsiniz.
Şimdi ekran kartının olduğu dosya veya dosyaları bulacağız. Dosyaların olduğu klasöre gidiyoruz ve terminal ile şunu yazıyoruz
Kod:
grep -l Method.*_OFF *.dsl
SSDT-12.dsl
Demek ki ekran kapatma kısmımız bu dosyada.MaciASL ile bu dosyayı açın ve _OFF u arayın.
PHP:
Method (_OFF, 0, Serialized) // _OFF: Power Off
{
If (LEqual (CTXT, Zero))
{
\_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero)
If (LNotEqual (GPRF, One))
{
Store (VGAR, VGAB)
}
Store (One, CTXT)
}
SGOF ()
}
}
Eğer MaciASL ile incelerseniz sol üst köşede \_SB.PCI0.RP05.PEGP şeklinde bir klasör simgesi görürsünüz. Teyit etmek için bakarsanız siz de ekran kartının şu şekilde olduğunu görürsünüz
Kod:
Scope (\_SB.PCI0.RP05.PEGP)
{
...
Method (_OFF, 0, Serialized) // _OFF: Power Off
{
...
Buna uygun SSDT yapamasını yapalım
SSDT yamasının yapılması
orjinal SSDT yaması şu şekilde:
Kod:
DefinitionBlock ("", "SSDT", 2, "hack", "spoof", 0)
{
Method(_SB.PCI0.PEG0.PEGP._DSM, 4)
{
If (!Arg2) { Return (Buffer() { 0x03 } ) }
Return (Package()
{
"name", Buffer() { "#display" },
"IOName", "#display",
"class-code", Buffer() { 0xFF, 0xFF, 0xFF, 0xFF },
})
}
}
O yüzden bu yamayı şöyle değiştiriyoruz
Kod:
DefinitionBlock ("", "SSDT", 2, "hack", "spoof", 0)
{
Method(_SB.PCI0.RP05.PEGP._DSM, 4)
{
If (!Arg2) { Return (Buffer() { 0x03 } ) }
Return (Package()
{
"name", Buffer() { "#display" },
"IOName", "#display",
"class-code", Buffer() { 0xFF, 0xFF, 0xFF, 0xFF },
})
}
}
Clover Configurator ile config dosyanızı açın ve Clover ACPI/Sorted Order kısmının en alt satırına SSDT-DiscreteSpoof.aml ekleyin
Bu yöntem SSDT de bulunan _DSM methodu ile yama yapmaktadır. Eğer doğal dosyalarınızın içinde _DSM methodu varsa bu sorun oluşturabilir. Bu yüzden resimde görüleceği gibi _DSM->XDSM yamasını yapabilirsiniz.
Ekli dosyalar
-
151.1 KB Görüntüleme: 375
-
202.4 KB Görüntüleme: 292
Moderatörün son düzenlenenleri: