Jump to content

[Guida] Asus M51sn/Pro57s Retail SL with DeepSleep


4 posts in this topic

Recommended Posts

Ciao a tutti,

visto i buoni risultati, i migliori che ho avuto da qualche anno a questa parte, provo a fare una piccola guida sperando possa essere di aiuto a chi ha un portatile come il mio.

 

Il grosso delle modifiche sono state implementate direttamente dentro il file DSDT.

Così facendo ho risolto diversi problemi:

 

KP sul controller PATA

Usb riconosciute senza errore

Cpu riconosciuta

Video senza kext modificati/aggiuntivi

Inject Audio (richiede appleHDA Mod)

PowerButton

Altri piccoli fix e cosmetica varia

 

Il risultato sarà avere Snow Leopard quasi totalmente funzionante:

 

Video QE CI + Uscita VGA (TV e HDMI non testati)

Audio, cuffie, mic interno con riduzione rumore ambientale

Usb

Bluetooth

Webcam, via camtwist ma in bassa risoluzione

Lettore SD. Attenzione, legge solo ed esclusivamente schedine SD!

Touchpad, compreso scroll con 2 dita

Spegnimento e riavvio

Firewire

Cpu Penryn e speedstep (frequenza da 800Mhz a 2500Mhz)

Tastiera, compreso tasti Fn per attivare disattivare Bluetooth/wifi a caldo

Tramite functionFlip inoltre è possibile avere risposta a video alzando o abbassando il volume.

Pcmci-express: funzionante perfettamente

 

Parzialmente funzionante:

Sleep. Il pc va in sleep ma al risveglio bisogna ricaricare il kext audio da terminale col comando "kextload"

Inoltre conviene disattivare prima dello sleep il bluetooth, altrimenti non risveglia.

 

DeepSleep (tramite widget): finalmente anche questo funziona!!! Il risultato migliore l'ho avuto usando il bootloader di asere (allegato al pacchetto)

DeepSleep funziona utilizzando il kext OpenHaltRestart

Anche in questo caso (Fn+F2) spegnere il bluetooth prima di mandare in deepsleep e perdita di audio al risveglio

(lo so è fastidioso ma non trovo ancora buone soluzioni al riguardo)

 

 

 

 

Andiamo per ordine:

Modifica per evitare il KP sul PATA

 

Trascinare il file dsdt.aml sopra iaslme ed editare dsdt.dsl cercando il controller PATA

nel mio caso 0x001F0001

aggiungere il codice seguente (thanks to TheKing)

                OperationRegion (IDET, PCI_Config, 0x40, 0x04) // IDE Timing Register
               Field (IDET, WordAcc, NoLock, Preserve)
               {
                       Offset (0x00),
                   M1, 8,
                       Offset (0x01),
                   M2, 8,
                       Offset (0x02),
                   M3, 8,
                       Offset (0x03),
                   M4, 8
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (0x07, M1)
                   Store (0xE3, M2)
                   Store (Zero, M3)
                   Store (0xC0, M4)
                   Return (Zero)
               }

 

Ricompilare il file dsdt, trascinandolo nuovamente sopra IaslMe, se non restituisce errori allora la modifica è andata a buon fine. Ora il sistema funzionerà con Ioatafamily.kext vanilla.

 

 

Porte USB: ICH8-M

EHCI Ownership bug

 

Con questa modifica le porte usb saranno sempre viste, e si avrà la cam funzionante (via camtwist e solo a bassa risoluzione)

 

Cercare EHC1, EHC2 e aggiungere questo codice ad entrambe:

                OperationRegion (U20P, PCI_Config, Zero, 0x0100)
               Field (U20P, ByteAcc, NoLock, Preserve)
               {
                           Offset (0x04), 
                       ,   1, 
                   MSPE,   1, 
                           Offset (0x06), 
                           Offset (0x10), 
                   MBAS,   32, 
                           Offset (0x54), 
                   PSTA,   2, 
                           Offset (0x55), 
                   PMEE,   1, 
                       ,   6, 
                   PMES,   1,
                           Offset (0x68), // EHCI Ownership Fix
                   OOWS,   32
               }

 

Creare un nuovo Method Pini (per capire dove inserirlo confrontate il mio dsdt. Sarebbe difficile spiegare precisamente dove aggiungerlo)

 

    Method (PINI, 0, NotSerialized) // For PCI0/Wake INI
   {
       Store (One, \_SB.PCI0.EHC1.OOWS)
       Store (One, \_SB.PCI0.EHC2.OOWS)
   }

 

 

Aggiungere la chiamata al PINI in Method (_WAK

 

    Method (_WAK, 1, NotSerialized)
   {
       PINI ()
       // ....... // codice restante
   }

 

 

Aggiungere la chiamata al PINI dentro Method (_INI, dentro Device (PCI0)

 

        Device (PCI0)
       {
           Method (_INI, 0, NotSerialized)
           {
               PINI ()
           }

           // ....... // codice restante
       }

 

Ricompilare per accertarsi che non ci siano errori

Ancora grazie a TheKing

 

Ulteriore modifiche alle porte Usb (rinominate in Uhc1-uhc4/ehc1-ehc2)

...in scrittura

 

 

Modifica per avere scheda Video QE CI attivati Nvidia 9500M GS 512MB

Aggiungere il seguente codice, all'inizio del dsdt, subito dopo il primo METHOD

 

    Method (DTGP, 5, NotSerialized)
   {
       If (LEqual (Arg0, Buffer (0x10)
               {
                   /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
                   /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
               }))
       {
           If (LEqual (Arg1, One))
           {
               If (LEqual (Arg2, Zero))
               {
                   Store (Buffer (One)
                       {
                           0x03
                       }, Arg4)
                   Return (One)
               }

               If (LEqual (Arg2, One))
               {
                   Return (One)
               }
           }
       }

       Store (Buffer (One)
           {
               0x00
           }, Arg4)
       Return (Zero)
   }

 

 

E poi cercare Device (GFX0) e aggiungere il codice seguente (potrebbe chiamarsi diversamente)

 

Device (GFX0)
               {
                   Name (_ADR, Zero)
                   Name (_SUN, One)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x2C)
                           {
                               "@0,AAPL,boot-display", 
                               Buffer (Zero) {}, 
                               "@0,backlight-control", 
                               Buffer (0x04)
                               {
                                   0x01, 0x00, 0x00, 0x00
                               }, 

                               "@0,built-in", 
                               Buffer (Zero) {}, 
                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@0,fboffset", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x03, 0x00
                               }, 

                               "@0,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-A"
                               }, 

                               "@0,use-backlight-blanking", 
                               Buffer (Zero) {}, 
                               "@1,can-hot-plug", 
                               Buffer (Zero) {}, 
                               "@1,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@1,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-B"
                               }, 

                               "AAPL,aux-power-connected", 
                               Buffer (0x04)
                               {
                                   0x01, 0x00, 0x00, 0x00
                               }, 

                               "AAPL,backlight-control", 
                               Buffer (0x04)
                               {
                                   0x01, 0x00, 0x00, 0x00
                               }, 

                               "AAPL00,blackscreen-preferences", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x08
                               }, 

                               "AAPL01,blackscreen-preferences", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x08
                               }, 

                               "NVCAP", 
                               Buffer (0x14)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 
                                   /* 0008 */    0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "NVDA,Features", 
                               Buffer (0x04)
                               {
                                   0xFF, 0x02, 0xA0, 0x00
                               }, 

                               "VRAM,totalsize", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "device_type", 
                               Buffer (0x0C)
                               {
                                   "NVDA,Parent"
                               }, 

                               "model", 
                               Buffer (0x15)
                               {
                                   "GeForce 9500M GS    "
                               }, 

                               "rom-revision", 
                               Buffer (0x0F)
                               {
                                   "60.84.6B.00.16"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }

 

Se avete difficoltà a capire dove e come modificare confrontate col mio dsdt allegato

Nel codice sopra è inserito anche NVCAP. Ho potuto testare solo la VGA con successo.

Nel caso non funzionasse TV/Hdmi sarebbe da provare a modificare con un altro NVCAP

Il valore inserito è stato ricavato estrapolandolo dal bios del mio portatile.

Preciso inoltre che sto testando anche la scheda video via EFI String (inserita dentro com.apple.boot.plist)

Per cui se si opta per la modifica sopra allora andrebbe cancellata l'efistring dal file Com.apple.boot.plist.

Qualora invece si volesse provare ad andare via efistring, allora non occorre la modifica al dsdt sopra esposta.

 

Attualmente L'efistring permette di avere il controllo (virtuale) della luminosità

Nel senso che compare il controllo luminosità in preferenze monitor, ma purtroppo non funziona.

 

Usare invece la modifica al dsdt risulta più comodo qualora si volessero provare NVCAP diversi dal mio

 

 

Inject per scheda audio Alc660VD

Questa procedura evita di caricare HDAEnabler.kext o injector simili, ma costringe comunque a modificare AppleHDA.kext

 

Aggiungere il seguente codice al Device (HDEF) Potrebbe come al solito chiamarsi diversamente nel vostro dsdt.

 

            Device (HDEF)
           {
               Name (_ADR, 0x001B0000)
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x08)
                       {
                           "codec-id", 
                           Buffer (0x04)
                           {
                               0x60, 0x06, 0xEC, 0x10
                           }, 

                           "layout-id", 
                           Buffer (0x04)
                           {
                               0x0C, 0x00, 0x00, 0x00
                           }, 

                           "device-type", 
                           Buffer (0x11)
                           {
                               "Realtek ALC660VD"
                           }, 

                           "PinConfigurations", 
                           Buffer (Zero) {}
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

 

Installare il mio AppleHDA.Kext in Sistem/library/Extensions

 

 

Modifica riguardante la scheda di rete LAN

Puramente estetica in quanto richiede comunque il caricamento del kext, allegato al mio pacchetto

 

Cercare Device (GLAN) e aggiungere il seguente codice:

 

                    Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x10)
                           {
                               "built-in", 
                               Buffer (One)
                               {
                                   0x00
                               }, 

                               "subsystem-id", 
                               Buffer (0x04)
                               {
                                   0xE5, 0x14, 0x00, 0x00
                               }, 

                               "class-code", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x02, 0x00
                               }, 

                               "device-id", 
                               Buffer (0x04)
                               {
                                   0x48, 0x10, 0x00, 0x00
                               }, 

                               "vendor-id", 
                               Buffer (0x04)
                               {
                                   0x69, 0x19, 0x00, 0x00
                               }, 

                               "subsystem-vendor-id", 
                               Buffer (0x04)
                               {
                                   0x43, 0x10, 0x00, 0x00
                               }, 

                               "name", 
                               Buffer (0x09)
                               {
                                   "ethernet"
                               }, 

                               "model", 
                               Buffer (0x21)
                               {
                                   "ATTANSIC L1 Ethernet Gigabit LAN"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }

 

 

Installazione del sistema, via chiavetta USB:

 

Per tale procedura occorre avere, almeno una sola volta, un sistema Osx funzionante sul quale preparare il tutto.

A chiavetta preparata, lo si può fare anche su un pc diverso dal proprio, non occorrerà più avere un sistema OSX di scorta qualora accada qualche pasticcio.

Ovviamente per lavorare su un pc diverso dal proprio occorre aver già generato il file DSDT

 

 

 

 

...Continua

Link to comment
Share on other sites

Installazione

 

Materiale occorrente:

Snow Leopard retail (ma credo si possa provare anche qualche altra versione)

Pacchetto in allegato

Chiavetta Usb

 

Aprire utility disco e posizionarsi sulla chiavetta da preparare

Scegliere Ripristina

 

Montare snow leopard retail e trascinarlo dal desktop su sorgente

Trascinare la chiavetta Usb dal desktop in Destinazione

 

Finito di ripristinare il sistema procediamo con installare il Chameleon sulla chiavetta

 

Apriamo la chiavetta e portiamoci in Extra/Extensions

Se chameleon avesse aggiunto kext cancelliamoli pure. Copiamo il contenuto della mia cartella Extra/Extensions nella chiavetta in Extra/extensions

Saranno pochi file:

Fakesmc

Voodoobattery (per il controllo della batteria del portatile)

VoodooSDHC (permetterà di far funzionare esclusivamente il lettore SD)

OpenHaltRestart (senza questo si perde lo spegnimento del pc dopo lo sleep)

2 kext per tastiera/touchpad

 

Sempre dentro la chiavetta, copiamo in Extra

smbios.plist

com.apple.boot.plist

dsdt.aml

 

Ora bisogna generare il file Extensions.mkext

Per fare questo ci occorre il programma MkextMaker (allegato in Utility)

Apriamo la chiavetta

andiamo in Extra

Prendiamo la cartella Extensions e trasciniamola sopra l'icona di MkextMaker

Se abbiamo proceduto bene dovremmo ritrovarci un nuovo file dentro Chiavetta/Extra chiamato extensions.mkext

 

Perfetto. Il lavoro maggiore è stato fatto.

A questo punto la chiavetta è avviabile e permette l'installazione di snow leopard, ovviamente solo sul nostro portatile.

Caso mai si provasse l'installazione di un altra distribuzione di Snow Leopard tenere in mente che all avvio chameleon carica il file dsdt e il contenuto della cartella Extra/extensione. Per cui se si stesse utilizzando il mio dsdt allora non occorre selezionare nessuna patch in fase di installazione di SL, essendo esse tutte contenute nel dsdt.

 

Quindi riavviamo il pc e facciamo il Boot da chiavetta.

Partirà chameleon che ci darà 5 secondi di tempo per decidere quale sistema avviare, mostrandoci le varie partizioni

dell Hard disk, compreso la chiavetta USB

Scegliamo di partire da chiavetta usb e procediamo con l'installazione

 

Finita l'installazione il sistema si riavvierà ma ovviamente non potremo partire da HD dove abbiamo installato Snow Leopard in quanto manca Chameleon e la cartella Extra con tutto il suo contenuto.

 

Quindi facciamo il boot nuovamente da chiavetta usb.

Ora però, una volta caricato chameleon, spostiamoci con i tasti cursore sulla partizione dove abbiamo installato Snow Leopard.

 

Se tutto è andato bene il sistema partirà regolarmente, con il video già funzionante.

 

Ora dovremo ripetere la procedura che abbiamo fatto all'inizio sulla chiavetta, ma questa volta sull Hard disk dove abbiamo installato Snow Leopard, ossia:

 

Installare Chameleon su HD

Copiare i file in Extra e in Extensions sull HD (come abbiamo fatto prima)

 

Copiare i Kext dal mio pacchetto in System/library/extensions

Riguardano Audio, Lan e speedstep

Finito il lavoro lanciare Kext Utility

 

Bene.

Il sistema è ora (quasi totalmente) funzionante e avviabile.

 

 

 

La guida e sanza dubbio perfezionabile e come posso prevvederò ad aggiornarla, magari con spiegazioni più dettagliate.

 

Aggiornato 05/05/2010

Il pacchetto è scaricabile qui M51sn DSDT Kext

 

 

 

Aggiornamento importante 28/04/2010:

Non ho finito ancora la guida perchè ho dovuto modificare ancora il dsdt (parte usb) per permettere lo sleep-deepsleep e cercare un bootloader che funzionasse bene.

Ne ho provati diversi ma con tutti ho sempre avuto il problema del mancato spegnimento dopo deepsleep

Quello allegato (asere) sembra funzionare egregiamente.

 

Aggiornamento 05/05/2010

A quanto pare mi sono sbagliato. Dopo deppsleep continuo a perdere lo spegnimento del pc, risolvibile solo utilizzando kext utility.

Il problema sembra risolto utilizzando il kext OpenHaltRestart, inserito nel pacchetto aggiornato.

 

Piccola nota riguardante Bootloader e UUID:

Ogni volta che si cambia UUID alla macchina consiglio di usare kext utility che cancellerà e ricreerà il file per lo sleep.

Non facendo questo e provando a mandare il pc in sleep il risultato sarà il mancato riavvio, che personalmente non sono riuscito a risolvere se non installando nuovamente il bootloader.

Va ricordato ancora che cambiando UUID al pc diviene inutilizzabile anche il backup fatto con time Machine

 

...continua

Link to comment
Share on other sites

  • 3 months later...
  • 1 year later...
 Share

×
×
  • Create New...