C & P state on INTEL CPU
Απο αρκετες δοκιμες που εκανα στο μηχανακι μου το C & P state της cpu δουλευει αρκετα ικανοποιοητικα εαν και παρεμβαινει ο nullcpupowermanager.kext στο applepowermanager.kext. Αυτο βεβαια το εχω λυση φορτωνοντας τον voodoopowermini.kext…
- Primary Author
- @excos Published 2011-03-15
- Collection
- International Dispatches
- Archival Footprint
- 12,736 historical reads · 9 curated field notes (from 22 dispatches) · 2011-03-15 – 2011-03-17
- Credited Voices (4)
- @excos (10)@tangon (7)@ggero (3)@mozart (2)
Απο αρκετες δοκιμες που εκανα στο μηχανακι μου το C & P state της cpu δουλευει αρκετα ικανοποιοητικα εαν και παρεμβαινει ο nullcpupowermanager.kext στο applepowermanager.kext.
Αυτο βεβαια το εχω λυση φορτωνοντας τον voodoopowermini.kext και προσθετοντας τον icpu.kext για να δω τα επιπεδα του επεξεργαστη μου σε C & P state οπως και τις θερμοκρασιες που εχει η cpu μου.
Θα ηθελα να γραψεται πως εχετε λυση αυτο στο δικο σας μηχανημα ή εαν δεν σας εχει απασχολησει καθολου ή απο αγνοια οτι υπαρχει κατι τετοιο στην εγκατασταση σας
Author Updates & Technical Revisions
Follow-up dispatches by @excos
Χμ εκει ειναι η μαγκια στην εγκατασταση γιατι εαν δεν παιζουν αυτα τα δυο τοτε ο επεξεργαστης σου δουλευει με μιση ή και λιγοτερη δυναμη.
Κατεβαζεις τον icpu.kext + icpu προγραμμα.
ή
MSR Tools
και βλεπεις ενα παιζουν αυτα.
Φιλε tangon οταν τρεχεις το προγραμμα στο status θα πρεπει να εχεις αυξομιωση των MHZ απο την cpu σου οπως γραφει και το πινακακι με τις θερμοκρασιες σου.
Εαν δεν εχεις αυξομιωσει τοτε ο επεξεργαστη σου η παιξει στο ποιο δυνατο του σημειο ή στο ποιο χαμηλο σημειο mhz.
Εαν παιζει συνεχεια στο ποιο δυνατο τοτε εχεις αυξηση πολυ της θερμοκρασιας.(θα το καψεις το μηχανημα)
Εαν παιζει στο ποιο χαμηλο τοτε δεν εχεις προβλημα θερμοκρασιας αλλα επεξεργαστικης ικανοτητας (σερνεται).
Ok μια χαρα ειναι φιλε Tangon.
Αλλα κατεβασε και το MSR Tools για να δεις εαν εχεις και το Speedstep (on) στις cpu σου συμμαντικο σε INTEL CPU.
Μια χαρα εισαι!
Παιζεις με πειραγμενο dsdt ή δεν το εχεις πειραξει καθολου?
Το hpet το εχεις πειραξει απο το dsdt ή παιζει απο μονο του?
Το HPET φορτωνεται στο ACPI και ελενχει θερμοκρασιες speedstep και state c & p των cpu.
Αλλα θα το δεις εαν κανεις boot με -v στην αρχη τοu boot σου γραφει εαν φορτωνει σωστα.
Το δικο σου δεν εχει κανενα προβλημα απο οτι βλεπω παιζει με την μια και ειναι πολυ συμμαντικο.
Αμα δουλευει και το sleep τοτε ολες οι λειτουργιες ειναι σαν να εχεις ενα γνησιο.
Το κακο ειναι οτι καμμια φορα με τα update, αυτο αλλαξει γιατι πηγαινουν και πειραζουν τον kernel και μετα τρεχεις και δεν φτανεις.
Γιαυτο θα πρεπει παντα μετα απο ενα update να βλεπει εαν εχει αλλαξει κατι απο αυτα για να εχεις μια τελεια εγκατασταση.
Chipset ICH7 ενα απο τα προβληματα που εχει ειναι και το sleep.Ενω μπορεις να κανεις εγκατασταση χωρις προβλημα.
Chipset ICH9&10 τρεχει χωρις προβλημα το sleep μιας και το εχει και η μαμα Apple επανω.
Εχεις κανα usb συσκευη επανω στο μηχανημα που κολλα το sleep ?
Εχεις κοιταξει για τα usb fix που υπαρχουν οσο με kexts ή στο DSDT ?
Φιλε tangon ο νομος λεει οτι οταν κατι δουλευει καλα δεν το πειραζουμε!
Αλλα επειδη ξεκινησαμε αυτο το σπορ για hack στα μηχανακια μας και εκει ειναι ολη η υποθεση οτι οσο σκαλιζεις μαθαινεις και περισσοτερο.
Αυτο που εχω κανει για να βελτιωσω την εγκατασταση μου στο μηχανακι μου, ειναι οτι εχω ενα εξωτερικο δισκο, που εχω βαλει ακριβως το ιδιο installation, που εχω και στο εσωτερικο μου δισκο, με την διαφορα οτι εκει κανω τα πειραματα μου χωρις να πειραζω την υπαρχων καλη μου εγκατασταση.
Αυτο σαν αποτελεσμα οτι μπορω να φορτωνω και τροποιημενα DSDT χωρις προβλημα για να δω πως παιζουν.
Μερικα απο Fix σε usb ειναι τα παρακατω εαν ενδιαφερεσαι αλλα οτι κανεις κανε το με το συστημα που αναφερω παραπανω μεχρι να δεις τι παιζει στο δικο σου.
native USB EHCI Mac Pro hack
Look for the section EHCI in the DSDT code, Change the section to this code:
Device (EHCI)
{
Name (_ADR, 0x001A0007) /*<-----------------------look for the correct address, ADR, in each DSDT */
OperationRegion (UFCS, PCI_Config, 0x54, 0x04)
Field (UFCS, DWordAcc, NoLock, Preserve)
{
, 15,
PMES, 1
}
Device (HUB2)
{
Name (_ADR, Zero)
Device (PRT1)
{
Name (_ADR, One)
}
Device (PRT2)
{
Name (_ADR, 0x02)
}
Device (PRT3)
{
Name (_ADR, 0x03)
}
Device (PRT4)
{
Name (_ADR, 0x04)
}
}
Name (_PRW, Package (0x02)
{
0x0D,
0x03
})
Method (_S3D, 0, NotSerialized)
{
Return (0x03)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x03)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x07)
{
"AAPL,current-available",
0x05DC,
"AAPL,current-extra",
0x03E8,
"AAPL,current-in-sleep",
0x0BB8,
Buffer (One)
{
0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
USB UHCI hack 2
This hack adds an id of a Mac to the USB to make it more compatible with OSX.
Device (UHC1)
{
Name (_ADR, 0x001D0000)
Name (UPS1, Package (0x02)
{
0x03,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}
If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x34, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (UHC2)
{
Name (_ADR, 0x001D0001)
Name (UPS1, Package (0x02)
{
0x04,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}
If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x35, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (UHC3)
{
Name (_ADR, 0x001D0002)
Name (UPS1, Package (0x02)
{
0x0C,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}
If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x36, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (UHC4)
{
Name (_ADR, 0x001A0000)
Name (UPS1, Package (0x02)
{
0x0E,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}
If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x37, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (UHC5)
{
Name (_ADR, 0x001A0001)
Name (UPS1, Package (0x02)
{
0x05,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}
If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x38, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (UHC6)
{
Name (_ADR, 0x001A0002)
Name (UPS1, Package (0x02)
{
0x20,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0xC4, One)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URES, 8
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URES)
}
If (LEqual (Arg0, One))
{
Store (0x03, URES)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x39, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (EHC1)
{
Name (_ADR, 0x001D0007)
Name (UPS1, Package (0x02)
{
0x0D,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0x62, 0x02)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URE2, 9
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URE2)
}
If (LEqual (Arg0, One))
{
Store (0x01FF, URE2)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x3a, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (EHC2)
{
Name (_ADR, 0x001A0007)
Name (UPS1, Package (0x02)
{
0x0D,
0x03
})
Method (_PRW, 0, NotSerialized)
{
Return (UPS1)
}
OperationRegion (USBR, PCI_Config, 0x62, 0x02)
Field (USBR, AnyAcc, NoLock, Preserve)
{
URE2, 9
}
Method (_PSW, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Store (Zero, URE2)
}
If (LEqual (Arg0, One))
{
Store (0x01FF, URE2)
}
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x3c, 0x3a, 0x00, 0x00 /*<--------- ID MAC------*/
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
USB native driver hack:
Locate your usb devices and add this code to each one, changing the values from device id with the one supplied under the code:
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0f)
{
"device-id",
Buffer (0x04)
{
0x34, 0x3A, 0x00, 0x00 //the values below
},
"AAPL,clock-id", // property needed for sleep support
Buffer (One)
{
0x0a
},
"built-in",
Buffer ()
{
0x00
},
"device_type", //not sure it is useful
Buffer (0x05)
{
"EHCI"
},
"AAPL,current-available",
0x04B0,
"AAPL,current-extra",
0x02BC,
"AAPL,current-in-sleep", // to solve a problem with sleep when stick is inserted
0x03E8,
Buffer (0x01)
{
0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
DeviceIDs
Intel
USB1 - 0x2830
USB2 - 0x2831
USB3 - 0x2832
USB4 - 0x2834
USB5 - 0x2835
EHC1 - 0x2836
EHC2 - 0x283a
nForce
USB1 - 0x0aa5
USB2 - 0x0aa7
EHC1 - 0x0aa6
EHC2 - 0x0aa9
Αυτα τα λιγα!
Εναλλακτικα για αυτους που το MSR Tools δεν παιζει στο μηχανακι τους, ενα καλο ειναι το cpu x απο netkas μερια που δειχνει εαν τα MHZ της cpu αλλαζουν!
Να σε καλα φιλε tangon.
Οτι χρειαστεις με το laptop εδω ειμαστε.
Synthesized Community Field Notes
9 technical responses curated from 22 original dispatches
Φίλε excos δεν καταλαβαίνω απόλυτα αυτά που γράφεις. Παρόλα αυτά σου ανεβάζω τα δικά μου screen shots.
Το μόνο που βλέπω είναι διαφορές στην θερμοκρασία.
ΟΚ. Τώρα αρχίζω να καταλαβαίνω τι εννοείς.
Λοιπόν στο Status της CPU-i οι συχνότητες ανεβοκατεβαίνουν και στις 4CPUs από αυτό που φαίνεται στην screen shot 1998MHz έως τα 2664MHz που είναι η ονομαστική ταχύτητα του επεξεργαστή μου και φυσικά αντίστοιχα οι θερμοκρασίες από 57C - 58C ή 61C-65C ανάλογα τον επεξεργαστή. Μεταβολές έχω και στις άλλες ενδείξεις (multiplier, voltage)
Από αυτά καταλαβαίνω ότι είμαι σε ικανοποιητικά επίπεδα.
Το MSR Tools το έχω αλλά δεν μου τρέχει. Όταν το ανοίγω δεν μου γράφει τίποτε. Υποψιάζομαι ότι "τρέχει" σε 2πύρηνους επεξεργαστές και εγώ έχω τετραπύρηνο.
Εκτός και αν θέλει κάποιο kext όπως συμβαίνει με το πρόγραμμα CPU-i.
Πληροφορίες για τους επεξεργαστές μπορώ να πάρω από το πρόγραμμα EvOToolsX
# Identification Vendor : GenuineIntel Brand String : Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz Model Number : 23 (Penryn) Family Code : 6 Extended Model : 1 Extended Family : 0 Stepping ID : 10 Signature : 67194 # Address Bits Physical Addressing : 36 Virtual Addressing : 48 # Multi-Core Information Logical Processors (Threads) per…
Το dsdt το έχω πειράξει με την έννοια ότι έχω "διορθώσει" τα errors ή κάποια warnings ώστε να μην μου βγάζει τίποτα στο τσεκάρισμα.
Στο dsdt σίγουρα έχω πειράξει, από ότι θυμάμαι, το Reset CMOS (RTC) και τον ήχο που με είχε παιδέψει πολύ για να τον φέρω στα ίσια του. Για το άλλο που μου γράφει δεν έχω κάνει κάτι αν και δεν ξέρω που επεμβαίνει για να πω την αλήθεια.
Θα κοιτάξω για το HPET αν το φορτώνει στην εκκίνηση.
Όσο για το sleep ότι και αν έχω κάνει δεν το έχω καταφέρει να το φτιάξω. Ενώ μου σβήνει μετά δεν ξανανοίγει με τίποτα εκτός από restart.
Έχω παρατηρήσει ότι όταν σβήνει για sleep δεν λειτουργούν τα usb οπότε δεν μπορώ να το εκκινήσω. Εκεί έχω διαπιστώσει ότι υπάρχει το πρόβλημα.
Πάνω στο πύργο έχω από usb μια webcam και τον εκτυπωτή μόνιμα συνδεδεμένα.
Δεν έχω περάσει usb fix kext αλλά ούτε έχω πειράξει το DSDT γιατί νομίζω ότι από τη στιγμή που τα usb μου δουλεύουν κανονικά, βάζω - βγάζω usb sticks και δίσκους, κανονικές ταχύτητες στην αντιγραφή φαντάζομαι ότι κάποιο παραπάνω kext μπορούσε να τα επηρεάσει.
Πιστεύεις ότι χρειάζεται διερεύνηση και να αρχίσω πειραματισμούς με το fix usb?
εμενα το msr tool δεν εγκαθιστατε.
με ποιον τροπο μπορω να δω αυτα που λες?
@excosΕναλλακτικα για αυτους που το msr tools δεν παιζει στο μηχανακι τους, ενα καλο ειναι το cpu x απο netkas μερια που δειχνει εαν τα mhz της cpu αλλαζουν!
οκ το κατεβασα
οι θερμοκρασιες ειναι χαμηλα και παιζει γυρω στο 30%
αμην
@excosΦιλε tangon ο νομος λεει οτι οταν κατι δουλευει καλα δεν το πειραζουμε! Αλλα επειδη... …Μερικα απο Fix σε usb ειναι τα παρακατω εαν ενδιαφερεσαι αλλα οτι κανεις κανε το με το συστημα που αναφερω παραπανω μεχρι να δεις τι παιζει στο δικο σου. native USB EHCI Mac Pro hack...
Σ' ευχαριστώ φίλε excos για τις πληροφορίες usb. Θα το κοιτάξω μόλις έχω λίγο χρόνο γι' αυτό το μηχάνημα.
Έχω φάει κόλλημα με το καταραμένο laptop του πλαισίου που δεν λέει με τίποτα να πάρει τo OS X