Il DSDT.aml è un file che all'inizio può spaventare ma una volta capite le sue potenzialità secondo me non si può fare a meno di cercare di sfruttarlo al massimo.
Necessario:

- DSDTSE.app per ottenere, decompilare, editare e ricompilare facilmente il nostro DSDT

- EvOToolsX per vedere i dettagli delle nostre periferiche
- IORegistryExplorer.app per visualizzare il proprio registro IO
- Mac Os X funzionante (da 1.4.1 mi pare)
Oppure potete fare a meno di DSDTSE e EvoToolsX usando IaslMe (aggiornato a Dic.'09) o Iasl per compilare/decompilare il dsdt e lspci v1.1 per vedere le periferiche
Come iniziare:
Aperto DSDTDE cliccate Extract DSDT e vi aprirà un editor di testo con all'interno il DSDT della vostra scheda madre se non avete file dsdt.aml in / o /Extra (dell' hd di boot), altrimenti il dsdt sarà quello che avete in una di queste due cartelle, metterlo in entrambe non può far altro che crearvi problemi di versioni discordanti (se si bootta da chiavetta x es. il dsdt.aml deve essere in / o /Extra della chiavetta)
Con un clic su compile dsdt avrete una nuova finestra con il risultato della compilazione che il 99% delle volte è errata sul dsdt di default della scheda madre.
Per correggere gli errori potete consultare la sezione dsdt fixes di DSDTSE cercando nella lista il vostro
Una volta trovato vi verrà aperta una finestra con la spiegazione di cosa non va e come correggere, eseguite quanto riportato e ricompilate per verificare se funziona.
Per un video basilare su EvO DSDTse eccovi il link:
Trovate le fonti di queste patch nella mia firma.
PER NEOFITI
Questo topic è indirizzato a utenti con una certa dimestichezza nell'editing del DSDT, se volete iniziare a capire meglio di cosa si parla potete provare iniziando da queste guide di base, per neofiti, per concessione dell' EvOSX86 Team, tradotte in Italiano by thefoul:
- Modifica DSDT - 1a parte - Le Basi
- Modifica del DSDT - 2a parte - TM fix
- Modifica del DSDT - 3a parte - aggiunta di codice per le schede video
- Modifica del DSDT - 4a parte - speedstep nativo mediante DSDT
Ed ora grazie al DSDT fornitomi da RASONE eccovi un bell'esempio di lista di modifiche applicabili alla sua scheda madre, se la faccenda interessa cercherò di spiegare meglio in ogni passo da dove vengno i codici che abbiamo inserito, per ora vediamo se gli funziona
EDIT: Ora ho la stessa scheda madre con bios P5KR come di RASONE quindi le aggiunte e i test saranno svolti più in fretta, la maggior parte delle patch funziona su tutte le p5k in teoria quelle sicuramente non funzionanti verranno segnalate.
DSDT_P5KC_R.zip 41.84K
314 downloadsUltimo DSDT.aml senza la parte relativa allo speetdstep (così va con qualsiasi processore)
modifiche DSDT per P5KC Bios Release 0605 P5KR <--ATTENZIONE BIOS COMPATIBILE DI UN ALTRA SCHEDA MADRE
19-Nov-2009
MODIFICHE DI BASE (per tutte le mother board, controllare che i valori siano quelli suggeriti)
ATTENZIONE usare "cerca e sostituisci" su tutto il dsdt con le stringe blu uguali a quanto scritto (e verificate ad ogni passaggio la compilazione)
A. CPU Section è ok, se presenti bisogna eliminare gli alias. Questo per evitare i problemi di avvio sulle schede madri che partono solo con il codice "cpus=1".
PRIMA:
Scope (_PR)
{
Processor (P001, 0x01, 0x00004010, 0x06) {}
Alias (P001, CPU1)
Processor (P002, 0x02, 0x00000000, 0x00) {}
Alias (P002, CPU2)
Processor (P003, 0x03, 0x00000000, 0x00) {}
Alias (P003, CPU3)
Processor (P004, 0x04, 0x00000000, 0x00) {}
Alias (P004, CPU4)
}
DOPO:
Scope (_PR)
{
Processor (CPU1, 0x01, 0x00004010, 0x06) {}
Processor (CPU2, 0x02, 0x00000000, 0x00) {}
Processor (CPU3, 0x03, 0x00000000, 0x00) {}
Processor (CPU4, 0x04, 0x00000000, 0x00) {}
}
B. HPET aggiunto IRQNoFlags. Questo per risolvere problemi di assegnazione degli IRQ di alcune device.
PRIMA:
Device (HPET)
{
Name (_HID, EisaId ("PNP0103"))
Name (ATT3, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFED00000, // Address Base
0x00000400, // Address Length
)
})
Name (A…
DOPO:
Device (HPET)
{
Name (_HID, EisaId ("PNP0103"))
Name (ATT3, ResourceTemplate ()
{
IRQNoFlags () //*<-- AGGIUNTO
{0} //*<-- AGGIUNTO
IRQNoFlags () //*<-- AGGIUNTO
{8} //*<-- AGGIUNTO
Memory32Fixed (ReadWrite,
0xFED00000, // Address Base
0x00000400, // Address Length
)
})
Name (A…
C. RTC e TMR (rinominato in TIMR) invariati, assenti IRQNoFlags, in RTC il valore //Lenght è ok (cmos reset fix). Anche qui la modifica in combinazione con quella precedente risolve dei conflitti di IRQ. Il valore Lenght in RTC deve essere 02 altrimenti ad ogni avvio del PC il bios si resetta.
Device (RTC0)
{
Name (_HID, EisaId ("PNP0B00"))
Name (CRS0, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length DEVE essere 0x02 non 0x04
)
IRQNoFlags () //*<-- NON c'è (meglio)
{8} //*<-- NON c'è (meglio)
})
D. Sostituito (PIC) con (IPIC) e rimosso IRQNoFlags per completare le ottimizzazioni agli IRQ e non avere più conflitti. Questo aumenta le prestazioni SATA.
PRIMA:
Device (IPIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IRQNoFlags () //*<-- RIMOSSO
{2} //*<-- RIMOSSO
})
}
DOPO:
Device (IPIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
}
Attenzione questa parte corregge i warning e remark segnalati dalla compilazione del dsdt originale presenti anche prima delle modifiche. Ogni scheda avrà le sue. Se non sapete come correggerli controllate il menu DSDT fix in DSDTSE o chiedete nel post.
E. Sostituito _T_ con T_ (correzione remarks di compilazione)
F. Sostituito Acquire (MUTE, 0x03E8) con Acquire (MUTE, 0xFFFF)
G. Sostituito Acquire (MUTE, 0x0FFF) con Acquire (MUTE, 0xFFFF)
H. Aggiunto Return (Zero) prima dell'ultima } in VGET , TGET e FGET
PRIMA:
Method (VGET, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Return (^^SIOR.HWV0 ())
}
If (LEqual (Arg0, One))
{
Return (^^SIOR.HWV3 ())
}
If (LEqual (Arg0, 0x02))
{
Return (^^SIOR.HWV5 ())
}
If (LEqual (Arg0, 0x03))
{
Return (^^SIOR.HWV1 ())
}
}
DOPO:
Method (VGET, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Return (^^SIOR.HWV0 ())
}
If (LEqual (Arg0, One))
{
Return (^^SIOR.HWV3 ())
}
If (LEqual (Arg0, 0x02))
{
Return (^^SIOR.HWV5 ())
}
If (LEqual (Arg0, 0x03))
{
Return (^^SIOR.HWV1 ())
}
Return (Zero) //*<-- aggiunto in VGET, FGET e TGET
}
Compilandolo non da più errori e abbiamo paciato HPET, RTC, IPIC e TMR e gli errori base dei DSDT (compilati con il compilatore microsoft anziché Intel).
L'eliminazione degli alias è necessaria per chi è costretto a partire con cpus=1 in com.apple.Boot.plist
Finora abbiamo fatto un po meglio quello che farebbe DSDTPatcher_GUI (alla guida manca una patch (opzionale) per fare tutto quello che fa DSDTPatcher ma prima la testo un po')
--- Nota: Il file DSDT.aml così ottenuto è sufficiente per l'avvio ----
Altre Modifiche, Rifiniture o fix:
1. Bottone accensione
a. Cerca PNP0C0C e sostituisci _HID con _CID nel primo Name
2. Nomi Devices come Mac (OPZIONALE)
a. Sostituito DMAD con DMAC
b. Sostituito RTC0 con RTC
c. Sostituito OMSC con LDRC
d. Sostituito COPR con MATH
e. Sostituito (MCH) con (MCEH)
f. Sostituito CHN0 con PRT0
g. Sostituito CHN1 con PRT1
h. Sostituito P0P2 con PEGP (controllare P0P sch. grafica)
3. Aggiunto metodo DTGP per iniezione device e patch seguenti all'inizio del DSDT dopo la prima {
PRIMA:
DefinitionBlock ("./dsdt.aml", "DSDT", 1, "A0871", "A0871020", 0x00000020)
{
Scope (_PR)
{….
DOPO:
DefinitionBlock ("./dsdt.aml", "DSDT", 1, "A0871", "A0871020", 0x00000020)
{
Method (DTGP, 5, NotSerialized) //*<--DA QUI
{
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)
} //*<--FIN QUI
Scope (_PR)
{
4. LAN0 aggiunto a Device (P0P9) rinominato poi P0P9 in RP06 (Serve aver fatto anche il punto 3)
Device (LAN0)
{
Name (_ADR, Zero)
Name (_SUN, 0x0B)
OperationRegion (GPIO, SystemIO, 0x0800, 0x06)
Field (GPIO, ByteAcc, NoLock, Preserve)
{
GO01, 8,
GO02, 8,
GO03, 8,
GO04, 8,
GO05, 8,
GP9, 1
}
Name (_PRW, Package (0x02)
{
0x09,
0x03
})
Method (EWOL, 1, NotSerialized)
{
If (LEqual (Arg0, One))
{
Or (GP9, One, GP9)
}
Else
{
And (GP9, Zero, GP9)
}
If (LEqual (Arg0, GP9))
{
Return (Zero)
}
Else
{
Return (One)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"built-in",
Buffer (One)
{
0x01
},
"device_type",
Buffer (0x09)
{
"Ethernet"
},
"name",
Buffer (0x1D)
{
"Attansic 1L Ethernet Gigabit"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Inserirlo prima della chiusura, per far riconoscere la scheda di rete (AttansiL1) come interna.
Aggiunto a Scope (\_GPE)
Name (_PRW, Package (0x02)
{
0x09,
0x03
})
PRIMA:
Scope (\_GPE)
{
Method (_L1E, 0, NotSerialized)
{
Notify (\_SB.PCI0.SBRG.ASOC, One)
Sleep (0x03E8)
}
}
Scope (ASOC)
{...
DOPO:
Scope (\_GPE)
{
Name (_PRW, Package (0x02)
{
0x09,
0x03
})
Method (_L1E, 0, NotSerialized)
{
Notify (\_SB.PCI0.SBRG.ASOC, One)
Sleep (0x03E8)
}
}
Scope (ASOC)
{...
5. Sostituito SBRG con LPCB e aggiunto ID mac corretto alla fine del Device (LPCB) (Serve aver fatto anche il punto 3) *Per evitare aumenti di temperaure usare voodoopowermini.kext in S/L/E o ssdt table in dsdt (più avanti nel post o in produzione)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x18, 0x3A, 0x00, 0x00 //*<--ID mac corretto
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
6. a. Sostituito ATA0 con SATA
b. Aggiunto alla fine del Device (SATA) (Serve aver fatto anche il punto 3)
Device (SATA)
{
Name (_ADR, 0x001F0002)
....bla bla
Method (_DSM, 4, NotSerialized) //<--questo alla fine del device
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x81, 0x26, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
} //<--fino a qui
}
Dopodichè visto che era inutilizzata ho cancellato tutto il Device (SAT1) (OPZIONALE)
Device (SAT1) <--Cancellato da qui
{
pappardella
} <--fino a qui (la pappardella è molto lunga)
Device (P0P5)
7. a. USB UHCI Aggiunti ID Mac in ogni porta usb (Serve aver fatto anche il punto 3)
PRIMA:
Device (USB0)
{
Name (_ADR, 0x001D0000)
OperationRegion (BAR0, PCI_Config, 0xC4, One)
Field (BAR0, ByteAcc, NoLock, Preserve)
{
USBW, 2,
Offset (0x01)
}
Method (_S3D, 0, NotSerialized)
{
If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
Method (_PSW, 1, NotSerialized)
{
If (Arg0)
{
Store (0x03, USBW)
}
Else
{
Store (Zero, USBW)
}
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x03, 0x04))
}
}
DOPO:
Device (USB0)
{
Name (_ADR, 0x001D0000)
OperationRegion (BAR0, PCI_Config, 0xC4, One)
Field (BAR0, ByteAcc, NoLock, Preserve)
{
USBW, 2,
Offset (0x01)
}
Method (_S3D, 0, NotSerialized)
{
If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
Method (_PSW, 1, NotSerialized)
{
If (Arg0)
{
Store (0x03, USBW)
}
Else
{
Store (Zero, USBW)
}
}
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x03, 0x04))
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x34, 0x3A, 0x00, 0x00 //*<-- cambia ogni usb
} //*es.: 34 per usb0 35 usb1 ecc.
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
b. Eliminato il device USB con Name (_ADR, 0x001D0003) nel mio caso (USB3)
e vari rferimenti nel dsdt" Notify (\_SB.PCI0.USB3, 0x02) "
sostituito USB0 CON UHC0
sostituito USB1 CON UHC1
sostituito USB2 CON UHC2
sostituito USB4 CON UHC3
sostituito USB5 CON UHC4
sostituito USB6 CON UHC5
sostituito USBE CON EHC1
sostituito EUSB CON EHC2
c. Aggiunti Id Mac a EHC1 (3a3a) e EHC2 (3a3c)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x3a, 0x3A, 0x00, 0x00 //*<-- cambia ogni EHC
} //*es.: 3a3a EHC1 - 3c3a EHC2
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
8 AUDIO INTEGRATO (FUNZIONA SU P5K, P5KC, P5KR E MOBO CON ALC883) con i seguenti kext in /Extra/Extensions
Audio_.kext.zip 12.17K
396 downloadsAggiunto dopo Device (GBEC)
Device (HDEF)
{
Name (_ADR, 0x001B0000)
Name (_PRW, Package (0x02)
{
0x0D,
0x06
})
OperationRegion (HDCS, PCI_Config, 0x54, 0x04)
Field (HDCS, DWordAcc, NoLock, Preserve)
{
, 15,
PMES, 1
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"built-in",
Buffer (One)
{
0x00
},
"layout-id",
Buffer (0x04)
{
0x73, 0x03, 0x00, 0x00
},
"PinConfigurations",
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
} //*<---FINO A QUI INCLUSO
Device (UHC0)
{....
(9) SPEEDSTEP NATIVO ATTENZIONE se mal impostato può danneggiare la CPU, nel dubbio usare voodoopowermonitor.kext EDIT: LINK TOPIC VANILLA SPEEDSTEP IN ITALIANO
Sostituito tutto il primo Scope (_PR) con:
Scope (_PR)
{
Processor (CPU1, 0x01, 0x00000810, 0x06)
{
Name (_PSS, Package (0x0[color="#FF0000"]3[/color]) \\<--- Numero P-State
{
\\ P-State calcolati con P-State Calculator
[color="#FF0000"]Package (0x06) { 1998, 51568, 10, 10, 0x616, 0x616 },
Package (0x06) { 2331, 63571, 10, 10, 0x71A, 0x71A },
Package (0x06) { 2664, 76548, 10, 10, 0x81D, 0x81D }[/color]
\\ con i valori della propria CPU
})
Name (_CST, Package (0x04)
{
0x03,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000000, // Address
,)
},
One,
0x65,
0x03E9
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000814, // Address
,)
},
0x02,
0x03E9,
0x01F4
},
Package (0x04)
{
ResourceTemplate ()
{
Register (SystemIO,
0x08, // Bit Width
0x00, // Bit Offset
0x0000000000000815, // Address
,)
},
0x03,
0x55,
0xFA
}
})
}
Processor (CPU2, 0x02, 0x00000810, 0x06)
{
Alias (^CPU1._PSS, _PSS)
Alias (^CPU1._CST, _CST)
}
Processor (CPU3, 0x03, 0x00000810, 0x06)
{
Alias (^CPU1._PSS, _PSS)
Alias (^CPU1._CST, _CST)
}
Processor (CPU4, 0x04, 0x00000810, 0x06)
{
Alias (^CPU1._PSS, _PSS)
Alias (^CPU1._CST, _CST)
}
}
Il codice va adattato al proprio processore. le parti in rosso vanno modificate con i valori ottenuti da P-State Calculator.
Per usare P-State Calculator bisogna controllare che i valori nelle colonne a sx siano quelli della cpu che verrà usata e nella colonna a dx cambiando il moltiplicatore (Core Multiplier) otterremo i vari p-state. ATTENZIONE che ogni cpu usa diversi valori e anche quantità di p-state, quella nell'esempio usa solo i p-state da 6, 7 e 8 cioè da 2GHz a 2,6 Ghz. Per sapere quanti e quali P-State supporta la vostra cpu potete usare P-State Changer installando il relativo .kext (da togliere una volta fatta la modifica al dsdt).
Nota: il numero 3 rosso va modificato con il numero totale dei p-state impostati.
(10) JMICRON VISIBILI in SYSTEM PROFILER (inutile)
Aggiunto in Device (PRT0), per visualizzare il nome in System Profiler, dopo il Name (_ADR, Zero):
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x08)
{
"JM-Bay 1"
}
},
Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
PRIMA:
Device (PRT0)
{
Name (_ADR, Zero)
Method (_GTM, 0, NotSerialized)
{
ShiftLeft (PSCR, One, Local1)
Or (PMCR, Local1, Local0)
ShiftLeft (PMAE, 0x02, Local3)
ShiftLeft (PM6E, One, Local4)
Or (Local3, Local4, Local3)
Or (PM3E, Local3, Local1)
ShiftLeft (PMPT, 0x04, Local3)
Or (Local1, Local3, Local1)
ShiftLeft (PSAE, 0x02, Local3)
continua....
DOPO:
Device (PRT0)
{
Name (_ADR, Zero)
Method (_DSM, 4, NotSerialized) /<--Aggiunto da qui
{
Store (Package (0x02)
{
"io-device-location",
Buffer (0x08)
{
"JM-Bay 1"
}
},
Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
} /<--fino a qui
Method (_GTM, 0, NotSerialized)
{
ShiftLeft (PSCR, One, Local1)
Or (PMCR, Local1, Local0)
ShiftLeft (PMAE, 0x02, Local3)
ShiftLeft (PM6E, One, Local4)
Or (Local3, Local4, Local3)
Or (PM3E, Local3, Local1)
ShiftLeft (PMPT, 0x04, Local3)
Or (Local1, Local3, Local1)
ShiftLeft (PSAE, 0x02, Local3)
continua....
(11) FIREWIRE PATCH CON HOTPLUG
Risolve firewire viste ma non montate:
Device (P0P1)
{
Name (_ADR, 0x001E0000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0B, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR01)
}
Return (PR01)
}
Device (FRWR) //<- Aggiunto da qui added from here
{
Name (_ADR, 0x00030000)
Name (_GPE, 0x0B) //Cambiato changed: 0x18 in 0x0B (device madre, mother device)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"built-in",
Buffer ( One)
{
Zero
},
"fwports",
Buffer (0x04)
{
0x02, 0x00, 0x00, 0x00
},
"device-id",
Buffer (0x04)
{
0x44, 0x30, 0x00, 0x00 // Needed device ID for VIA VT6306 is [3044] device id della firewire
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
} //<--fino a qui escluso.
Collegando più periferiche o HD in cascata non sempre vengono caricati, a 32bit sembra dare meno problemi. La discussione inizia a pg2. A pg.4 trovate un suggerimento per riuscire a trovare il problema, ma io non so come andare avanti, per ora.
EDIT: Sembra ci siano sviluppi nel post di MasterChief.
EDIT2: Risolto il problema
ORA ABBIAMO FINITO, OTTIMIZZANDO IN ORDINE:
1. Riconoscimento bottone di accessione case
2. Riconoscimento device come quelli apple
3. Aggiunto metodo DTGP per iniettare ID e altre info al posto dei kext o delle efi string
NB: usato dalle patch che seguono quindi obbligatorio se si va avanti
4. Riconoscimento scheda di rete come interna (Time Machine Fix)
5. Riconoscimento LPC rende inutile ogni disabler (Disabler.kext , NullCPUPowr.kext ecc.)
6. Riconoscimento SATA chipset ICH9 o ICH9-R come ESB2 (funziona solo se sono in modalità AHCI)
NB: Sulle schede P5K e P5KC per attivarlo si può flashare il bios con quello della P5KR
7. Riconoscimento nativo USB ed EHCI risolve i problemi di sleep
8. Attivata la scheda audio, funziona tutto (micro riavvio ecc.) con i kext allegati.
Audio_.kext.zip 12.17K
396 downloads9. Attivato lo speedstep nativo, per un uso migliore della CPU con temperature più basse e consumi minori.
10.
11. Riconoscimento Firewire (funziona meglio dopo sleep, problemi a 64bit, meno a 32bit. Vedi discussioni)
Kext inutili dopo le modifiche:
- AppleVIAATA
- NullCPUPower
- Disabler
- AppleIntelPIIXATA
- IOATAFamily
- AppleLPC
- OpenHaltRestart
Opzioni inutili in Chameleon
- Built In Ethernet / Ethernet EFI string
- Tutte le Injections in Options
Giusto per informazione si può evitare l' EFI string della scheda video (non cambia nulla se non che rende più complicate le cose inutilmente metterlo nel dsdt) con un codice DSDT adatto, questo è quello della mia GF 8600GT 256MB:
Device (PEGP)
{
Name (_ADR, 0x00010000)
Device (GFX0) //<--Aggiunto da qui
{
Name (_ADR, Zero)
Name (_SUN, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x18)
{
"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@0,device_type",
Buffer (0x08)
{
"display"
},
"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},
"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@1,device_type",
Buffer (0x08)
{
"display"
},
"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
},
"NVCAP",
Buffer (0x18)
{
/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
/* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
},
"NVPM",
Buffer (0x1C)
{
/* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0018 */ 0x00, 0x00, 0x00, 0x00
},
"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x10
},
"device_type",
Buffer (0x0C)
{
"NVDA,Parent"
},
"model",
Buffer (0x17)
{
"nVidia GeForce 8600 GT"
},
"rom-revision",
Buffer (0x25)
{
"nVidia GeForce 8600 GT OpenGL Engine"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
} //<--- fino a qui
Method (_PRW, 0, NotSerialized)
{...
MODIFICHE AL POST:
18-02-10
Aggiunte guide di the foul.
10/02/10
SIstemate alcune imperfezioni aggiunto nuovo link DSDTSE ultima versione.
18/12/09 01.00
Corrette alcune imperfezioni, aggiornati i link a DSDTSE e le altre applicazioni, migliorata un po la grafica.
08/12/09 08.20
Aggiunti nuovi nomi device Apple, risistemati alcuni esempi e chiarite alcune parti.
Aggiunta iniezione Audio ALC883 da integrare con .kext in /Extra/Extensions
Aggiunta linea Name (_SUN, 0x0B) a (LAN0) su segnalazione di smith@@ (post 102)
02/12/09 19.21
Corretto codice GFX0 grazie alla segnalazione di smith@@, aggiunta traccia iniezione ssdt per abilitare lo SpeedStep nativo.
22/11/09 23.14
Aggiunta patch parziale per far funzionare la firewire integrata (grazie a Master Chief, dkawg, smith@@, iFabio, kpkp e chi ho dimenticato) e segnalate meglio le patch non ancora ottimizzate.
Segnalate meglio le parti opzionali. Corretto codice scheda video.
19/11/09 13.05
Aggiunti avvertimenti su come rinominare le stringhe, onde evitare errori di compilazione su segnalazione di frtommy
18/11/09 01.00
Aggiunto SATA patch (per sfruttare a pieno il controller SATA AHCI ed eliminare i .kext: AppleVIAATA.kext, IOATAFamily.kext, AppleIntelPIIXATA.kext)
17/11/09 22.29
Corretto passaggio HPET gli IRQ vanno aggiunti non tolti (praticamente quello che fa DSDTPatcher_GUI assieme alla patch RTC) su segnalazione di smith@@



Sign In
Create Account











