






[NVIDIA] HowTo - Patch AGPM.kext für G-States
Geschrieben von
TimeBandit
,
10 Januar 2014
·
5.192 Aufrufe
Diese Anleitung ist ein Step-by-Step Walkthrough für die AppleGraphicsPowerManagement.kext (kurz: AGPM)
Die AGPM hat die gleiche Funktion wie die AICPM (AppleIntelCPUPowerManagement.kext) und sorgt für das SpeedStepping der Grafikkarte unter OS X, sowohl bei Fermi als auch bei Kepler Grafikkarten. Das hat zum einen den Vorteil, dass der Stromverbrauch aber auch die Wärme- /Geräuschbelastung gesenkt werden kann. Wird die Power dann benötigt (Spiele, 3D-Anwendungen) wird die Grafikkarte ausgelastet und die AGPM schaltet sie automatisch auf Vollgas.
In meinem Fall patche ich die AGPM für eine EVGA GeForce GTX 660 SuperClocked Signature 2 mit 3GB Speicher.
Vorweg: Meine GTX 660 hat 4 G-States. Bei einigen NVIDIA-Karten kann es sein, dass diese nur 3 G-States haben...
Auf geht's!
</dict>
<key>MacPro5,1</key>
<dict>
Scrollt nun noch etwas weiter nach unten um die Einträge Threshold_Low und Threshold_High zu finden. Hier werden die G-States definiert!

Voreingestellt sieht das dort etwa so aus:
<key>Threshold_High</key>
<array>
<integer>55</integer>
<integer>75</integer>
<integer>99</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>87</integer>
<integer>87</integer>
<integer>87</integer>
</array>
Diese Werte ändern wir nun in folgendes:
<key>Threshold_High</key>
<array>
<integer>30</integer>
<integer>45</integer>
<integer>75</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>65</integer>
<integer>87</integer>
<integer>95</integer>
</array>
Was bedeutet das nun?
Das ist einfach erklärt:
Die <integer>x</integer> Werte stehen für die % der Grafikkarte im idle.
Ist die Grafikkarte nun von 95 bis 100% im idle, wechselt sie in die 3. State (Maximales Energie sparen)
75 bis 87% idle - State 2
45 bis 65% idle - State 1
0 bis 30% idle - State 0 (Maximale Leistung)
Um die G-States nun zu aktivieren, müssen wir noch eintragen, welche GPU wir haben. Das machen wir mit Hilfe der Vendor ID und der Device ID.
Geändert wird der Eintrag ein paar Zeilen weiter oben...:
<key>Vendor10deDevice0640</key>
...in das, was für uns passend ist. Bei meiner GTX 660 Ist die Vendor ID "10de" und die Device ID "11c0".
<key>Vendor10deDevice11c0</key>
(Vorerst) Fertig!
Scrollen wir noch einmal etwas weiter nach unten, finden wir noch folgenden Eintrag:
<key>LogControl</key>
<integer>0</integer>
Setzen wir dort die 0 auf 1, wird das wechseln der G-States auch in der Konsole geloggt. Ein muss, um zu testen, ob alles richtig funktioniert!:
<key>LogControl</key>
<integer>1</integer>
Wir sind nun mit dem bearbeiten der Info.plist fertig!
Ladet am besten das Tool GpuTest und startet einen Benchmark.. -> Gibt's hier
Öffnet die Konsole, und gebt in der Suche einfach "AGPM" ein. Startet dann den Benchmark und beobachtet, ob sich die States ändern.
Wenn alles wunderbar klappt sieht das dann so aus:

Ein ziemliches durcheinander für den Anfang...
Wichtig hierbei sind aber nur folgende Einträge:
01:40:23 kernel[0]: AGPM: GPU = PEGP G-state set to 2 from 3, ControlID = 18
01:41:13 kernel[0]: AGPM: GPU = PEGP G-state set to 0 from 2, ControlID = 18
01:41:48 kernel[0]: AGPM: GPU = PEGP G-state set to 1 from 0, ControlID = 18
01:41:53 kernel[0]: AGPM: GPU = PEGP G-state set to 2 from 1, ControlID = 18
01:41:58 kernel[0]: AGPM: GPU = PEGP G-state set to 3 from 2, ControlID = 18
Die Grafikkarte wird also von State 3 (Energiesparen) in den State 1 (Maximale Leistung) geholt.
Kurz darauf (ja, Benchmark war nur ganz kurz an
) wird die Graka dann wieder in den Energiesparmodus (State 3) geschickt.

Damit sind wir durch, und das SpeedStepping unserer Grafikkarte läuft nun wunderbar und gefahrlos!!
Viel Spaß & viel Erfolg beim selber patchen!!
Die AGPM hat die gleiche Funktion wie die AICPM (AppleIntelCPUPowerManagement.kext) und sorgt für das SpeedStepping der Grafikkarte unter OS X, sowohl bei Fermi als auch bei Kepler Grafikkarten. Das hat zum einen den Vorteil, dass der Stromverbrauch aber auch die Wärme- /Geräuschbelastung gesenkt werden kann. Wird die Power dann benötigt (Spiele, 3D-Anwendungen) wird die Grafikkarte ausgelastet und die AGPM schaltet sie automatisch auf Vollgas.
In meinem Fall patche ich die AGPM für eine EVGA GeForce GTX 660 SuperClocked Signature 2 mit 3GB Speicher.
Vorweg: Meine GTX 660 hat 4 G-States. Bei einigen NVIDIA-Karten kann es sein, dass diese nur 3 G-States haben...
Auf geht's!

- Als ersten navigieren wir zu System/Library/Extensions und kopieren die AppleGraphicsPowerManagement.kext auf den Desktop.
- Rechtsklick -> Zeige Paketinhalt
- Weiter geht's zu Contents/ und die Info.plist öffnen. Hier empfehle ich euch die App "TextWrangler" mit der ihr die Info.plist öffnen könnt.
</dict>
<key>MacPro5,1</key>
<dict>
Scrollt nun noch etwas weiter nach unten um die Einträge Threshold_Low und Threshold_High zu finden. Hier werden die G-States definiert!

Voreingestellt sieht das dort etwa so aus:
<key>Threshold_High</key>
<array>
<integer>55</integer>
<integer>75</integer>
<integer>99</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>87</integer>
<integer>87</integer>
<integer>87</integer>
</array>
Diese Werte ändern wir nun in folgendes:
<key>Threshold_High</key>
<array>
<integer>30</integer>
<integer>45</integer>
<integer>75</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>65</integer>
<integer>87</integer>
<integer>95</integer>
</array>
Was bedeutet das nun?
Das ist einfach erklärt:
Die <integer>x</integer> Werte stehen für die % der Grafikkarte im idle.
Ist die Grafikkarte nun von 95 bis 100% im idle, wechselt sie in die 3. State (Maximales Energie sparen)
75 bis 87% idle - State 2
45 bis 65% idle - State 1
0 bis 30% idle - State 0 (Maximale Leistung)
Um die G-States nun zu aktivieren, müssen wir noch eintragen, welche GPU wir haben. Das machen wir mit Hilfe der Vendor ID und der Device ID.
Geändert wird der Eintrag ein paar Zeilen weiter oben...:
<key>Vendor10deDevice0640</key>
...in das, was für uns passend ist. Bei meiner GTX 660 Ist die Vendor ID "10de" und die Device ID "11c0".
<key>Vendor10deDevice11c0</key>
(Vorerst) Fertig!
Scrollen wir noch einmal etwas weiter nach unten, finden wir noch folgenden Eintrag:
<key>LogControl</key>
<integer>0</integer>
Setzen wir dort die 0 auf 1, wird das wechseln der G-States auch in der Konsole geloggt. Ein muss, um zu testen, ob alles richtig funktioniert!:
<key>LogControl</key>
<integer>1</integer>
Wir sind nun mit dem bearbeiten der Info.plist fertig!
- Info.plist speichern
- mit Kext Wizard wieder in S/L/E installieren
- Rechte fixen, Cache neu erstellen
- Reboot!
Ladet am besten das Tool GpuTest und startet einen Benchmark.. -> Gibt's hier
Öffnet die Konsole, und gebt in der Suche einfach "AGPM" ein. Startet dann den Benchmark und beobachtet, ob sich die States ändern.
Wenn alles wunderbar klappt sieht das dann so aus:

Ein ziemliches durcheinander für den Anfang...
Wichtig hierbei sind aber nur folgende Einträge:
01:40:23 kernel[0]: AGPM: GPU = PEGP G-state set to 2 from 3, ControlID = 18
01:41:13 kernel[0]: AGPM: GPU = PEGP G-state set to 0 from 2, ControlID = 18
01:41:48 kernel[0]: AGPM: GPU = PEGP G-state set to 1 from 0, ControlID = 18
01:41:53 kernel[0]: AGPM: GPU = PEGP G-state set to 2 from 1, ControlID = 18
01:41:58 kernel[0]: AGPM: GPU = PEGP G-state set to 3 from 2, ControlID = 18
Die Grafikkarte wird also von State 3 (Energiesparen) in den State 1 (Maximale Leistung) geholt.
Kurz darauf (ja, Benchmark war nur ganz kurz an


Damit sind wir durch, und das SpeedStepping unserer Grafikkarte läuft nun wunderbar und gefahrlos!!
Viel Spaß & viel Erfolg beim selber patchen!!

- eisdrachen gefällt das