[AML] Lüftersteuerung per ACPI

Grantig

Captain
Registriert
Okt. 2008
Beiträge
3.552
Hi,

ich habe mir vor kurzem das HP ProBook 6465b gekauft und bin auch super zufrieden damit.
Das einzige was mich stört ist, dass der Lüfter auch im Idle immer läuft, obwohl die Temps es wohl zulassen würden den Lüfter ganz auszuschalten.
Der Lüfter ist zwar nicht nervig, aber ich würde trotzdem gerne ausprobieren ob auch die passive Kühlung ausreicht.

Leider erkennt keine Software meinen Lüfter, nichtmal die RPM können ausgelesen werden.


Mit ein bisschen Suchen bin ich aber auf dieses Tutorial gestoßen: klick

Ich hab jetzt meine DSDT erfolgreich disassembliert, kann aber kein Package finden, das aufgebaut ist wie das aus dem Tutorial.
Ich hab mir sogar ein kleines Tool geschrieben um die relevanten Packages aus der .dsl Datei rauszufiltern (siehe Anhang), aber die einzigen die passen könnten sind in dem Block Device(PATA) definiert, was ja wohl eher dagegen spricht, dass es Werte für die Lüftersteuerung sind(?).


Ich hoffe irgendwer hat ein bisschen Ahnung von AML und kann mir auf die Sprünge helfen, denn ich versteh dank der teilweise kryptischen Bezeichnungen nur Bahnhof :(
Ich hab mal meine .dsl Datei angehängt (lässt sich einfach im Editor öffnen).
Mit meinem DSLAnalyzer könnt ihr auch mal die .dsl Datei laden, evtl. hilft das weiter.

Wäre nett wenn sich das jemand mal anschaut und mir helfen kann bzw. mir sagt, wo ich ansetzen muss.
 

Anhänge

  • DSLAnalyzer.zip
    5,5 KB · Aufrufe: 1.119
  • DSDT.zip
    79,8 KB · Aufrufe: 1.124
Zuletzt bearbeitet:
Du solltest einfach
echo 0 > /proc/acpi/fan/FAN/state eingeben koennen oder
echo level 0 > /proc/acpi/fan/FAN/state

Mit cat /proc/acpi/fan/FAN/state kannst du den state auslesen. Weiss die Werte jetzt nicht aus dem Kopf, aber google kann dir dabei wohl helfen.
 
unter welchem system arbeitest du? welche programme hast du getestet? lüftersteuerung muss nicht im acpi katalog eingetragen sein. oft findet man die nur über nen lowlevel bus scan.
 
Danke für die Antworten :)

@FreddyMercury
Es is leider kein Linux drauf (und ist auch nicht geplant).

@IceMatrix
Es geht um Win 7 Pro x64.
Ausprobiert hab ich bis jetzt Speedfan und HWInfo64 (kann bei einigen HP Notebooks auch Lüfter steuern)
NHC gibts ja leider (noch) nicht für 64bit Windows.

lüftersteuerung muss nicht im acpi katalog eingetragen sein.
Anscheinend ist sie eingetragen.
Ich hab mal mit dem Acpi Object Explorer
(gehört zu NHC, zu finden auch in dem Tut, wozu ich den Link im Startpost gepostet hab) nachgeschaut.
Unter Thermal Zone Objects gibts da jede Menge Packages, Methoden usw.
Jetzt muss ich nur noch raffen was die ganzen Sachen machen.

Ein Package sieht besonders interessant aus:
Code:
        Name (TRPC, Package (0x05)
        {
            Package (0x04)
            {
                0x60, 
                0x62, 
                0x66, 
                0x80
            }, 

            Package (0x04)
            {
                0x5F, 
                0x66, 
                0x80, 
                0x80
            }, 

            Package (0x04)
            {
                0x80, 
                0x80, 
                0x80, 
                0x80
            }, 

            Package (0x04)
            {
                0x80, 
                0x80, 
                0x80, 
                0x80
            }, 

            Package (0x04)
            {
                0x32, 
                0x37, 
                0x80, 
                0x80
            }
        })

Mir erschließt sich nur noch nicht ganz was die Werte machen.
Hat jemand ne Idee? :)


Edit: Die Code Tags haben ja neuerdings Syntax Highlighting. Find ich super^^
 
Zuletzt bearbeitet:
Nope, es zeigt mir nur unter ACPI Devices 5 "ACPI Thermal Zone" Einträge an.
Ich hab mir gedacht das könnten Temperaturbereiche sein, bei denen der Lüfter hochdreht/runterdreht/stoppt usw. (quasi eine 'Temperaturbereich <--> Lüfterdrehzahl' Tabelle)

Was mir auffällt:
Das TRPC Package (siehe Post über dir) besteht aus 5 weiteren Packages --> evtl. Werte der 5 ACPI Thermal Zones?

Wenn ich dort also eigene Werte eintragen könnte, könnte ich so die Lüftersteuerung beeinflussen.


Könnte das klappen oder bin ich auf dem Holzweg?
 
Zuletzt bearbeitet:
Die Lüftersteuerung wird normalerweise direkt in Hardware implementiert. Welcher Chip verbaut ist sieht man bei HwInfo normalerweise in der Toolbar auf dem Sensors Button. Lass mal lieber die Finger weg von ACPI.
 
Ich hab natürlich auch unter Sensors geschaut ;)
HWInfo erkennt leider keinen Lüfter Sensor/Chip. Wie schon gesagt, ich habe bis jetzt kein Programm gefunden, dass mir die Lüfterdrehzahl ermitteln kann.

Die Lüftersteuerung wird normalerweise direkt in Hardware implementiert
Also unveränderlich?
Das kann aber zumindest nicht bei allen Notebooks der Fall sein?! Oft verbessern doch die Hersteller die Lüftersteuerung per BIOS Update.
Und hier hats ja auch geklappt die Drehzahlen zu beeinflussen: HP 615 - Lüfter ruhigstellen! Tutorial und Software..
Deswegen habe ich die Hoffnung dass das auch bei meinem Notebook möglich ist.


PS: Ich weiß ich kann mir einiges verbocken, wenn ich einfach so in der DSDT rumpfusche, deswegen frage ich ja vorher und versuche erstmal die Funktionsweise zu verstehen, bevor ich irgendeinen Mist mache. ;)
 
Kannst du bitte die unassemblierte dsdt.AML Datei hochladen. Werde dann mal schauen, was ich machen kann.
 
Hab jetzt ein BIOS Update gemacht, aber an der Lüftersteuerung scheint sich nichts verbessert zu haben.
Hab mal die aktuelle Version (assembliert + disassembliert) gepackt (siehe Anhang).

@tholeng:
Wenn du es hinbekommst wäre das wirklich genial.
Wenn du mir dann noch sagst, was du genau verändert hast, dann bist du ein Held :D
 

Anhänge

  • dsdt.zip
    125,1 KB · Aufrufe: 448
Habe wahrscheinlich die Information für die Lüftersteuerung gefunden.

Der oberste Wert ist mit Hex 99 (Dec 153) ungewöhnlich. Könnte mir aber vorstellen, dass HP die übliche Zahl Hex 64 (Dec 100) bewusst geänder hat, um es schwieriger zu machen, die Lüfterinformationen zu finden.

Den Beschrieb für die Aenderung findest du hier:

http://www.notebook-treff.de/notebo...dere-bei-hp-8510p-8510w-und-anderen/?7b00dacb

Wenn du die Steuerwerte reduzierst, so mussst du die Checksumme um die entsprechenden Werte erhöhen (immer im Hex Fromat). Falls der Wert dreistelling werden sollte, so benütze nur die letzten beiden Ziffern.

Zur Sicherheit empfehle ich dir einen bootfähigen USB-Stick mit dem aktuellen BIOS zu Seite zu legen.

Viel Erfolg.
 

Anhänge

  • HP_6465b_DSDT_Fan.png
    HP_6465b_DSDT_Fan.png
    7,1 KB · Aufrufe: 530
  • HP_6465b_DSDT_Checksum.png
    HP_6465b_DSDT_Checksum.png
    5,6 KB · Aufrufe: 474
Vielen Dank! :daumen:

Ich werde erst am Wochende ausprobieren obs klappt, da ich vorher auf mein Notebook nicht verzichten kann.
Ich meld mich dann nochmal hier...
 
So, habs jetzt ausprobiert. Leider war ich nicht erfolgreich :(

Ich hab die Werte so angepasst:
20 --> 00
22 --> 1E
34 --> 28
47 --> 3D
99 --> 99

Checksumme: DA --> 14

Hab dann die Table mit MS ASL Compiler 4.0 geladen --> kein checksum error, laden war erfolgreich.
Aber es gab keine Veränderung nach dem Reboot.

Hab ich was falsch gemacht?
Oder waren es einfach die falschen Werte die ich verändert habe?
Ich werd mal schaun ob ich evtl. andere mögliche Werte finde...


Falls noch jemand ne Idee hat, wo mein Fehler liegt, bzw. welche Werte ich verändern muss, immer her damit :D
 
Hast du mittlerweile was rausgefunden? Undervolten und begrenzen auf 1,2 GHz sorgen zwar dafür, dass der Lüfter selten hochdreht, aber zufriedenstellen ist das noch nicht.

Das Problem ist, dass die Zieltemperatur scheinbar auf 40° eingestellt ist, was bisschen witzlos ist. Ich habe vor einigen Monaten die beiden zuständigen Register im Lüftercontroller identifiziert, eines für die Ist-Geschwindigkeit und eines für die Soll-Geschwindigkeit. Die Regelung ist problemlos möglich, nur leider werden Werte unter dem normalen Idle-Wert einfach ignoriert. Allerdings müsste sich der Lüfter auch komplett deaktivieren lassen, bei mir geht er erst nach ein paar Minuten an.

Code:
ACPI Label:
0x2E: FRDC - Fan Read (?) Cycle
0x2F: FTGC - Fan Target Cycle

Regelung EC-Register 2F
FF Init, schaltet automatische Steuerung ein
2F Lüfter schnell
58 Lüfter langsam
 
Ist-Wert EC-Register 2E
2F Lüfter schnell
58 Lüfer langsam

Automatische Regelung 0x2E 0x2F (Min. Temp. für Stufen)
Idle, 45°, 55°, 60°

Die Temperaturwerte habe ich weder in Celcius noch in Fahreinheit im ACPI Code gefunden. Eigentlich müssten da die Grenzen initialisiert werden.

Bitte nur mit nachahmen, wenn solides Wissen vorhanden ist! Fehlerhafte Werte können Hardware und Daten gefährden!
 
Zuletzt bearbeitet:
Nö ich bin auch nicht weiter als du.

Undervolten und die Lastschwelle hoch setzen, damit das Teil möglichst lange im P6 bleibt, mehr hab ich auch nicht gemacht.
Mit RW Everything hab ich mir angeschaut, was so in den Registern des EC steht, hab mich aber nicht getraut was zu verändern.

Hab jetzt mal nach deiner Beschreibung ein bisschen mit dem Lüfter gespielt, aber die Begrenzung lässt sich wohl nicht (so einfach) umgehen.

Was man machen könnte ist evtl. die Lüftersteuerung selbst übernehmen, also erst ab ca. 55-60 Grad hochdrehen lassen und dann so schnell wie möglich wieder auf Minimaldrehzahl setzen.
Wenn man das Teil auch noch komplett abschalten könnte, wäre ja schon ne halbwegs ordentliche (wenn auch nicht optimale) Lüftersteuerung möglich.

Gibts denn kein Register zum Lüfter an/ausschalten?
Und wie hast du herausgefunden, welche Register die Lüftersteuerung beeinflussen?
 
Grantig schrieb:
Und wie hast du herausgefunden, welche Register die Lüftersteuerung beeinflussen?
Das Programm hat die Möglichkeit, die Registerinhalte zu speichern und die aktuellen Werte mit den gespeicherten zu vergleichen. Nun kann man Idle und Last vergleichen. Diejenigen Werte, die sich abhängig der Temperatur ändern sind dann die Lüfterregelung. Sobald man die Register-Kandidaten hat, kann man auch die kryptischen ACPI-Registernamen entziffern, hier FRDC und FTGC.

An anderen Registern traue ich mich nicht rumspielen, irgendeinen Spannungsregler erwischt und dass war es mit dem Laptop. Solange ich nicht sicher weiß, was genau alles im EC möglich ist, lass ich die Finger davon.

Schade dass da nichts geht. Ich schau hin und wieder auch in den englischsprachigen Notebook-Foren nach, hab aber noch keinen Hoffnungsschimmer auf eine leisere Lüftung finden können.
 
.fF schrieb:
Das Programm hat die Möglichkeit, die Registerinhalte zu speichern und die aktuellen Werte mit den gespeicherten zu vergleichen. Nun kann man Idle und Last vergleichen.
Genau den Ansatz hatte ich auch schon verfolgt, bin aber damit nicht so weit gekommen wie du.

Genau auf diese Weise könnte man doch auch das Lüfter an/aus Register finden?!
Ich werd das demnächst mal versuchen, wenn ich wieder mehr Zeit habe.
Leider läuft bei mir der Lüfter so gut wie immer, obwohl ich im BIOS "Fan Always On" deaktiviert habe.
Evtl. stell ich das Teil mal in den Kühlschrank und hoffe dass der Lüfter aus bleibt, bis ich RW Everything gestartet habe :D
 
Pass blos auf mit Kondenswasser auf. Bei 15° und CPU-Takt auf 800 MHz wäre es kein Problem den Lüfter mehrer Minuten aus zu lassen. Vielleicht besser rausgehen als Kühlschrank. ;)
 
So, bin jetzt etwas weiter gekommen beim Thema Lüftersteuerung.

Ich hab ne gute und ne schlechte Nachricht.
Die schlechte zuerst:
Ich hab versucht etwas mehr über den verbauten EC rauszufinden. Dafür habe ich das Internet durchforstet, HP ne Mail geschrieben, bei HP angerufen und ich war auch noch im Computershop meines Vertrauens (und die Leute da haben wirklich Ahnung).
Ergebnis immer das gleiche: Keiner konnte mir weiterhelfen.

Das mit dem Kühlschrank war zwar eher ein Gag, aber jetzt bin ich soweit, dass mir fast nichts anderes übrig bleibt. Oder ich lass das ProBook mal ne Nacht im Auto liegen...


Aber jetzt zur guten Nachricht:
Ich habe ne Lüftersteuerung geschrieben :)
Funktioniert zumindest bei mir problemlos.

Kleine Anleitung:

probookfancontrol-png.274139


Man kann einfach Schwellenwerte hinzufügen (+). Wenn die CPU Temp. einen bestimmten Schwellenwert erreicht oder überschreitet, wird der Lüfter auf die entsprechende Geschwindigkeit gesetzt.
Auf das nächstniedrigere Level wird erst wieder zurückgefahren, wenn die CPU Temp. den Schwellenwert um 3 Grad unterschritten hat (um ständiges hoch/runter drehen zu vermeiden).

Zu den Prozentwerten:
0% = 58 = min. Geschwindigkeit (nicht 0 RPM!)
100% = 2E = max. Geschwindigkeit
Auto = FF = EC übernimmt die Steuerung


Das Programm benötigt zum Starten Adminrechte und mindestens das .NET Framework 4.0 Client Profile.

Momentan unterstützte ProBooks:
6465b
4535s

Für den Autostart, am besten einfach in der Aufgabenplanung einen Eintrag erstellen.
ProBook FanControl kann auch mit dem Parameter /tray minimiert gestartet werden.


Achtung! Das Programm ist im Alpha Stadium. Wer damit sein Notebook schrottet ist selbst schuld.


Update:
-------------------------------------------------------------------------------------------------------------------------
Der Nachfolger von ProBook FanControl ist hier erhältlich: NoteBook FanControl

You can find the updated version of ProBook FanControl here: NoteBook FanControl
-------------------------------------------------------------------------------------------------------------------------
 

Anhänge

  • ProBookFanControl.png
    ProBookFanControl.png
    39,4 KB · Aufrufe: 15.546
Zuletzt bearbeitet: (Update)
Hallo Grantig

Toll, dass es bei dir geklappt hat. Ich habe ein HP Probook 4535s. Die DSDT sieht sehr ähnlich aus, zumindest ist der Teil mit dem "interessanten" Package derselbe (bzw. der "einfache", oft beschriebene Teil lässt sich nicht finden).
Könntest du mir bitte sagen, was dein Programm wo genau macht? Oder es evtl. auf dem 4535er laufbar machen? Die DSDT habe ich angehängt, es ist das neuste Bios (F20).

Leider bin ich nicht so begabt: Heut morgen habe ich das erste Mal gehört das es diese DSDT überhaupt gibt...weswegen ich mich auch nicht traue wild darauf los zu experimentieren.

Es wäre sehr nett, wenn du mir helfen könntest. Ich kann nicht begreifen, dass das Notebook mit 36° CPU Temperatur einen solchen Krach machen kann...

Besten Dank
 

Anhänge

  • dsdt.7z
    59,5 KB · Aufrufe: 447
Zuletzt bearbeitet:
Zurück
Oben