 |
11.08.2008, 02:39
|
#1 (permalink)
| | Coxito ergo sum
Registriert seit: 23.02.2007 Ort: Intensivstation
Beiträge: 7.682
| ACPI DSDT: Lüfterschwellen neu definieren? Hallo zusammen,
ich tweake derzeit ein bisschen an meinem Notebook herum. Nun wollte ich die Schwellen des Lüfters neu definieren (also z.B. x°C -> 20%, y°C -> 40% etc. pp.).
Dazu habe ich mittels Microsoft ASL Compiler v.3.0.1 die DSDT.asl aus dem ACPI herauskompiliert.
So, nun hab ich den PowerResource Block meines Notes vor mir liegen und bin mir nicht schlüssig: Code: PowerResource(C397, 0x0, 0x0)
{
Method(_STA, 0x0, NotSerialized)
{
Return(C38E(0x1, 0x64))
}
Method(_ON_, 0x0, NotSerialized)
{
If(LNot(LGreater(\C00D(), 0x3)))
{
C38F(0x1, 0x64)
}
Else
{
If(LGreater(DerefOf(Index(C38B, 0x0, )), C391(C383, 0x0)))
{
C38F(0x1, 0x64)
}
}
}
Method(_OFF, 0x0, NotSerialized)
{
C390(0x1, 0x50)
}
}
PowerResource(C398, 0x0, 0x0)
{
Method(_STA, 0x0, NotSerialized)
{
Return(C38E(0x2, 0x50))
}
Method(_ON_, 0x0, NotSerialized)
{
If(LNot(LGreater(\C00D(), 0x3)))
{
C38F(0x2, 0x50)
}
Else
{
If(LGreater(DerefOf(Index(C38B, 0x0, )), C391(C382, 0x0)))
{
C38F(0x2, 0x50)
}
}
}
Method(_OFF, 0x0, NotSerialized)
{
C390(0x2, 0x3c)
}
}
PowerResource(C399, 0x0, 0x0)
{
Method(_STA, 0x0, NotSerialized)
{
Return(C38E(0x4, 0x3c))
}
Method(_ON_, 0x0, NotSerialized)
{
If(LNot(LGreater(\C00D(), 0x3)))
{
C38F(0x4, 0x3c)
}
Else
{
If(LGreater(DerefOf(Index(C38B, 0x0, )), C391(C381, 0x0)))
{
C38F(0x4, 0x3c)
}
}
}
Method(_OFF, 0x0, NotSerialized)
{
C390(0x4, 0x28)
}
}
PowerResource(C39A, 0x0, 0x0)
{
Method(_STA, 0x0, NotSerialized)
{
Return(C38E(0x8, 0x28))
}
Method(_ON_, 0x0, NotSerialized)
{
If(LNot(LGreater(\C00D(), 0x3)))
{
C38F(0x8, 0x28)
}
Else
{
If(LGreater(DerefOf(Index(C38B, 0x0, )), C391(C380, 0x0)))
{
C38F(0x8, 0x28)
}
}
}
Method(_OFF, 0x0, NotSerialized)
{
C390(0x8, 0x0)
} Auch wenn ich kaum verstehe was genau da steht  , so ist mir doch ungefähr klar, was zu machen ist: nämlich die Hexwerte für den Prozentsatz an Lüfterdrehgeschwindigkeit ändern.
Nur sind da die Angaben, die ich gefunden habe, unterschiedlich: Unter Changing the fan speeds in the DSDT:
Bei diesem Beispiel fehlen z.B. die Else Instruktionen. Da ich das nicht verstehe, weiß ich nicht, ob der Kerl das einfach nur rausgespart hat, um den Code übersichtlicher zu gestalten. Er hat zudem nur 3 Hex-Werte pro Lüfterdrehzahl geändert. Auch hier eine geänderte DSDT. Da sind zwar die Else Instruktionen vorhanden, allerdings hat der Mensch hier 4 Hex-Werte pro Lüfterdrehzahl geändert. Wieso? ^^
Ausserdem schreibt er direkt vor der DSDT Tabelle Zitat:
Fehlendes return() Einfügen:
Method (C15F, 2, Serialized) {
[...] return()
}
Schwellentemperaturen für Lüftersteuerung ändern:
| was ich nicht zuordnen kann (weder was das ist, noch wozu es ist, noch ob es nötig ist  ).
Dass bei den Methods usw. die Cxxx verschieden sind ist nicht das Problem, das hängt mit unterschiedlichen Modellen und BIOS Versionen zusammen...
Naja, vielleicht kann das ja irgendjemand hier lesen, nachvollziehen und mir sagen, was Sache ist
LG & Dankeschön | | |
| |
11.08.2008, 10:41
|
#2 (permalink)
| | Extrem Performer
Registriert seit: 11.03.2005
Beiträge: 1.206
| AW: ACPI DSDT: Lüfterschwellen neu definieren? In dem Beispiel wurde zum dekompilieren der Intel ASL Compiler verwendet.
Lass doch mal den drüberlaufen und schaue dir das Resultat an?
Evtl. sind die Else Schleifen durch das verwenden des MS Decompilers reingerutscht?
Aber das abändern der Hexwerte sollte ja trotzdem gehen.
Also z.B. C390(0x2, 0x3c) in C390(0x2, 0x34) oder noch niedriger jenachdem. | | |
| | | Für diesen Beitrag bedankt sich: | |
11.08.2008, 20:30
|
#3 (permalink)
| | Coxito ergo sum
Registriert seit: 23.02.2007 Ort: Intensivstation
Beiträge: 7.682
| AW: ACPI DSDT: Lüfterschwellen neu definieren? Jop, das scheints zu sein.
Beim Intel Compiler muss man auch die For mel 256-2*x anwenden (wobei x der Lüfterwert zwischen 1 und 64 ist), um den korrekten Hex Wert eintragen zu können.
Beim MS Compiler haut man scheinbar einfach den dezimalen Prozentsatz als Hex Wert rein.
Hab noch ein bisschen weiter gesucht und scheinbar ist der MS für dieses Vorhaben wesentlich besser geeignet.
Na mal sehen...
LG & Danke
EDIT: So, hat alles fein geklappt. Bin happy | |
Geändert von dr_Cox (11.08.2008 um 22:01 Uhr)
|
| |
23.11.2009, 13:33
|
#4 (permalink)
| | Neuling
Registriert seit: 23.11.2009
Beiträge: 3
| AW: ACPI DSDT: Lüfterschwellen neu definieren? Hi, mein MS ASL Compiler meckert, wenn ich in die Methode das fehlende return() in nachfolgende Methode reinschreibe: Code: Method (C15F, 2, Serialized)
{
[...]
return()
} Der Compiler spuckt den Fehler aus, daß ein Parameter erforderlich ist in der return()-Anweisung.
Ich habe aber eine weitere Frage. Nachfolgend ist der relevante Ausschnitt meiner DSDT.ASL, die ich schon geändert habe
(gemäß Linux auf HP 6715s 6715b). Code: PowerResource(C397, 0x0, 0x0)
{
Method(_STA, 0x0, NotSerialized)
{
Return(C38E(0x1, 0x64))
}
Method(_ON_, 0x0, NotSerialized)
{
If(LNot(LGreater(\C00D(), 0x3)))
{
C38F(0x1, 0x64)
}
Else
{
If(LGreater(DerefOf(Index(C38B, 0x0, )), C391(C383, 0x0)))
{
C38F(0x1, 0x64)
}
}
}
Method(_OFF, 0x0, NotSerialized)
{
C390(0x1, 0x50)
}
}
PowerResource(C398, 0x0, 0x0)
{
Method(_STA, 0x0, NotSerialized)
{
Return(C38E(0x2, 0x50))
}
Method(_ON_, 0x0, NotSerialized)
{
If(LNot(LGreater(\C00D(), 0x3)))
{
C38F(0x2, 0x50)
}
Else
{
If(LGreater(DerefOf(Index(C38B, 0x0, )), C391(C382, 0x0)))
{
C38F(0x2, 0x50)
}
}
}
Method(_OFF, 0x0, NotSerialized)
{
C390(0x2, 0x3c)
}
}
PowerResource(C399, 0x0, 0x0)
{
Method(_STA, 0x0, NotSerialized)
{
Return(C38E(0x4, 0x3c))
}
Method(_ON_, 0x0, NotSerialized)
{
If(LNot(LGreater(\C00D(), 0x3)))
{
C38F(0x4, 0x3c)
}
Else
{
If(LGreater(DerefOf(Index(C38B, 0x0, )), C391(C381, 0x0)))
{
C38F(0x4, 0x3c)
}
}
}
Method(_OFF, 0x0, NotSerialized)
{
C390(0x4, 0x28)
}
}
PowerResource(C39A, 0x0, 0x0)
{
Method(_STA, 0x0, NotSerialized)
{
Return(C38E(0x8, 0x28))
}
Method(_ON_, 0x0, NotSerialized)
{
If(LNot(LGreater(\C00D(), 0x3)))
{
C38F(0x8, 0x28)
}
Else
{
If(LGreater(DerefOf(Index(C38B, 0x0, )), C391(C380, 0x0)))
{
C38F(0x8, 0x28)
}
}
}
Method(_OFF, 0x0, NotSerialized)
{
C390(0x8, 0x0)
}
}
Wenn die Temperatur über 40°C ging, war der Lüfter bei 40 %, was ich (laut jbirkhol) umgeändert habe auf 10 %.
Wenn die Temperatur über 55°C ging, war der Lüfter bei 60 %, was ich (laut jbirkhol) umgeändert habe auf 40 %.
Meine Frage ist nun, wie ich und wo genau die Werte eintragen muß, wenn ich folgendes Schema haben möchte:
Temperatur >= 40 --> Lüfter 10 % (im Moment) soll gar nicht gehen, weil
Temperatur >= 55 --> Lüfter 40% (im Moment) soll bei mir auf 10% geändert werden
Temperatur >= 65 --> Lüfter 80% (im Moment) soll bei mir auf 40% geändert werden
DANKE! | | |
| |
23.11.2009, 14:05
|
#5 (permalink)
| | Coxito ergo sum
Registriert seit: 23.02.2007 Ort: Intensivstation
Beiträge: 7.682
| AW: ACPI DSDT: Lüfterschwellen neu definieren? Ohweia is das lange her
Ich hab damals die Returns nicht reingeschrieben meine ich sondern einfach nur die dezimale Wunsch-Drehzahl in Prozent als Hex-Wert eingetragen. Wobei man beachten muss, dass manche Hex-Dez Rechner einem für 10 nur ein A und für 11 nur ein B ausgeben. Das muss man dann als 0A und 0B in die DSDTschreiben.
Die DSDT fängt am unten mit der kleinsten Lüfterschwelle an und arbeitet sich dann nach oben hoch. Oder anders gesagt: Oben findest du den Block der höchsten Lüfterschwelle, gefolgt vom Block der zweithöchsten etc. pp.
Ich könnte dir das hier hinschreiben im Code, aber was mich zurückhält sind die geplanten Werte.
10% Lüftergeschwindigkeit bei 55°C und 40% ab 65°C halte ich für absolut riskant...
LG | | |
| |
23.11.2009, 18:33
|
#6 (permalink)
| | Neuling
Registriert seit: 23.11.2009
Beiträge: 3
| AW: ACPI DSDT: Lüfterschwellen neu definieren? Zitat:
Zitat von dr_Cox Ohweia is das lange her
Ich hab damals die Returns nicht reingeschrieben meine ich sondern einfach nur die dezimale Wunsch-Drehzahl in Prozent als Hex-Wert eingetragen. Wobei man beachten muss, dass manche Hex-Dez Rechner einem für 10 nur ein A und für 11 nur ein B ausgeben. Das muss man dann als 0A und 0B in die DSDTschreiben.
Die DSDT fängt am unten mit der kleinsten Lüfterschwelle an und arbeitet sich dann nach oben hoch. Oder anders gesagt: Oben findest du den Block der höchsten Lüfterschwelle, gefolgt vom Block der zweithöchsten etc. pp.
Ich könnte dir das hier hinschreiben im Code, aber was mich zurückhält sind die geplanten Werte.
10% Lüftergeschwindigkeit bei 55°C und 40% ab 65°C halte ich für absolut riskant...
LG | Du meinst meine Werte sind, so wie ich sie eingestellt habe, in Ordnung?  Hmmm, eigtl. müßte so ein Prozessor doch locker bis 55°C ohne Lüfter auskommen - oder? | | |
| |
23.11.2009, 18:48
|
#7 (permalink)
| | Stickstoff Junkie
Registriert seit: 07.03.2005 Ort: Herbipolis
Beiträge: 4.813
| AW: ACPI DSDT: Lüfterschwellen neu definieren? Wofür wurden Lüfter erfunden?
Richtig, damit sie laufen.
Der ist ja nicht zur Kühlung der CPU vorhanden, schließlich gibt es ja auch noch eine Grafikkarte, HDD und zig andere Bauteile. | | |
| |
23.11.2009, 23:23
|
#8 (permalink)
| | Coxito ergo sum
Registriert seit: 23.02.2007 Ort: Intensivstation
Beiträge: 7.682
| AW: ACPI DSDT: Lüfterschwellen neu definieren? Ja wobei beim HP 6715 eine Heatpipe von CPU über IGP/Chipset hin zum Kühlkörper geht. Wenn man auf die Temps der beiden Komponenten achtet, kann man schon den Lüfterschwellen andere Drehzahlen zuweisen. Die HDD tangiert das bei den Geräten ganz und gar nicht.
In dem Ding werden immerhin Dual Core-Turions genauso verbaut wie Single-Core Semprons - ja nachdem was man drin hat gibt's Drosselungspotential
@vonMorgen:
Das Problem ist, dass wie gesagt bei deinem Wunsch der Lüfter bei 55°C auf 10% gehen würde. Das reicht meiner Schätzung nach niemals, um die CPU zwischen 55°C und 65°C zu halten. Der Lüfter geht dann zwar an, bewirkt aber nix wirklich, die Temp steigt weiter auf 65°C, da geht er dann auf 40%. Das ist an der Stelle immer noch zu wenig, als wird er weiter steigen auf 75°C, wo er dann die vollen dröhnenden 100% bekommt und wieder runtergeht auf 65°C.
Und das wird dann im Wechselspiel so weitergehen, dass die Temp zwischen 65°C und 75°C schwankt und der Lüfter zwischen 40% und 100%
Daher muss man das vorsichtig machen! Etwa +-5 oder +-10 Prozent pro Schwelle, am besten jede Einzeln testen, wie sie sich auswirkt und mit einkalkulieren dass es gerade nicht die wärmste Jahreszeit ist.
Ist also wie Overclocking auch.
LG | | |
| |
24.11.2009, 15:14
|
#9 (permalink)
| | Stickstoff Junkie
Registriert seit: 07.03.2005 Ort: Herbipolis
Beiträge: 4.813
| AW: ACPI DSDT: Lüfterschwellen neu definieren? Ja, Cox, das meine ich doch. 
In der Regel wird ja eine Heatpipe im Notebook verwendet, damit das Medium entsprechend heruntergekühlt wird.
Diese Heatpipe verläuft über sämtliche wichtigen, temperaturintensiven Komponenten im Notebook.
Wenn ich jetzt den Lüfter bei 10% rumdümpeln lasse, nehme ich damit logischerweise in Kauf, dass sämtliche Komponenten um einiges wärmer werden.
Deswegen sollte man an die ganze Sache vorsichtig und mit Verstand ran.
Die restliche Problematik hast du ja schon angesprochen. | | |
| |
27.11.2009, 09:57
|
#10 (permalink)
| | Neuling
Registriert seit: 23.11.2009
Beiträge: 3
| AW: ACPI DSDT: Lüfterschwellen neu definieren? Zitat:
Zitat von dr_Cox Ohweia is das lange her
Ich hab damals die Returns nicht reingeschrieben meine ich sondern einfach nur die dezimale Wunsch-Drehzahl in Prozent als Hex-Wert eingetragen. Wobei man beachten muss, dass manche Hex-Dez Rechner einem für 10 nur ein A und für 11 nur ein B ausgeben. Das muss man dann als 0A und 0B in die DSDTschreiben.
Die DSDT fängt am unten mit der kleinsten Lüfterschwelle an und arbeitet sich dann nach oben hoch. Oder anders gesagt: Oben findest du den Block der höchsten Lüfterschwelle, gefolgt vom Block der zweithöchsten etc. pp.
Ich könnte dir das hier hinschreiben im Code, aber was mich zurückhält sind die geplanten Werte.
10% Lüftergeschwindigkeit bei 55°C und 40% ab 65°C halte ich für absolut riskant...
LG | Ok.
Wie kriege ich das return ohne Parameter in die Funktion rein? | | |
| |
27.11.2009, 10:21
|
#11 (permalink)
| | Coxito ergo sum
Registriert seit: 23.02.2007 Ort: Intensivstation
Beiträge: 7.682
| AW: ACPI DSDT: Lüfterschwellen neu definieren? Keine Ahnung. Wie gesagt, hab ich das nie reingeschrieben - geklappt hat's trotzdem.
LG | | |
| |  | | Stichworte | acpi, definieren, dsdt, fan, geschwindigkeit, hexadezimal, laptop, lüfter, lüfterschwellen, notebook, powerresource, speed  | |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | | | | Themen-Optionen | | | | Ansicht | Thema bewerten | Linear-Darstellung | |
Forumregeln
| Es ist dir erlaubt, neue Themen zu verfassen. Es ist dir erlaubt, auf Beiträge zu antworten. Es ist dir nicht erlaubt, Anhänge hochzuladen. Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten. HTML-Code ist aus. | | | Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr. | | |