[Custom_Kernel][OC][!Nur_für_Verrückte!]A210 4.1.1

  • 174 Antworten
  • Letztes Antwortdatum
Status
Für weitere Antworten geschlossen.
das ist ja wieder der von gestern <6>[ 0.000000] Initializing cgroup subsys cpu <5>[ 0.000000] Linux version 3.1.10+ (mv@mv-Aspire-5755G) (gcc version 4.4.3 (GCC) ) #38 SMP PREEMPT Sun Jan 20 15:33:31 CET 2013 <4>[ 0.000000] CPU: ARMv7

kannst du denn von vorhin testen?
Datum von Heute muss drin sein, sonst hab ich den falschen hochgeladen.
 
anscheinend der falsche,beide haben die gleiche dateigröße.
(Alter und der von gradeben.)
Gruß

Der letzte versuch für Heute..dann an die Hausaufgaben setzen. xD
 
Kannst Du biite das gleiche nochmal mit diesem boot.img testen?

CRC32: 95834303
MD5: 2798C999A80B7F125AF7D21D730AE1F7
SHA-1: D98A8B9EAEC344D720C60AA276B3CF89B322DDFC

Danke

Uwe
 
Lad nochmal hoch, die Images sind gleich groß (is ja nix zusätzliches drin)
Muss das am Anfang stehen:
root@android:/ # cat /proc/kmsg
<6>[ 0.000000] Initializing cgroup subsys cpu
<5>[ 0.000000] Linux version 3.1.10+ (mv@mv-Aspire-5755G) (gcc version 4.4.3 (GCC) ) #46 SMP PREEMPT Mon Jan 21 21:56:18 CET 2013

und ein bischen weiter unten hoffentlich das:
<6>[ 0.000000] Tegra3: CPU Speedo ID 13, Soc Speedo ID 2
<6>[ 0.000000] Tegra Revision: A03 SKU: 0x83 CPU Process: 3 Core Process: 0
 

Anhänge

  • boot_oc_initd_a210.img.zip
    4,3 MB · Aufrufe: 103
Jetzt sollte es doch gehen oder? die ids passen.
...
Tegra3: CPU Speedo ID 13, Soc Speedo ID 2 <6>[ 0.000000] Tegra Revision: A03 SKU: 0x83 CPU Process: 3
 
jap geht..muss man jetzt bei jeder neuen android version den kernel mit zwei verschiedenen id's machen?
Werd ihn mal paar tage ansehen..hab jetzt schon eine bemerkbar bessere Performance.

Quadrant : 5309 Punkte..krass
 
Das bei Vetzki's boot.img und bei meinem das gleiche kommt:
Code:
<3>[0.000000]**************************************************** 
<3>[0.000000]****************************************************  
<3>[0.000000] * tegra3_speedo: CPU speedo value 345 out of range *  
<3>[0.000000]**************************************************** 
<3>[0.000000]****************************************************
lässt mich an download-Fehler nicht mehr glauben...

Da muß es einen Unterschied zwischen Tabs geben???:ohmy:

Uwe

Der ursprüngliche Beitrag von 22:28 Uhr wurde um 22:30 Uhr ergänzt:

Vetzki schrieb:
Jetzt sollte es doch gehen oder? die ids passen.
...
Tegra3: CPU Speedo ID 13, Soc Speedo ID 2 <6>[ 0.000000] Tegra Revision: A03 SKU: 0x83 CPU Process: 3

Was hast Du geändert??
 
@Uwe
Wie vorhin geschrieben, hats wohl gefixt.
Warum akool aber ursprüngl. die 1 hat????
 
Kanns dran liegen,das ich das Tablet schon am Marktstart hatte?
(01.September2012)
 
@Uwe
tegra3_speedo.c

Zeile 439: cpu_process_id = 3;// fix Org iv -1;
Zeile 450: cpu_speedo_id = 13; // fix Org 1

Edit:
Ich hab meins auch um die Zeit gekauft (~10.09.2012)
 
Zuletzt bearbeitet:
komisch..
kann man universelle kernel bauen oder is dies nich möglich?
 
@Uwe
Hab 2 Posts drüber nochmal editiert.
 
Danke jetzt habe ich es kapiert, werde heute nacht code lesen...

Grüsse Uwe
 
Moin, sorry, hatte heute nicht wirklich Zeit um zu testen, hab testweise mal den letzten hier geposteten Kernel raufgejagt... geht auch nicht...

Im Übrigen müsst ihr keine 2 Kernel mehr bauen... der vom A210 tuts bei mir genauso... auch 3G geht... hab aktuell Uwes Samba Kernel am laufen :laugh:
 
Vetzki schrieb:
@Uwe
tegra3_speedo.c

Zeile 439: cpu_process_id = 3;// fix Org iv -1;
Zeile 450: cpu_speedo_id = 13; // fix Org 1

Edit:
Ich hab meins auch um die Zeit gekauft (~10.09.2012)

Habe mir Deinen Fix angeguckt :thumbup:

Dennoch wüßte ich gerne, was dahinter steckt...

Code:
    for (iv = 0; iv < CPU_PROCESS_CORNERS_NUM; iv++) { //[COLOR=Red]Entweder ist CPU_PROCESS_CORNERS_NUM = 0 [/COLOR]
        if (cpu_speedo_val <
            cpu_process_speedos[threshold_index][iv]) { //[COLOR=Red]oder diese bedingung schlägt zu und wir fliegen mit break aus der Schleife[/COLOR]
            break;
        }
    }//[COLOR=Red]Wenn eines von beiden zutrifft, ist iv = 0;[/COLOR]
    cpu_process_id = iv -1; // [COLOR=Blue]Hier setzt Vetzki auf 3 [/COLOR][COLOR=Red][COLOR=Black];[/COLOR] cpu_process_id wird hier ggf zu -1, aber nur vorher was schief läuft[/COLOR]

    if (cpu_process_id == -1) {
        pr_err("****************************************************");
        pr_err("****************************************************");
        pr_err("* tegra3_speedo: CPU speedo value %3d out of range *",
               cpu_speedo_val);
        pr_err("****************************************************");
        pr_err("****************************************************");

        cpu_process_id = INVALID_PROCESS_ID;
        cpu_speedo_id = 1; //[COLOR=Red]Wenn Du oben cpu_process_id auf 3 gesetzt hast, ist hier keine Änderung nötig, da man hier nicht hinkommt;[/COLOR]
    }
Sicher kann man mit Deiner Änderung von Zeile 439 das Problem abwenden, aber ich glaube, das Problem entsteht schon weiter vorne, das will ich noch genauer untersuchen. Ich denke nVidia hat diese Zeile mit einem bestimmt Grund eingefügt...

Vielleicht kann ich verhindern, das eine der beiden Abbruchbedingungen zuschlägt. Ich habe sonst das Gefühl, daß wir eine Sicherung rausziehen...

Grüsse Uwe
 
Zuletzt bearbeitet von einem Moderator:
Habe folgendes rausgefunden:

Der CPU speedo value und der Core speedo value werden über den APB Bus vom Board gelesen (apbio.c). Ich habe eine Ausgabe in den Kernel eingebaut, um diese zu ermitteln:

Code:
cpu_speedo_val  :  Uwe:387  Akool:345
core_speedo_val :  Uwe:221  Akool:???
dann werden die Prozessor Werte abgefragt (in der von uns geänderten Funktion rev_sku_to_speedo_ids:

Code:
cpu_speedo_id   :  war:7  ist:13
soc_speedo_id   :  war:1  ist:2
threshold_index :  war:10 ist:14
Nun werden die cpu_process_speedos abhängig vom threshold_index genommen:

Für den alten threshold (10):
Code:
/* T30 'L' family */
    {295, 336, 358, 375, 391, UINT_MAX}, /* [10]: cpu_speedo_id 7: T30L  */
Für den neuen threshold (14):
Code:
/* T37 family */
    {358, 358, 358, 358, 397, UINT_MAX}, /* [14]: cpu_speedo_id 13: T37 */
und gezählt, wieviele kleiner als der cpu_speedo_val sind:

Code:
    for (iv = 0; iv < CPU_PROCESS_CORNERS_NUM; iv++) { 
        if (cpu_speedo_val <
            cpu_process_speedos[threshold_index][iv]) {
            break;
        }
    }
Ergibt:

Code:
Ohne OC : Uwe:4 Akool:2
Mit  OC : Uwe:4 Akool:0
Das führte bei Akool zu dem beobachteten Problem und beantwortet auch die Frage:

Vetzki schrieb:
Warum akool aber ursprüngl. die 1 hat????

Im weiteren Verlauf wird das gleiche auch mit den core_process_speedos gemacht:

Für den alten threshold (10):
Code:
/* T30 'L' family */
    {180}, /* [10]: soc_speedo_id 1: T30L */
Für den neuen threshold (14):
Code:
/* T37 Family*/
    {210}, /* [14]: soc_speedo_id 2: T37 */
Auch hier wird gezählt (0 oder 1):

Code:
    for (iv = 0; iv < CORE_PROCESS_CORNERS_NUM; iv++) {
        if (core_speedo_val <
            core_process_speedos[threshold_index][iv]) {
            break;
        }
    }
Ergibt:

Code:
Ohne OC : Uwe:1 Akool:1(? muss wohl so sein, sonst gäbe es Probleme)
Mit  OC : Uwe:1 Akool:1(? muss wohl so sein, sonst gäbe es Probleme)
Da wir z.Zt nicht wissen, was für core_speedo_val Werte noch auftreten können, sollte man das auch schon mal im Kernel fixen.

Ich persönlich würde auf Grund der neuen Erkenntnisse nicht erst das Ergebnis der Abzählung verändern, sondern direkt die cpu_speedo_val und core_speedo_val von Hand setzen

Ich würde daher die Zeile 429 abändern.
Code:
    cpu_speedo_val = 387; core_speedo_val = 221;
Die Alternative Möglichkeit ist die Änderung in Zeile 439:

Code:
    cpu_process_id = 3;
die dann sicherheitshalber auch in Zeile 459 nachgezogen werden sollte (um evtl core_speedo_val Werte kleiner als 210 abzufangen:

Code:
    core_process_id = 0;
Ich hoffe, dass wir auf diese Weise einen Kernel erzeugen können, der für alle Boards funktioniert...

W!ildGunM@n schrieb:
Im Übrigen müsst ihr keine 2 Kernel mehr bauen... der vom A210 tuts bei mir genauso... auch 3G geht... hab aktuell Uwes Samba Kernel am laufen

Also auch für das A211...

Grüsse Uwe

Der ursprüngliche Beitrag von 03:46 Uhr wurde um 04:18 Uhr ergänzt:

Ich habe jetzt einen Kernel gebaut, der die o.a. Erkenntnisse beinhaltet.(Großen Dank an Vetzki, der das Problem bei Akool erkannt hat:thumbup:)

Ich habe auch die Option beim build gesetzt, dass die CPU Temperatur überwacht werden soll, und wenn sie kritisch wird, der Kernel runtertakten soll. (Ich weiß leider nicht, ob das auch funktioniert, bei mir wurde er noch nicht zu heiß).

Und cifs ist natürlich auch mit drin...

Ich übernehme keine Garantie für eventuelle Schäden durch die Verwendung dieses Kernels. Verwendung auf eigene Gefahr!

Der Kernel steht hier zum download: boot.img

CRC32: 583F2D17
MD5: 889A2C77D50F8CF893FDEE3772FC7E2A
SHA-1: 45130CD432157B4FE072E2C3CA24C75FCD6E3011

Grüsse Uwe

Der ursprüngliche Beitrag von 04:18 Uhr wurde um 04:32 Uhr ergänzt:

Ich habe in den Kernel noch ein paar zusätzliche Meldungen beim booten eingebaut:
Code:
<6>[    0.000000] tegra_init_speedo_data CPU speedo value 387
<6>[    0.000000] tegra_init_speedo_data Core speedo value 221
<6>[    0.000000] tegra_init_speedo_data Overridden CPU speedo value 387
<6>[    0.000000] tegra_init_speedo_data Overridden Core speedo value 221
<6>[    0.000000] tegra_init_speedo_data Predefined cpu speedo value 358
<6>[    0.000000] tegra_init_speedo_data Predefined cpu speedo value 358
<6>[    0.000000] tegra_init_speedo_data Predefined cpu speedo value 358
<6>[    0.000000] tegra_init_speedo_data Predefined cpu speedo value 358
<6>[    0.000000] tegra_init_speedo_data Predefined cpu speedo value 397
<6>[    0.000000] tegra_init_speedo_data Predefined core speedo value 210
Gleich danach kommen die interessanten Standard-Ausgaben:
Code:
<6>[    0.000000] Tegra3: CPU Speedo ID 13, Soc Speedo ID 2
<6>[    0.000000] Tegra Revision: A03 SKU: 0x83 CPU Process: 3 Core Process: 0
Das könnte ganz interessant sein, welche cpu_speedo_val und core_speedo_val auftauchen.

Wäre nett, wenn evtl User kurz nach dem booten mit

Code:
su
cat /proc/kmsg > /sdcard/kmsg.txt
das auslesen und die Werte hier posten...

Danke Uwe
 
Zuletzt bearbeitet von einem Moderator:
  • Danke
Reaktionen: W!ldGunM@n und vetzki
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

R
Antworten
0
Aufrufe
1.767
rbe76
R
acwob
Antworten
1
Aufrufe
3.048
acwob
acwob
C
  • crisul1961
Antworten
3
Aufrufe
3.030
Sleepwalker
S
Zurück
Oben Unten