InfiniteMac OSx86

InfiniteMac OSx86 (http://infinitemac.com/forum.php)
-   Ελλάδα (http://infinitemac.com/forumdisplay.php?f=83)
-   -   The DSDT (.dsl) Thread (http://infinitemac.com/showthread.php?t=5143)

excos 02-18-2010 06:02 PM

Φιλε Dejangs και βεβαια κερδιζεις σε ταχυτητα εαν μπορεις να εχεις ενα αρχειο DSDT.aml κομενο και ραμενο στα μετρα του συστηματο σου διοτι το πρωτο που διαβαζει ο chameleon κατα την εκκινηση του ειναι αυτο το αρχειο.

Για να μπορεις να τροποποιησεις οπως και να καταλαβεις την δομη του DSDT.aml και επισης την δομη του συστηματο σου πρεπει να αρχισεις να διαβαζεις ολιγον απο αυτο :

Code:

http://developer.apple.com/Mac/library/documentation/Darwin/Conceptual/KernelProgramming/About/About.html#//apple_ref/doc/uid/TP30000905-CH204-TPXREF101
δεν ξερω εαν εχει κανει καποια ερευνα για αυτα που περιγραφει το παραπανω,οπως και πρεπει να εστιασεις στο σημειο I/O kit οπου εκει κρυβεται ολη η γνωση για να καταφερεις την σωστη επικοινωνεια των υποσυστηματων σου - κατρας γραφικων - CPU - κλπ να λειτουργει χωρις προβληματα με τον mach kernel,με προεκταση βεβαια το DSDT.aml.

dantamis 03-03-2010 11:35 PM

Γειά σας!

Με μεγάλη μου χαρά και έκπληξη ανακάλυψα σήμερα το βράδυ ότι υπάρχει Ελληνικό section στο InfiniteMac που αποτελείται απο ανθρώπους με πολύ μεράκι και όρεξη!

Πολλά ΕΥΧΑΡΙΣΤΩ και ΜΠΡΑΒΟ για την βοήθεια με τις πληροφορίες που μας δείνετε ώστε να μπορέσουμε να καταλάβουμε κ να λύσουμε πολλά από τα προβλήματα που εμφανίζονται καθημερινά στην προσπάθειά μας να μπορέσουμε να δουλέψουμε κι εμείς Mac στο pc μας..

Συγκεκριμένα ασχολούμαι 2 εβδομάδες πέριπου και έχοντας καταφέρει να δουλέυω SL 10.6.2 στο Desktop pc μπαίνω στην περισσότερο δύσκολη διαδικασία να τα δοκιμάσω και στο laptop μου (Fujitsu Siemens Xi 2428).

Ακολούθησα τον οδηγό που βρήκε ο φίλος SomniusX και μέσω linux εκανα extract το DSDT και κοίταξα για τυχόν λάθη που έπρεπε να διορθώσω και με διάφορες τροποποιήσεις να μπεί κι αυτό στη λίστα με τα DSDT για laptop που φτιάξατε. Τα αποτελέσματα που πηρα ηταν τα εξής:

-----------------------------------------------------------------------------------------------------------------
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 16 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a

ASL Input: dsdt.dsl - 5571 lines, 191524 bytes, 1975 keywords
AML Output: dsdt.aml - 20750 bytes 636 named objects 1339 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 44 Optimizations
------------------------------------------------------------------------------------------------------------------

Θα ήθελα να ρωτήσω λοιπόν αν το ότι δεν βρέθηκε κανένα λάθος σημαίνει οτι θα μπορούσα να το χρησιμοποιήσω έτσι όπως είναι χωρίς να χρειαστεί να αλλάξω κάτι (εκτός φυσικά απο τα standar fixes όπως ενεργοποίηση του sleep mode κλπ...) ?

Ευχαριστώ.

excos 03-05-2010 10:48 PM

Φιλε dantamis καλως ορισες στην παρεα,απο οτι γραφεις η εξαγωγη του DSDT που εχεις κανει δεν εχει καθολου Errors-Warnings-Remarks οποτε αφοβα μπορεις να το χρησιμοποιησεις στις εγκατασταση σου.

Για τα υπολοιπα που αναφερεις περι sleep και extra λειτουργιες που σου δινει το DSDT το δοκιμαζει πρωτα και μετα βλεπεις τι γινεται στο συστημα σου.

Για να σου αναφερω ενα παραδειγμα με το δικο μου μηχανακι Acer one ZG5 το DSDT που εξαγω εχει το ιδιο αποτελεσμα με το δικο σου.

Ενω λυνει σημαντικα προβληματα οπως η αναγνωριση cpu με 2 , παιζει το HPET κλπ.
στο sleep & hibernation δεν λειτουργει οχι λογο DSDT αλλα λογο sleepenabler.kext.

dantamis 03-06-2010 10:59 AM

Πειραματίστηκα αρκετά με το DSDT (στο desktop pc) και το μόνο πρόβλημα που αντιμετωπίζω είναι ότι ενώ το έχω patch.αρει με το "cpus=1 fix" (όπου μάλιστα το σύγκρινα και με ενα ήδη έτοιμο DSDT και έχουν ακριβώς ίδιο αποτέλεσμα) δεν μπορώ με τίποτα να κάνω το σύστημα να δουλέψει χωρίς την χρήση του "cpus=1" ενώ πρέπει να ειμαι απο τις εξερέσεις γιατι εχω ίδια motherboard( P55M-UD2 ), επεξεργαστή ( i5 750 ) και ram ( 4 GB ) με πολλούς άλλους στους οποίους δουλεύει κανονικότατα και βγάζουν score στο geekbench πάνω από 6000 ενω εγώ ακριβώς τα μισά με το ίδιο hardware και όλα τα άλλα να δουλεύουν άψογα (VGA 1 GB όλες τις αναλύσεις, WiFi, Ethernet, Ήχος)!!!

Υπάρχει περίπτωση να φταίει κάποιο από τα .kext ή να πρέπει να κάνω κάποια extra ρύθμιση στο bios εκτός απο το "AHCI" και το Power σε "S3"??? :-/

excos 03-06-2010 02:45 PM

Φιλε μου dantamis δεν εχεις δωσει ολοκληρωμενη τι λυση στο προβλημα για αυτο εξακολουθει να υπαρχει.

Εκτος του patch με το cpus=1 πρεπει να κανεις και patch το HPET ωστε να μπορει να σου δωσει και την ταχυτητα που εχεις αναφερει οτι εχεις δει σε αλλα ιδια συστηματα με το δικος σου.

Αυτο μπορεις ευκολα να το κανεις με το patch απο εδω :

Code:

http://www.mediafire.com/download.php?xax3olynzmk
το οποιο παραγει DSDT και κανει patch με μιας το HPET το τρεχεις και βλεπεις εαν χρειαζεται να βαλεις και το patch για να σου δουλευουν ολλα τα core.

Υπαρχουν και kexts που βελτιωνουν την αποδοση του της cpu και στο μικρο μου Acer one ZG5 ειναι ο VoodooPowerMini αλλα δεν γνωριζω κατι σχετικο με την δικια σου cpu εαν υπαρχει περα απο το pacth του HPET.

Μπορεις να διαβασεις και τον οδηγο απο τον φιλο Eski για το how to :

Code:

Snow Leopard Totaly Vanilla
Vanilla σημαινει καθαροαιμος Mac χωρις patches γι΄αυτο θα χρησιμοποιησουμε το Snow Leopard Retail DVD απο USB για ευελιξια και φορητοτητα.
Εννοειται οτι κανει ολα τα Updates χωρις προβλημα..

Αλλα ας παρουμε τα πραματα απο την αρχη

Tι θα χρειαστουμε:
α. Snow Leoprad Retail DVD
β. Eνα USB τουλαχιστον 8GB
γ. Μια εγκατασταση Leopard

1. Ειμαστε στο περιβαλον macOS οπου εχουμε το Snow Retail DVD ή image
2. Kατεβαζουμε το πακετο MacLoader_SL απ' αυτου και το κανουμε unzip (εγω το εκανα στο Desktop) οπου δημιουργει ενα φακελο MacLoader_SL
3. Μπαινουμε στο φακελο ανοιγουμε τον υποφακελο 1_DSDΤ_Patcher και τρεχουμε το 1_GetDSDT για να φτιαξει το αρχειο dstd-fixed.dsl το οποιο βρισκεται στο φακελο Tools εννοειται οτι παμε στο φακελο Tools και το ανοιγουμε με TextEdit
Aφου το ανοιξουμε ψαχνουμε να βρουμε την ενοτητα Device RTC0 (σε αλλα Μ/Β μπορει να ειναι Device RTC) οπου εκει διορθωνουμε εαν χρειαστει την τιμη ωστε να ειναι: 0x02 // Length (στο δικο μου ετσι ηταν)
4. Αφου το σωσουμε τρεχουμε το 2_DSDTpatcher στο τερματικο παταμε Enter και ετσι εχουμε το αρχειο DSTD.aml
5. Bαζουμε το USB εγω το εκανα και erase απο Disk Utility και του εδωσα ονομα SL
Απο Disk Utility επιλεγουμε την ταμπελα Restore μετα στο Source ψαχνουμε για να του δωσουμε το SnowLeopard Retail image και στο Destination απλα τραβαμε και αφηνουμε το partition του USB (επισης φροντιζουμε να μην ειναι τσεκαρισμενο το erase destination) περιμενουμε να τελειωσει, θα παρει λιγη ωρα..
6. Παμε παλι στο φακελο MacLoader_SL και βαζουμε τους drivers που χρειαζομαστε για το συστημα μας στο φακελο KEXTs για το δικο μου Asus P5KPL-AM δε χρειαστηκα τιποτα το μονο που εβαλα ηταν drivers για PS2 (ποντικι-πληκτρολογιο) AppleACPIPS2Nub.kext και ApplePS2Controller.kext
7. Tρεχουμε το 2_SnowLeoInstaller και ακολοθουμε τα μυνηματα δηλ. Οταν μας ρωτησει του λεμε απλα το ονομα του USB partition (εγω αν καταλαβατε εδωσα SL)
8. Αντιγραφουμε καπου (στο ιδιο το USB) το φακελο MacLoader_SL
9. Ειμαστε ετοιμοι για την εγκατασταση κανουμε boot απο το USB
10. Mε Disk Utility διαλεγουμε δισκο φτιαχνουμε partition αλλα προσεχουμε
ο δισκος να ειναι GUID (το επολεγουμε απο options) εγω εφτιαξα ενα partition με ονομα Snow
11. Oταν με το καλο τελειωσει η εγκατασταση κανουμε Boot με το USB παλι αλλα επιλεγουμε (με βελακια) το δισκο που μολις καναμε εγκαστασταση (εμενα ειναι το Snow)
12. Aφου επιτελους μπουμε στο συστημα (χρειαζεται να φτιαξουμε λογαριασμο συμπληρωνοντας καποια στοιχεια στην αρχη) χρειαζεται ενα τελευταιο βημα.
Απο το φακελο MacLoader_SL τρεχουμε το 3_MacLoader και ακολουθουμε τα βηματα που στην ουσια απλα μας ζηταει το ονομα του δισκου που εχει εγκατασταθει το Snow Leopard (εγω εδωσα Snow)

Αυτο ηταν στη επομενη επανεκινηση μπαινουμε στο καθαρο Snow Leopard.
Aλλα ας το βελτιωσουμε λιγο αρχιζοντας με την αναλυση οθονης .
Κατεβαζουμε αυτο
Αφου το αποσυπιεσουμε μπαινουμε στο φακελο Malakas και μετα στον υποφακελο Tools και τρεχουμε το EFIStudio διαλεγουμε τη καρτα οθονης που εχουμε (αν δε υπαρχει διαλεξτε μια παραπλησια) παταμε το Add Device και μετα
write to com.apple.Boot.plist
Με την επομενη επανεκινηση θα μπορεσετε να φτιαξετε την αναλυση.

Tωρα οσοι απο εσας εχετε Motherboard P5KPL-AM –και οχι μονο- θα χρειαστειτε driver για την καρτα δικτυου που εχει (RTL8102E) οπου τον κατεβαζετε απλα και τον τρεχετε ειτε απο το site της realtec ειτε απο τα δικα μου αρχεια φακελος Realtec

Oσοι θελουν ακομα παραπανω μπορουν να ενεργοποιησουν το 64bit mode με το παρακατω τροπο:
#diskutil list (για να δουμε που στο διαλο ειναι το κρυφο partition EFI)
#mkdir /Volumes/EFI (δημιουργουμε ενα φακελο για να το μονταρουμε εκει)
#mount_hfs /dev/disk0s1 /Volumes/EFI
εκει διορθωνουμε το kernel string σβηνοντας το <string>arch=i386<string> (32bit)
#umount -f /Volumes/EFI
#rm -f /Volumes/EFI

ΣΗΜΑΝΤΙΚΟ: Αν χρειαστει να ενημερωσουμε το Snow Leopard Boot USB (προσθεσουμε ή αφαιρεσουμε kexts, αλλαξουμε το DSDT.aml ωστε να το χρησιμοποιησουμε σε αλλο συστημα κλπ) απλα πηγαινουμε παλι στο φακελο MacLoader_SL και τρεχουμε το 3_Updater..

Θα χαρω πολυ να ακουσω και να λυσω αποριες..

Κων/νος Κωστ....της
Αποφοιτος 27ου Δημοτικου Σχολειου Περιστεριου
Σχεδον Καλως Πεντε


Xan21 06-01-2010 07:35 PM

how about the acer aspire 5740G?? (6979)

SomniusX 06-01-2010 07:55 PM

@Xan21

if I find anything I will post it here mate!!!

tangon 06-22-2010 07:19 PM

Θα ήθελα να μοιραστώ μαζί σας κάποιες πληροφορίες που βρήκα για το DSDT και για το πώς μπορούμε να διορθώσουμε Errors ή Warnings που μας βγάζει μετά το Compile του DSDT.
Πάντως, όποιος άλλος γνωρίζει κάτι παραπάνω ή θέλει να διορθώσει τα γραφόμενά μου πολύ ευχαρίστως να το πράξει. Εδώ είμαστε για να ανταλλάξουμε απόψεις.

Για να δημιουργήσουμε κατ' αρχήν το δικό μας DSDT αρκεί να χρησιμοποιήσουμε το πρόγραμμα DSDT Patcher GUI όπου αυτό με τη σειρά του εξάγει το αρχείο dsdt.aml Αυτό το αρχείο (dsdt.aml) μπορούμε να το επεξεργαστούμε με το DSDTSE v1.4.3.

Ανοίγουμε το dsdt.aml με το DSDTSE και μας εμφανίζει το παράθυρο με όλες τις πληροφορίες του συστήματός μας (πλήθος επεξεργαστών, το RTC και άλλα στοιχεία του υπολογισή μας). Μπορούμε να ψάξουμε π.χ. για το CMOS reset που κάνει το 10.6 & 10.6.1 κατά την εκκίνηση το γνωστό RTC και από τις στάνταρ τιμές

Code:

Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (ATT0, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x08, // Length  <------------------ εδώ
)
})
Name (ATT1, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x04, // Length
)

να αλλάξουμε την αντίστοιχη τιμή σε

Code:

Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (ATT0, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length  <------------------ εδώ
)
})
Name (ATT1, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x04, // Length
)

Το πρόγραμμα όμως δεν σταματάει εδώ. Μπορούμε να διορθώσουμε Errors ή Warnings που μας βγάζει μετά το Compile του DSDT. Σαν παράδειγμα παίρνω το δικό μου DSDT που μετά το Compile μου βγάζει το παρακάτω Warning :

Code:

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20090730 [Aug 12 2009]
Copyright (C) 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  397:    Method (_WAK, 1, NotSerialized)
Warning  1080 -                                    Reserved method must return a value ^  (_WAK)

ASL Input:  /Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 5915 lines, 192473 bytes, 2235 keywords
AML Output: /Library/Application Support/EvOSoftware/DSDT/DSDTFiles/./dsdt.aml - 18864 bytes, 673 named objects, 1562 executable opcodes

Compilation complete. 0 Errors, 1 Warnings, 0 Remarks, 31 Optimizations

Το Warnings μας λέει ότι υπάρχει πρόβλημα στην γραμμή 397: Method (_WAK, 1, NotSerialized)

Τώρα πάμε στο δεξί παράθυρο του προγράμματος και στο πεδίο ACPI search και στο Search γράφουμε _WAK και μετά πατάμε Search

Το πρόγραμμα μας βρίσκει το Method (_WAK, 1, NotSerialized) που βρίσκεται στη 397 γραμμή, και κάτω από την επικεφαλίδα τα εξής:

Code:

Method (_WAK, 1, NotSerialized)
    {
        Store (0xFF, DBG1)
        If (LEqual (Arg0, 0x03))
        {
            Store (0x88, SCP)
        }

        Notify (\_SB.PCI0.PX40.UAR1, Zero)
        If (OSFL)
        {
            Notify (\_SB.PWRB, 0x02)
        }
        Else
        {
            If (LEqual (RTCW, Zero))
            {
                Notify (\_SB.PWRB, 0x02)
            }
        }

        Notify (\_SB.PCI0.USB0, Zero)
        Notify (\_SB.PCI0.USB1, Zero)
        Notify (\_SB.PCI0.USB2, Zero)
        Notify (\_SB.PCI0.USB3, Zero)
        }

Αν πάμε στο μενού του προγράμματος που βρίσκεται αριστερά του παραθύρου θα δούμε το DSDT fixes και το DSDT hacks. Το καθένα από τα δύο μενού μας δίνει, το ένα τον τρόπο να κάνουμε fix το δικό μας DSDT ενώ το άλλο πώς θα κάνουμε hack πχ την κάρτα ήχου ή γραφικών του υπολογιστή μας (εγώ πάντως δεν έχω προσπαθήσει ακόμα να κάνω hack την κάρτα ήχου ή την κάρτα γραφικών από εδώ)

Για να γυρίσουμε στο παράδειγμά μας πατώντας το DSDT fixes πηγαίνουμε στο: must return a value (_WAK).dsl όπου μας βγάζει το παρακάτω:

Code:

dsdt.dsl  163:    Method (_WAK, 1, NotSerialized)
Warning  2026 -                ^ Reserved method must return a value (_WAK)

At the end of the _WAK method, this must be added:

Return(Package(0x02){Zero, Zero})


Example:


Method (_WAK, 1, NotSerialized)
    {
        P8XH (One, 0xAB)
        If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
        {
            If (And (CFGD, 0x01000000))
            {
                If (LAnd (And (CFGD, 0xF0), LEqual (OSYS, 0x07D1)))
                {
                    TRAP (0x3D)
                }
            }
        }

        If (LEqual (RP2D, Zero))
        {
            Notify (\_SB.PCI0.RP02, Zero)
        }

        If (LEqual (Arg0, 0x03)) {}
        If (LEqual (Arg0, 0x04))
        {
            \_SB.PCI0.LPCB.EC.SELE ()
        }

        P8XH (Zero, 0xCD)

        Return (Package (0x02)
        {
            Zero,
            Zero
        })
    }

όπου λίγο πολύ μας λέει ότι για να εξαλείψουμε το Warning αυτό αρκεί να κάνουμε copy/paste τα

Return (Package (0x02)
{
Zero,
Zero
})
}


στο σημείο που μας υποδεικνύει

Στο δικό μου γίνεται έτσι (με τα κόκκινα στοιχεία είναι αυτά που πρόσθεσα):

Code:

    Method (_WAK, 1, NotSerialized)
    {
        Store (0xFF, DBG1)
        If (LEqual (Arg0, 0x03))
        {
            Store (0x88, SCP)
        }

        Notify (\_SB.PCI0.PX40.UAR1, Zero)
        If (OSFL)
        {
            Notify (\_SB.PWRB, 0x02)
        }
        Else
        {
            If (LEqual (RTCW, Zero))
            {
                Notify (\_SB.PWRB, 0x02)
            }
        }

        Notify (\_SB.PCI0.USB0, Zero)
        Notify (\_SB.PCI0.USB1, Zero)
        Notify (\_SB.PCI0.USB2, Zero)
        Notify (\_SB.PCI0.USB3, Zero)
        Return (Package (0x02)
        {
            Zero,
            Zero
        })
    }

Μετά από αυτό ξανακάνουμε Compile DSDT και το αποτέλεσμα είναι το παρακάτω:

Code:

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20090730 [Aug 12 2009]
Copyright (C) 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

ASL Input:  /Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 5920 lines, 192565 bytes, 2236 keywords
AML Output: /Library/Application Support/EvOSoftware/DSDT/DSDTFiles/./dsdt.aml - 18870 bytes, 673 named objects, 1563 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 31 Optimizations

Όπως παρατηρούμε το Warnings που υπήρχε διορθώθηκε.
Για να διαπιστώσω ότι όλα πάνε καλά έκανα επανεκκίνηση όπου ήταν κανονική και το σύστημα "ανέβηκε" όπως πάντα σωστά και σταθερά.

Θα πρέπει να επισημάνω ότι το όλο εγχείρημα έγινε στο δικό μου DSDT που δημιούργησα από το δικό μου μηχάνημα. Πιστεύω να λειτουργήσει και σε όποιον προσπαθήσει στο δικό του DSDT.

Περισσότερες πληροφορίες καθώς και οπτικοποιημένες οι λειτουργίες του προγράμματος DSDTSE v1.4.3 στην διεύθυνση:

http://www.youtube.com/watch?v=EOyu8...layer_embedded

excos 06-23-2010 09:14 PM

Για ολα φιλε tangon εισαι οκ για το WAK, εκτος απο το RTC το οποιο η τιμη 2 ειναι μονο για το 10.6 & 10.6.1 απο το 10.6.2 & περα η τιμη 8 δεν πειραζει πουθενα το dsdt οπως για την φορτωση του απο chameleon.

tangon 06-24-2010 08:14 AM

Σε αυτό που λες excos, για το RTC, ναι το έχω διαβάσει και εγώ και έχεις δίκιο, αλλά και στο 10.6.2 αλλά και σε 10.6.3 μετά την αναβάθμιση που έκανα, όταν το άλλαξα σε "8" στο δικό μου μηχάνημα, μου έκανε το CMOS reset.

Γι' αυτό το άλλαξα πάλι σε "2" αλλά πάντα μιλάω για το δικό μου μηχάνημα.

Δεν ξέρω αν άλλος έχει παρατηρήσει κάτι διαφορετικό. Πιθανόν επειδή έχω κάνει εγκατάσταση την διανομή SnowOsx 10.6.2 να συμπεριφέρεται διαφορετικά. Δεν ξέρω... τί να πω!

Θα κάνω όμως και μια ακόμα δοκιμή τώρα που έκανα update σε 10.6.4. Με έβαλες σε σκέψεις!