1- Bu yamayı diğer laptoplarda çalışabilmesi için sadeleştirdim. Konu ingilizce forum sitelerinde çok tartışılmış çözüm önerileri sunulmuş ama bunları uygulamak programcılıkla uğraşmayan sıradan bir kullanıcı için çok zor -Bu verdiğim yama sizin laptop ta da çalışmalı benim çevremde arkadaşların laptoplarına uyguladım sorunsuz çalışdı. Çalışmıyorsa şunları uygulayın
2- MACOS kurarken usb den 10.9.x installer kullandıysanız şunu yapmanızı tavsiye ederim. Windows makinede Bu usb yi takın. İkinci bir usb bellek daha takın fat32 olarak formatlayın . Usb installer içeriğini yani windowsdan görülen fat32 içeriğini bu yeni usb belleğe kopyalayın. Orjinal usb osx installer diskinizi çıkarın bu zarar görmesin bu bellek 250MB dahi olabilir. Makineyi yeni usb bellekten boot ettirin. Sisteminize göre extra ayar yapmanız gerekiyorsa yapın. Boot yaptıracağınız hard disk volume ini seçin. F3 tuşuna basın 15 saniye bekleyin bu işlem size clover da SSDT-1.aml, …..,,,,SSDT-7.aml, SSDT-8.aml oluşturcak F4 tuşuna basarak saklayın oluşan yer bellekte /CLOVER/ACPI/origin/ içerisinde yer alacak.
SSDT-7.aml optimus bilgilerini içeriri SSDT-8.aml ise muhtenelen 2. ekran kartınız olcaktır.
3- SDT-7.aml yi MaciAsl ile aç
4- OPTIMUS kelimesini arat
5- Aşağıdaki gibi bir kod bulmalısın
…………………………
Scope (\_SB.PCI0.PEG0.PEGP)
{
Name (OMPR, 0x02)
Method (NVOP, 4, NotSerialized)
{
Name (_T_0, Zero)
Store ("------- NV OPTIMUS DSM --------", Debug)
If …
………………………….
Bizin hedefimiz bu ifade —> \_SB.PCI0.PEG0.PEGP
6- Biz dosyaya hiç bir şey yapmadık. Tekrar bu dosyayı masaüstüne saklamayı dene hata verecek.
hata ‘syntax error , unexpected PARSEOP_FIELD’
7- hatayı yok edelim. Hatanın olduğu satıra gidelim benim makinede böyle karışık bi kod çıktı.
Scope (\_SB.PCI0.PEG0.PEGP)
{
OperationRegion (NVHM, SystemMemory, NVHA (0x00020400), Field (NVHM, AnyAcc, NoLock, Preserve)
{
Offset (0x100),
NVHO, 32,
RVBS, 32,
Offset (0x400),
RBF1, 262144,
RBF2, 262144,
RBF3, 262144,
RBF4, 262144
})
}
bu kodun düzeltilmiş hali aşağıdaki gibi olmalıdır.
Scope (_SB.PCI0.PEG0.PEGP)
{
OperationRegion (NVHM, SystemMemory, 0x00020400, NVHA)
Field (NVHM, AnyAcc, NoLock, Preserve)
{
Offset (0x100),
NVHO, 32,
RVBS, 32,
Offset (0x400),
RBF1, 262144,
RBF2, 262144,
RBF3, 262144,
RBF4, 262144
}
}
8- bunu sakla recompile et hata vermeyecek
aynı dosyada definitionblock a git
en üstte aşağıdaki gibi kodlar olacak
External (\_SB_.PCI0.PEG0.PEGP._OFF, MethodObj) // 0 Arguments
External (\_SB_.PCI0.PEG0.PEGP._ON_, MethodObj) // 0 Arguments
bu ikisini ve yukarıda düzelttiğim program kodunu kendi DSDT.aml içine yapıştırmalısın
9- DSDT.aml içinde Method (_WAK, 1, Serialized) yi aratıp bul bu kodun hemen üstüne
Method (PINI, 0, NotSerialized)
{
\_SB.PCI0.PEG0.PEGP._OFF()
}
yukarıdaki 3 satır kodu yapıştır
10- Method (_WAK, 1, Serialized) içinde en sonlarda
Return (Package (0x02)
{
Zero,
Zero
})
kodlarını bul. ve en üstüne
PINI ()
WAK (Arg0)
kodlarını yapıştır.
yeni durumda kod bloğun aşağıdaki gibi görülmeli
Method (_WAK, 1, Serialized)
{
…………...
PINI ()
WAK (Arg0)
Return (Package (0x02)
{
Zero,
Zero
})
}
11- dsdt.aml içinde
Scope (_SB.PCI0)
{
Method (_INI, 0, NotSerialized)
kısmına git
ve PINI () yi yapıştır.
yeni durumda kodun şu şekilde olmalı
Scope (_SB.PCI0)
{
Method (_INI, 0, NotSerialized)
{
PINI ()
Store (0x07D0, OSYS)
If (CondRefOf (_OSI, Local0))
{
If (_OSI ("Windows 2001"))
{
Store (0x07D1, OSYS)
}
If (_OSI ("Windows 2001 SP1"))
{
Store (0x07D1, OSYS)
…………………
dsdt.aml yi sakla çık.tekrar makineni bu bellekten başlat . BİRİNCİ EKRAN kartın optimus sistem bilgilerinden gidecek.
avantajların
A- Bataryan buraya ekstra akım yollamayacak ve daha fazla dayanacak.
B- Macos burayı dikkate almayacak gereksiz sistem tanıma algılama ile uğraşmayacak daha kararlı bir sistemin olacak