Kernel-Werkstatt / ICS Kernel-Diskussion

marcero schrieb:
... ich raff nicht, an welcher Stelle im Quellcode während des wakeups der Bildschirm angeht. Wenn mir das jemand sagen könnte...

board-smba1002-gpu.c

smba1002_backlight_notify

Panel,LVDS Controler und Backlight müssen eigentlich in der vom Hersteller
vorgegebenen Sequenz mit vorgegebenen Pausen ein/ausgeschaltet werden.
Bisher scheint das ohne Pausen zu geschehen.
Daher vermutlich auch die Bildstörungen beim einschalten.
 
Nur mal ein Update für Marcero.
Dein Kernel läuft jetzt seit fast 3 Tagen durchgängig ohne Probleme auf 1504MHZ, Noop und Performance.
 
antibyte schrieb:
board-smba1002-gpu.c

smba1002_backlight_notify

Panel,LVDS Controler und Backlight müssen eigentlich in der vom Hersteller
vorgegebenen Sequenz mit vorgegebenen Pausen ein/ausgeschaltet werden.
Bisher scheint das ohne Pausen zu geschehen.
Daher vermutlich auch die Bildstörungen beim einschalten.

Wie genau funktioniert das denn mit den WAKE Keys.

Ich denk mal der QuellcodeTeil der für die Eingabegeräte-Steuerung zuständig ist, registriert das Klicken auf den PowerKnopf, für diesen ist hinterlegt, dass es ein "WakeKey" ist und deswegen werden Befehle für die Aufwachroutine ausgeführt. Aber wo beginnt das ganze??
Irgendwo muss ja auch die state_store() Funktion aus der /kernel/power/main.c aufgerufen werden. Tut sie aber nicht. Also vermute ich das irgendwo /sys/power/state geändert wird, wodurch die Methode laut dem was ich gelesen habe automatisch ausgeführt wird.

Leider ist dieser Quellcode strukturiert wie ein Schweizer-Käse und ich finds nicht...

Zu Debuggen der Aufwachroutine wär halt gut zu wissen, wo diese losgeht. Oder gibts ne Möglichkeit Stack-Traces auszugeben ohne das das Programm abstürzt? Wenn ich nämlich nen Absturz erzwinge um in der shell nen stacktrace zu sehen, geht bei der Aufwachroutine natürlich der Bildschirm nicht mehr an. Ich hab aber im Moment keine Lust adb zum laufen zum bringen..:tongue:

EDIT: So noch eine Anfrage von meiner Seite.
Das Problem an dem zweimal drücken müssen zum Aufwachen ist sehr seltsam.
Wenn sich das System im Deepsleep befindet, löst das drücken des Powerbuttons das Aufwachen aus, aber der Bildschirm geht nich an, weil aus irgendeinem Grund die late_resume Methode nicht ausgeführt wird. (Die ist nach meinem Verständnis das Analogon zu early_suspend und jeweils für das Aus- un Anschalten des Bildschirms und diverser anderer Geräte zuständig, die während des Standbys nicht ausgeführt werden.
Für die wakelocks gibt es diverse Ereignisse, die dafür sorgen, dass wenn wakelocks ablaufen etc, das System in einen Suspend-Zustand geht. Hierzu werden Ereignisse in einer Queue erzeugt.
Das Ereignis für den late_resume wird ebenfalls in diese Queue eingereiht sofern angefordert.

Bei den Tastenevents (wie Powertaste) wird beim Drücken ein wakelock event erzeugt, welches während der Aufwach-Routine aktiv ist. Dieses wird irgendwann während des Aufwachens getötet und damit ein neues Suspend-Signal in diese Queue eingereiht. Hierdurch fällt das System direkt wieder in einen Deepsleep ohne die late_resume Routune auszuführen.
Dieses neue Suspend-Signal hab ich unterdrückt und damit fällt es auch nicht mehr zurück in den DeepSleep. Aber die late_resume-Methode wird auch nicht eingereiht, aber ich hab keine Ahnung warum.

Drückt man ein zweites mal auf den Powerbutton wenn das Tab noch nicht zurück im DeepSleep ist, wird diese Methode eingereiht und das Tablet wacht auf. Auch wenn man die Power-Taste lange genug drückt passiert das.

Wenn ich nun versuche die late_resume-Methode nach nem DeepSleep von Hand aufzurufen, krieg ich nen SOD, also nichts geht mehr und ich muss den Reset-Knopf drücken. Da stürzt vermutlich irgendwas hab oder was auch immer.

Irgendwelche Tipps??

Edit2: Im Endeffekt und wegen mangelnden Wissens würde ich sagen, dass die Ursache ein zu kurzes KeyEvent ist, das mit loslassen der Powertaste abgebrochen wird.
Irgendwie muss das Tablet auch unterscheiden ob es sich um einen wakeup handelt bei dem es den Bildschirm anmacht. Der Deepsleep wird schließlich auch für die Überwacnung der Systemzeit wegen möglichen Weckern unterbrochen. Dabei wird der Bildschirm ja auch nicht aktiviert und das Tab geht direkt wieder schlafen.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Freakandr0id, cantax und papa-nundo
marcero schrieb:
Wie genau funktioniert das denn mit den WAKE Keys.

...

Irgendwelche Tipps??

Nein, leider keine Tipps. Aber ich finde es super, dass sich mal jemand analytisch mit diesem ewigen Ärgernis auseinandersetzt. Viel Erfolg!
 
Da hast du dir eine Menge Arbeit gemacht marcero.
Es sieht für mich danach aus, als würde es einen Grund dafür geben, dass die late_resume-Methode nicht mehr in die Queue eingereit wird.
Eben weil es einen SoD gibt wenn du sie per Hand ausführst.
Ohne jemanden der sich richtig gut mit dem Quellcode auskennt wird es vermutlich schwer einen Grund dafür zu finden.
 
Ok ein kleines Update von mir:

drh4hanns12.2oc3.zip

Changelog:
- da viele der neuen Governor in meinen Augen Probleme machen, habe ich sie in dieser Version entfernt.
Da der Kernel so eingestellt ist, dass er beim Suspend in den conservative Governor wechselt, lohnt sich einiges in meinen Augen auch nicht (wie besipielsweise smartassv2, der sich im Betrieb anders verhält als im Suspend.)

- leicht modifizierte Aufwachroutine
Zwar immer noch kein Aufwachen mit einem Klick, da ich die Ursache nicht finden konnte und mir wahrscheinlich Kenntnisse fehlen, aber mit einem Doppelklick sollte das Tablet jetzt immer(!) aufwachen. Hatte da vorher auch oft Probleme, dass der Zeitabstand zwischen den Klicks stimmen musste.


Mit dieser Lösung kann ich (und ich hoffe andere auch :tongue:) leben, weshalb ich vermutlich keine weitere Zeit reininvestieren werde.

EDIT: Für den Betrieb empfehle ich übrigens interactive, bei mir ruckelfrei und nicht immer auf höchster Frequenz wie performance und insofern batterieschonender.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: n8oid, kassandro, ricoshe und 5 andere
Danke, werde ich dann gleich, wenn ich von der Arbeit komme testen.

Kann man Dir und Antibyte für eure harte Arbeit eigentlich mal was gutes tun?
 
Du kannst ja meine Masterarbeit zu Neutrinophysik schreiben. *g*
Aber ich glaub ich mach das lieber selber. :)
 
Hab's geflasht und läuft super! Fahre jetzt unter 1408! :)

tapatalked with my Hannspad
 
marcero schrieb:
Du kannst ja meine Masterarbeit zu Neutrinophysik schreiben. *g*
Aber ich glaub ich mach das lieber selber. :)
Ok mache ich, aber da muss ich morgen erst einmal gut frühstücken :):)


So mal ein kleines Update.
Quadrant mit dem neuen Kernel 3499 Punkte.
Pad scheint gleichmässiger zu laufen, da ich sonst immer mal ausrutscher nach unten mit 2700 oder so hatte. Jetzt konstant auf 3300 bis 3500.

Antutu 7485. Mühsam ernährt sich das Eichhörnchen.
 
Zuletzt bearbeitet von einem Moderator:
Hmmm... also ich musste doch wieder zurück auf den 12er gehen.
Mit dem 12.3er (1408, performance bzw. interactive) hatte ich einen spontanen Neustart und danach einen Freeze, der sich nur durch die Reset-Taste beheben lies...
 
Wieso zurückgehen, kannst doch als max 1200 einstellen ;-)
Ich kann leider schlecht Spannungen zu Frequenzen von euch(bisher du und funtron) testen, da ihr andere Boards habt als ich. ->Andere default Spannungen
 
hi werde es heute noch testen 12.2oc3:smile:
so getestet bleibt im grünen Hannspree logo hängen habe dann noch mal wipe cache und wipe dalvik cache gemacht und jetzt noch mal full wipe habe ja noch ein backup zum wiederherstellen ;-)
nein Bootet nicht durch nur Hannspree logo mache erst mal die 12.2 drauf die läuft bis 1200 mhz
 
Zuletzt bearbeitet:
Hab mal auch den neuen Kernel getestet, ohne wipen, einfach nur drübergeflasht.....bisher läuft alles rund auf 1408 OC und bisher keine Abstürze, SoD oder sonstiges. Tablet wacht auch jetzt meistens aus den standby auf, nach neustart......bisher gelungen der Kernel!

Liegt es an ICS das das Pad mehr strom braucht? Hatte bei Honeycomb ein längere Standby Zeit als bei ICS.
 
So da ich nicht weiß, was bei wem wo hakt und warum, dürft ihr jetzt testen :D

Standard-Version:
drh4hanns12.2oc4.zip
changelog: geringfügige Änderung in der wake-routine, die in der oc3 noch nicht so lief wie ich wollte, besseres Aufwachen, etwas geringere Laufzeit (erwartet)
wann zu benutzen/when to use:
Wenn 12.2oc3 "fehlerfrei" läuft, könnt ihr euch selbst überlegen ob ihr da bleibt oder auf oc4 geht
If 12.2oc3 runs without problems, you can stay on oc3 or go to oc4 your choice :winki:



Test-Versionen:
Codename: 1408at1275 & 1408at1300
test_1408at1275.zip
test_1408at1300.zip
changelog: höhere Spannung bei 1408 / increased voltages at 1408
wann zu nutzen / when to use:
einfrieren @ 1408, freezes while running @ 1408

Codename: BootTest
test_BootTest.zip
changelog: anderer Standard-Governor / changed default governor
wann zu nutzen / when to use:
hängt im Bootlogo, stuck on bootlogo

Codename: increasedLowFreq
test_increasedLowFreq.zip
changelog: tiefste Frequenz angehoben (auch während suspend) / higher minimal frequency (on suspend too)
wann zu nutzen / when to use:
SOD im DeepSleep, SOD while in DeepSleep

Codename: noDeepSleep
test_noDeepSleep.zip
changelog: DeepSleep außer Kraft gesetzt, no DeepSleep
Dadurch wesentlich höherer Batterieverbrauch wenn Bildschirm aus.
wann zu nutzen / when to use:
SOD im DeepSleep, SOD while in DeepSleep.
 
  • Danke
Reaktionen: antibyte, pilot64, Freakandr0id und 2 andere
Fette sache. Gleich mal testen...
 
Zuletzt bearbeitet von einem Moderator:
12,2oc2 boot ja

ab 12,2oc3 boot nein
 
kann man in die build.prop auch die genau bildschirmauflösung integrieren nicht nur dpi=120 sondern vsize 1024 hsize 600 oder so änlich...

ist das möglich???

greetz:thumbup::thumbup::thumbup:
 
Da mein mein Hanns nicht in den Tiefschlaf will: Was habt ihr den ROM Controls unter
PM sleep mode und
Wifi scan interval

eingestellt?

Thanks, droinad
 
essay23 schrieb:
kann man in die build.prop auch die genau bildschirmauflösung integrieren nicht nur dpi=120 sondern vsize 1024 hsize 600 oder so änlich...

ist das möglich???

greetz:thumbup::thumbup::thumbup:

du kannst es ja mal versuchen das sind die Werte:
ro.sf.widthpixels=1024
ro.sf.heightpixels=600
ro.sf.lcd_density.xdpi=160
ro.sf.lcd_density.ydpi=160
ro.sf.lcd_density = 120

Der ursprüngliche Beitrag von 07:54 Uhr wurde um 07:56 Uhr ergänzt:

droinad schrieb:
Da mein mein Hanns nicht in den Tiefschlaf will: Was habt ihr den ROM Controls unter
PM sleep mode und
Wifi scan interval

eingestellt?

Thanks, droinad

mein Wifi Scan interval steht auf 15 und bei PM sleep mode hab ich nichts eingestellt.
 

Ähnliche Themen

L
Antworten
1
Aufrufe
1.209
slickor
slickor
4dro1d
  • Angepinnt
  • 4dro1d
Antworten
15
Aufrufe
25.855
pepadk
P
Lecter
Antworten
102
Aufrufe
23.287
red-orb
red-orb
Zurück
Oben Unten