B
Bernd.Defy
Fortgeschrittenes Mitglied
- 25
Hallo zusammen,
ich habe mein Übertaktungs-Modul mal fertiggestellt und stelle es hier zur Verfügung. Mit dem Tool könnt ihr die Multiplikatoren der drei taktgebenden PLLs des Mini manipulieren. Gaaanz kurzer Ausflug in die Technik:
Basistakt eines jeden der drei PLLs ist 19.2 MHz. Mit der Multiplikatoren werden die PLLs getaktet, in der Mini-Stadardausführung sind das
* PLL_0 --> Multi 50 ==> 960 MHz
* PLL_1 --> Multi 12 ==> 245 MHz
* PLL_2 --> Multi 62 ==> 1200 MHz
Die Frequenz der CPU wird nun über den PLL und einen Divisor gebildet. Für 600 MHz wird z.B. PLL2 mit Divisor 2 genutzt.
Die übertaktete Frequenz ist die 600 MHz-Frequenz. Mit Standard-Governor ("performance") kommt ohnehin nur die in Frage. Da meine Experimente ergeben haben, dass die Anpassung des Divisors oder die Umstellung des steuernden PLL nicht klappen (zb. PLL0 mit divisor 1 würde 960MHz CPU bedeuten), bleibt einzig die Übertaktung des PLL2. Der läuft bei mir mit Multiplikator 68 (68*19,2 / 2 = 652 MHz) absolut stabil und ohne signifikante Auswirkung auf die Laufzeit. Bis 70 klappte es bei mir auch ohne Probleme.
Genug der Vorrede, hier die Kurzanleitung. ACHTUNG! Ihr seid mit dem Kernel-Modul in der Lage, Euer Defy zu schrotten. Sobald das Handy mit Reboots reagiert oder sich irgendwie komisch verhält, nachdem ihr einen der Taktgeber geändert habt - Batterie raus. Warten. Batterie rein. Hoffen.
Noch ein Hinweis: Das Modul modifiziert zur Laufzeit Kernel-Variablen, indem es direkt in Speicherbereiche schreibt, in die eigentlich niemand schrieben soll. Dies ist notwendig, um die Frequenz in die Frequenzlisten aufzunehmen. Wenn dies bei Euch nicht klappt, sind die Firmwareversionen zu verschieden. Das ist nicht schlimm, die Modifikation ist leicht anpassbar.
CREDITS
Dieses Modul basiert auf hervorragender Vorarbeit von
--
Updates
2013-04-01: v0.3 hochgeladen, neuer Parameter für Kernspannung der höchsten Frequenz (vdd, Werte zwischen 1(niedrig) und 7 (hoch), default: 6
2013-03-27: v0.2 hochgeladen mit Parametern für Frequenztabellen-Adressen, Troubleshooting-Kapitel
ich habe mein Übertaktungs-Modul mal fertiggestellt und stelle es hier zur Verfügung. Mit dem Tool könnt ihr die Multiplikatoren der drei taktgebenden PLLs des Mini manipulieren. Gaaanz kurzer Ausflug in die Technik:
Basistakt eines jeden der drei PLLs ist 19.2 MHz. Mit der Multiplikatoren werden die PLLs getaktet, in der Mini-Stadardausführung sind das
* PLL_0 --> Multi 50 ==> 960 MHz
* PLL_1 --> Multi 12 ==> 245 MHz
* PLL_2 --> Multi 62 ==> 1200 MHz
Die Frequenz der CPU wird nun über den PLL und einen Divisor gebildet. Für 600 MHz wird z.B. PLL2 mit Divisor 2 genutzt.
Die übertaktete Frequenz ist die 600 MHz-Frequenz. Mit Standard-Governor ("performance") kommt ohnehin nur die in Frage. Da meine Experimente ergeben haben, dass die Anpassung des Divisors oder die Umstellung des steuernden PLL nicht klappen (zb. PLL0 mit divisor 1 würde 960MHz CPU bedeuten), bleibt einzig die Übertaktung des PLL2. Der läuft bei mir mit Multiplikator 68 (68*19,2 / 2 = 652 MHz) absolut stabil und ohne signifikante Auswirkung auf die Laufzeit. Bis 70 klappte es bei mir auch ohne Probleme.
Genug der Vorrede, hier die Kurzanleitung. ACHTUNG! Ihr seid mit dem Kernel-Modul in der Lage, Euer Defy zu schrotten. Sobald das Handy mit Reboots reagiert oder sich irgendwie komisch verhält, nachdem ihr einen der Taktgeber geändert habt - Batterie raus. Warten. Batterie rein. Hoffen.
Noch ein Hinweis: Das Modul modifiziert zur Laufzeit Kernel-Variablen, indem es direkt in Speicherbereiche schreibt, in die eigentlich niemand schrieben soll. Dies ist notwendig, um die Frequenz in die Frequenzlisten aufzunehmen. Wenn dies bei Euch nicht klappt, sind die Firmwareversionen zu verschieden. Das ist nicht schlimm, die Modifikation ist leicht anpassbar.
- Download Modul
Das Kernelmodul ist im Anhang dieses Posts. Kopiert es in ein beliebiges Verzeichnis. - Kopie des Moduls auf das Telefon
Zum Testen empfehle ich, das Modul auf die SD-Karte (im Beispiel: Verzeichnis TEMP) zu kopieren. Später könnt ihr es noch in den internen Speicher kopieren.
Ich nutze adb:
Code:adb push d:VMsSharedFolderdefymini_oc.ko /sdcard/temp
- Ermittlung der Speicheradressen der CPU-Frequenztabelle und Der Time-In-State-Tabelle
Beide genannten Tabellen sorgen dafür, dass die neue Frequenz sowohl in der Time-In-State-Tabelle (genutzt z.B. von CPU-Spy) und in Tools wie SetCPU richtig angezeigt werden. Diese Tabellen werden vom Modul modifiziert, deshalb ist die richtige Speicheradresse wichtig. Tests anderer User haben ergeben, dass die Adressen in ihrer Firmware abweichen.
Zuerst ermitteln wir die Adresse der Frequenztabelle. Dazu in ADB folgendes eingeben (natürlich als SU):
Code:cat /proc/kallsyms | grep -A 1 pll0_960_pll1_245_pll2_1200_pll4_800_25a
Nun noch die Time-In-State-Tabelle. Die Adresse ermittelt man ähnlich:
Code:cat /proc/kallsyms | grep -A 1 cpufreq_stats_table
Diese beiden Werte merken - wir brauchen Sie dann, wenn das Modul bei Euch nicht funktioniert.
- Nun wird's spannend! Laden des Kernel-Moduls
Startet eine adb-shell und gebt, nachdem ihr root-zugriff habt (su), den Befehl
Code:insmod /sdcard/temp/defymini_oc.ko pll2_l_val=68
Update: Das originäre insmod ignoriert (zumindest bei mir) alle Parameter nach dem ersten. Doof. Nach Installation von busybox (Play Store) kann man aber die busybox-version nutzen.:
Code:busybox insmod /sdcard/temp/defymini_oc.ko pll2_l_val=68
[*] Troubleshooting
Wenn der erste Anlauf nicht geklappt hat, dann müssen die ermittelten Adressen als Parameter übergeben werden. Das sieht dann so aus (hier mit meinen Adressen, hier müssen später Eure rein!):
Code:busybox insmod /sdcard/temp/defymini_oc.ko pll2_l_val=63 acpu_freq_tbl_addr=0xc0755bdc cpufreq_stats_tbl_addr=0xc0789134
Code:
- Prüfen, ob's geklappt hat
Ihr habt - wenn alles ok ist und Euer Kernel dem meinen halbwegs entspricht - den PLL2 nun übertaktet. Prüft die Kernel-Messages, ob alles geklappt hat. Wenn Euer Telefon bereits einen Reboot hingelegt hat, hat's wohl nicht geklappt. Falls nicht, hier der Befehl, die shell ist ja noch offen:
Code:dmesg
CPU-Spy sollte die neue Frequenz nun auch kennen:
- Modul wieder entfernen
MitCode:rmmod defymini_oc.ko
CREDITS
Dieses Modul basiert auf hervorragender Vorarbeit von
- vulian
and thus goes by another day » Blog Archive » Overclocking an Android phone running with an MSM core - Michael Huang (coolbho3k)
https://github.com/coolbho3k/vision_oc
--
Updates
2013-04-01: v0.3 hochgeladen, neuer Parameter für Kernspannung der höchsten Frequenz (vdd, Werte zwischen 1(niedrig) und 7 (hoch), default: 6
2013-03-27: v0.2 hochgeladen mit Parametern für Frequenztabellen-Adressen, Troubleshooting-Kapitel
Anhänge
-
Zwischenablage01.png473 Bytes · Aufrufe: 1.278
-
Zwischenablage02.png1,7 KB · Aufrufe: 1.333
-
2013-03-21-23-19-18.png9,3 KB · Aufrufe: 1.284
-
cpu-frequenztabelle.png1,4 KB · Aufrufe: 1.095
-
cpu-time-in-state.png1,3 KB · Aufrufe: 1.125
-
insmod.png1,3 KB · Aufrufe: 1.147
-
defymini_oc_v0.2.zip2,5 KB · Aufrufe: 141
-
defymini_oc_v0.3.zip3,5 KB · Aufrufe: 160
Zuletzt bearbeitet: