Jump to content

[Guida] Asus M51sn/Pro57s Retail SL with DeepSleep


  • Please log in to reply
3 replies to this topic

#1
rob3r7o

rob3r7o

    InsanelyMac Protégé

  • Members
  • PipPip
  • 94 posts
  • Gender:Male
  • Location:Cagliari
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

#2
rob3r7o

rob3r7o

    InsanelyMac Protégé

  • Members
  • PipPip
  • 94 posts
  • Gender:Male
  • Location:Cagliari
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

#3
Pippocannelunghe

Pippocannelunghe

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
Ciao!!
Ci sono novità a riguardo? :)

#4
Hunty

Hunty

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 103 posts
Ciao Roberto, potresti postare di nuovo il download? multiupload non va più ed ho formattato da poco e volevo un sistema più snello e più veloce ad avviarsi..





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy