Origin klasörünüzün içine gidin refs.txt dosyasını oluşturun ve içine şunları yazın
Kod:
External(MDBG, MethodObj, 1)
External(_GPE.MMTB, MethodObj, 0)
External(_SB.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)
External(_SB.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)
External(_SB.PCI0.LPCB.H_EC.ECMD, MethodObj, 1)
External(_SB.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External(_GPE.VHOV, MethodObj, 3)
External(_SB.PCI0.XHC.RHUB.TPLD, MethodObj, 2)
Aynı klasörde terminal ekranına gidin ve şunu yazın.
Kod:
iasl -da -dl -fe refs.txt DSDT.aml SSDT*.aml
Bir surü dosya oluşacak ama bize şunlar lazım
SSDT.aml
Bu dosya oluşan dosyalardan değil ama güç yönetimi için gereklidir. Bu dosyayı
ssdtPRGen ile oluşturun.
SSDT-0.dsl
[sys] Remove _PSS Placeholders
Dosyayı aml olarak kaydediyoruz.
SSDT-1.aml
Bu .dsl dosyasına yamaya gerek yok. O yüzden origin klasöründeki .aml dosyasını aynen kopyalayın
SSDT-5.aml
Bu .dsl dosyasına yamaya gerek yok. O yüzden origin klasöründeki .aml dosyasını aynen kopyalayın
DSDT.dsl
[gfx0] Cleanup/Fix Errors (SSDT)
[syn] Remove _DSM methods
[igpu] Rename PCI.GFX0 to PCIO.IGPU
[sys] IRQ Fix
Bu aşamaya geldikten sonra artık iş biraz size kalıyor. Olabilecek ihtimaller için şu 3 yamadan
sadece ama sadece birisini uygulayın. Bu yamaları MaciASL nin Patch tuşuna tıkladıktan sonra gelen ekrana yapıştırıp Apply diyorsunuz. Benim tavsiyem buraya kadar geldikten sonraki DSDT.dsl dosyanızın yedeğini alın. Her bir yamayı ayrı uygulayarak 3 farklı DSDT.aml dosyası oluşturun ve her birini deneyin.
YAMA1
Kod:
into method label _REG parent_hid PNP0C09 insert
begin
//added to turn nvidia/radeon off\n
If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))\n
{\n
\_SB.PCI0.PEGR.GFX0._PS3()\n
}\n
end;
YAMA2
Kod:
#EC kodunu siliyoruz
into method label _PS3 parent_label \_SB.PCI0.PEGR.GFX0 code_regex .*TSDS.* remove_matched;
#PS3 methodunu cagiriyoruz
into method label _INI parent_label \_SB.PCI0.PEGR.GFX0 insert
begin
\_SB.PCI0.PEGR.GFX0._PS3()\n
end;
#Sildigimiz EC kodunu yeniden cagiriyoruz.
into method label _REG parent_hid PNP0C09 insert
begin
//added to turn nvidia/radeon off\n
If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))\n
{\n
^^^LPCB.EC.TSDS ()\n
}\n
end;
YAMA3
Kod:
into method label _INI parent_label \_SB.PCI0.PEGR.GFX0 insert
begin
_OFF ()\n
end;
into method label _REG parent_hid PNP0C09 insert
begin
If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))\n
{\n
^^^LPCB.EC.TSDS ()\n
}\n
end;
Sonuç olarak;
EFI/acpi/patched klasöründe olacaklar
DSDT.aml yamalanmış
SSDT.aml ssdtPRGen ile oluşturulmuş
SSDT-0.aml yamalanmış
SSDT-1.aml dokunulmamış
SSDT-5.aml dokunulmamış
config.plist ayarı
SortedOrder kısmına sırayla şunlar yazılacak.
DSDT.aml
SSDT.aml
SSDT-0.aml
SSDT-1.aml
SSDT-5.aml
Sizin config.plist DSDT patches kısmında yaptığım DSDT yamalarının bazıları var. Bu yüzden sorun olursa mesela şu yamaları da Disabled yazan yere tıklayarak kapayabilirsiniz.
- change GFX0 to IGPU
- change PCI0.VID to IGPU #1 (Thinkpad)
- change PCI0.VID to IGPU #2 (Thinkpad)
Ben her bir yamayı denedim. Hata vermeden uygulanıyorlar. Lütfen adım adım yamaları uygulamaya çalışın. Biraz sabrederseniz yapacağınıza eminim. Kolay gelsin.