[Vorstellung] NoteBook FanControl (NBFC)

Vielen Dank für deine Antwort!

Falls du schon Prüfungen geschrieben hast: Ich hoffe es lief gut!

Fancontrol habe ich schon getestet, leider wird kein passender Sensor gefunden :(

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed

Hast du schon mal versucht die DSDT zu dekompilieren, umzuändern und dann die vorhandene zu überschreiben?

EDIT: Habe eben gesehen, dass du dich damit auch schon beschäftigt hast. Hier gibt es eine Anleitung zum Patchen der DSDT für ein HP Notebook...werde das mal ausprobieren:
h t tp://eddietse.blogspot.de/2008/03/patching-dsdt-table-for-8510p-to-reduce.html

Ansonsten werde ich wohl mit dem Lüftergeräuscht leben müssen, was auch nicht so tragisch wäre ;)

Grüße,
Julius
 
Zuletzt bearbeitet:
Hello,

I have downloaded and installed the NFBC on my HP Probook 6465b but I can't get it to work properly. When I press the "Apply selected config" button in the config menu an info box says that fan control will be reinitialized but nothing is happening. I was expecting to see some values, like the ones in your screen shots, but the box showing tresholds and fan speed is empty. What can be the problem?

Regards,
Per
 
@per.mag
The configs do not contain thresholds, they just define in which way NBFC communicates with the fan controller.
You have to define them yourself according to your needs.
You can use the ones from the screenshots - they are work well for my ProBook 6465b.

If you don't know how to set up the thresholds, you may have a look at the user's manual (chapter 4).
 
Neue Version ist verfügbar.
Diesmal hauptsächlich kleinere Verbesserungen und Bugfixes.
Details findet man wie immer im Changelog im Startpost.

Außerdem ist jetzt zusätzlich eine Config für das HP Compaq 8710p mit dabei.


Viel Spaß damit :)
 
Wie hoch stehen denn die Chancen NBFC auf einem Asus Zenbook UX32VD zum laufen zu bekommen?

Es gab ja hier schon mal Anläufe. Gibt es irgendwelche unüberwindbare Hürden?
 
Naja, soweit ich mich richtig erinnere ist es bei den Zenbooks ja so, dass man den EC erst auf manuelle Steuerung umstellen müsste, da er sonst immer wieder die Werte von NBFC überschreibt.

Es gibt also 2 Möglichkeiten:
Entweder du findest eine Möglichkeit den EC in einen "manuellen Modus" zu schalten, sodass er manuelle Steuerung erlaubt, oder du senkst das poll Intervall von NBFC weit genug, dass der EC quasi keine Chance mehr hat die von NBFC gestzten Werte zu überschreiben (was aber ne ziemlich unschöne Lösung ist imo).


Ich hab leider kein Zenbook, deswegen kann ich dir da nicht wirklich weiterhelfen.
Du kannst dich ja mal mit Krautmaster in Verbindung setzen, der hatte ja schonmal probiert ne Config für sein Zenbook zu basteln.

Die Voraussetzungen dafür habe ich geschaffen, denn das Poll Intervall kann jetzt angepasst werden und der Schreib/Lesemodus kann von Byte auf Word geändert werden (denn der EC des Zenbook verwendet 2 bytes (=Word) um die Lüfterdrehzahl zu beeinflussen anstatt nur 1). (siehe Config --> Advanced1 Tab)
Außerdem kann NBFC auch den "fan control mode" verändern (auf manuelle Steuerung) sofern das Register bekannt ist, das dafür verwendet wird. (siehe Config --> Advanced2 Tab)
 
Zuletzt bearbeitet:
Grantig schrieb:
Naja, soweit ich mich richtig erinnere ist es bei den Zenbooks ja so, dass man den EC erst auf manuelle Steuerung umstellen müsste, da er sonst immer wieder die Werte von NBFC überschreibt.

Es gibt also 2 Möglichkeiten:
Entweder du findest eine Möglichkeit den EC in einen "manuellen Modus" zu schalten, sodass er manuelle Steuerung erlaubt, oder du senkst das poll Intervall von NBFC weit genug, dass der EC quasi keine Chance mehr hat die von NBFC gestzten Werte zu überschreiben (was aber ne ziemlich unschöne Lösung ist imo).


Ich hab leider kein Zenbook, deswegen kann ich dir da nicht wirklich weiterhelfen.
Du kannst dich ja mal mit Krautmaster in Verbindung setzen, der hatte ja schonmal probiert ne Config für sein Zenbook zu basteln.

Die Voraussetzungen dafür habe ich geschaffen, denn das Poll Intervall kann jetzt angepasst werden und der Schreib/Lesemodus kann von Byte auf Word geändert werden (denn der EC des Zenbook verwendet 2 bytes (=Word) um die Lüfterdrehzahl zu beeinflussen anstatt nur 1). (siehe Config --> Advanced1 Tab)
Außerdem kann NBFC auch den "fan control mode" verändern (auf manuelle Steuerung) sofern das Register bekannt ist, das dafür verwendet wird. (siehe Config --> Advanced2 Tab)

Okay ich habe ein wenig Erfolg und Glück des Dummen. Wenn ich den Wert 0x97 sekündlich als Word überschreibe gehen die Lüfter aus. Bis die Temperatur ansteigt. Dann gehen die Lüfter ganz kurz wieder an... wenn die Temperatur über ca. 70 Grad steigt bleiben die Lüfter an und NBFC stürzt ab mit der Meldung: "The EC is not responding. Maybe some other software is interferring or the selected config is nit compatible to your notebook."

Wenn das EC poll intervall kleiner 1 sec. Z.b. auf 800ms gesetzt wird stürzt NBFC noch schneller ab.

Ansonsten scheint das UX32VD ohne Lüfter ganz gut klar zu kommen. Beim Surfen geht die Temperatur der Termanl Zone nicht über 68C. Die Cores liegen bei ca. 45C. Das liegt ja alles noch locker in den Spezifikationen. Auch wenn das Gehäuse wärmer wird.

EDIT: Im Bild ist der 0x97 gerade auf 03 vom EC überschrieben. Von NBFC wird er auf 00 gesetzt.
 

Anhänge

  • ZenbookUX32VDNoFan.jpg
    ZenbookUX32VDNoFan.jpg
    218,7 KB · Aufrufe: 703
Zuletzt bearbeitet:
Na das ist doch immerhin schonmal ein Teilerfolg.
Dass der EC ab 70°C nicht mehr auf eingaben reagiert, liegt wohl einfach daran, dass diese Temperatur einen kritischen Schwellenwert darstellt.
Da lässt sich der EC eben nicht mehr reinpfuschen um Hardwareschäden zu vermeiden.

Wenn das EC poll intervall kleiner 1 sec. Z.b. auf 800ms gesetzt wird stürzt NBFC noch schneller ab.
Immer, oder nur wenn die CPU Temp. über 70°C ist?
 
Grantig schrieb:
Na das ist doch immerhin schonmal ein Teilerfolg.
Dass der EC ab 70°C nicht mehr auf eingaben reagiert, liegt wohl einfach daran, dass diese Temperatur einen kritischen Schwellenwert darstellt.
Da lässt sich der EC eben nicht mehr reinpfuschen um Hardwareschäden zu vermeiden.


Immer, oder nur wenn die CPU Temp. über 70°C ist?

Immer. Bei 250ms stürzt es recht flott ab. Habe gerade einen Test mit 1200ms gemacht und Prime95 laufen lassen. Es lief dabei alles glatt bis bei 78C dein Proggie sinnvollerweise in den Notfallmodus geht.

Es stürzt ab 70C oder bei kleineren Intervallen (<1s) einfach nur stark vermehrt ab.

Es würde wahrscheinlich langen, wenn NBFC nicht abstürzt wenn es feststellt dass es nicht in den EC schreiben kann. Sondern es beim nächsten mal wieder versucht in den EC zu schreiben.
Dann kann der EC das blocken, wenn er meint. Und NBFC schaltet den Fan aus solange es geht.

Und diese Intervall von 1s sollten ja ansonsten nicht allzuviel Rechenpower benötigen.

Wäre super wenn man die Exception irgendwie abfangen kann und es nicht zum Absturz kommt.


UPDATE: Einfach nur 0x97 als Byte aktualisieren klappt ganz gut. Min value ist 0 und Max ist 8. Es wird dabei nicht sofort der Lüfter geregelt. So dauert es z.B. immer eine Zeit um von hohen Werten wieder auf Niedrige zu kommen.

UPDATE2: Die Abstürze sind aber immer noch da.
 
Zuletzt bearbeitet:
Hallo zusammen,

erstmal das übliche Dankeschön. Das Programm ist sehr gut und funktioniert weitestgehend einwandfrei.

Ich verwende ein HP ProBook 4530s und kann behaupten, dass es fast out of the box funktioniert. Allerdings habe ich zwei kleinere Verbesserungsvorschläge bzw. Fragen:

Mein Lüfter ist so eingestellt, dass er komplett abgeschaltet ist, bis 60 Grad erreicht werden. Dann soll er sich auf 2,4% einschalten und laufen, bis 50 Grad wieder unterschritten sind. Dann soll er sich wieder abschalten. Soweit so gut. Mein Problem ist aber, dass der Lüfter bei 60 Grad nicht auf 2,4% anfängt, sondern erstmal voll aufdreht und danach langsam wieder auf 2,4% runtergeregelt wird. Das heißt man erschrickt richtig, weil es extrem laut wird, bevor es leise geregelt wird. Gibt es eine Lösung, die den Lüfter nicht voll aufdrehen lässt, sondern stufenweise beschleunigt? Bzw. soll das nicht eigentlich so sein?

Mein zweiter Vorschlag wäre, in die Notebook-Konfiguration (z.B. für das HP ProBook 4530s) direkt eine "vernünftige" Threshold-Einstellung zu integrieren, die man bestätigen muss oder nach dem Laden der Konfiguration einen Wizard zum Einstellen des Thresholds anzeigt. Ich hab nämlich beim ersten Versuch nicht gerafft, dass es ohne die Einstellung der Thresholds keinen Sinn hat, das Programm zu verwenden.

Vielen Dank.
 
Zuletzt bearbeitet:
Grantig schrieb:
Immer, oder nur wenn die CPU Temp. über 70°C ist?

xant1 schrieb:
Immer. Bei 250ms stürzt es recht flott ab. Habe gerade einen Test mit 1200ms gemacht und Prime95 laufen lassen. Es lief dabei alles glatt bis bei 78C dein Proggie sinnvollerweise in den Notfallmodus geht.

Es stürzt ab 70C oder bei kleineren Intervallen (<1s) einfach nur stark vermehrt ab.

Es würde wahrscheinlich langen, wenn NBFC nicht abstürzt wenn es feststellt dass es nicht in den EC schreiben kann. Sondern es beim nächsten mal wieder versucht in den EC zu schreiben.
Dann kann der EC das blocken, wenn er meint. Und NBFC schaltet den Fan aus solange es geht.

Und diese Intervall von 1s sollten ja ansonsten nicht allzuviel Rechenpower benötigen.

Wäre super wenn man die Exception irgendwie abfangen kann und es nicht zum Absturz kommt.

Hier nochmal die Fehlermeldung... vielleicht kannst du es damit einschränken!? Wenn ich noch irgendwie behilflich beim Debuggen sein kann... helf ich gerne.

Ansonsten "Vielen Dank" für NBFC! Gutes Tool. Auch toll, dass man die Farbe des TrayIcons verstellen kann.


Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: notebookfancontrol.exe
Problem Signature 02: 0.12.0.38
Problem Signature 03: 5039ebfe
Problem Signature 04: mscorlib
Problem Signature 05: 4.0.0.0
Problem Signature 06: 4ee9d7cd
Problem Signature 07: 1519
Problem Signature 08: 0
Problem Signature 09: System.ObjectDisposedException
OS Version: 6.1.7601.2.1.0.768.3
Locale ID: 1031
Additional Information 1: a83e
Additional Information 2: a83e237dbc175bdeee8b55c35ae87df3
Additional Information 3: 7245
Additional Information 4: 7245dd1f1dffb98199a662f3d633456d
 
@xant1
Die Exception nicht zu werfen ist garkein Problem, die EcNotRespondingException ist von mir sowieso eher als Warnung angedacht, damit sich nicht jemand auf NBFC verlässt, obwohl die Config für sein Notebook nicht funktioniert/keine Config existiert.

Schick mir doch mal die Config für dein Notebook (mail adresse steht im Startpost).
Ich schau mir das mal an und werd dir ne Testversion schicken, sobald ich die Option zum deaktivieren/ignorieren der Exception eingebaut hab ;)

@sandreas
Das der Lüfter bei dir anfangs hochdreht wenn er vorher aus war liegt nicht an NBFC, sondern am EC selbst.
Der beschleunigt den Lüfter erstmal etwas mehr um sicherzugehen, dass er anläuft.
Ich wüsste jetzt auch keine Möglichkeit das zu umgehen, denn das ist ein Firmwareproblem.

Ich habe schon öfter darüber nachgedacht die Thresholds in die Config Dateien zu integrieren, aber letztendlich sind die Thresholds ne Sache über die man sich auch etwas Gedanken machen sollte (welche Temperaturen mute ich meiner Hardware zu?).

Wenn es aber noch mehr Leute besser finden würden die Thresholds in den Configs integriert zu haben, schreibts einfach hier in den Thread.
Evtl. pass ich das im nächsten Release dann doch mal an, wenn wirklich die Mehrheit dafür ist. :)
 
@Grantig:

Vielen Dank für die schnelle Antwort.

Das der Lüfter bei dir anfangs hochdreht wenn er vorher aus war liegt nicht an NBFC, sondern am EC selbst.

Sowas ähnliches habe ich mir schon gedacht. Prinzipiell wäre die einzige Möglichkeit, den Lüfter nie ganz abzuschalten sondern immer mindestens auf Minimalgeschwindigkeit drehen zu lassen, richtig?

Ich neige bei solchen Problemen aber dennoch dazu, nicht zu schnell aufzugeben und mir erstmal anzuhören, wie die technischen Gegebenheiten zu beurteilen sind. Daher wäre ich dir mehr als dankbar, wenn du mir in kurzen Worten erläuterst, wie das genau von Statten geht und worin ein Lösungsansatz bestehen könnte?!

Mal ganz kurz die Eckpunkte, wie ich sie verstanden habe:
  • Jedes Notebook hat einen so genannten EC (Embedded Controller), der Steuerungsaufgaben unabhängig vom Betriebssystem übernimmt
  • Dieser Embedded Controller hat ein Steuerungsregister (bzw. einen Speicher) den er in bestimmten Zyklen ausliest und anhand der dort hinterlegten Werte bestimmte Aktionen durchführt, oder die er beschreibt und damit einen Status (z.B. die CPU Temperatur) abrufbar macht
  • Dein Programm liest die CPU Temperatur aus und in Abhängigkeit dieser manipuliert es das Register so, dass der EC die Lüftergeschwindigkeit nach den Einstellungen deines Programms regelt
  • Die Manipulation des Registers beruht dabei auf Reverse-Engineering / Durchprobieren und ist keineswegs auf einer ausführlichen Dokumentation seitens HP basiert
  • Deine Aussage bedeutet im Einzelnen, dass du zwar Einfluss auf die Werte des Registers hast, aber keinen Einfluss darauf, wie der EC die Werte des Registers interpretiert (sprich, wie schnell der Lüfter bei einer Änderung am Anfang dreht)
  • Ergebnis: Die Firmware des ECs, auf die du keinen Einfluss hast, hat einen "Fehler", der den Lüfter immer zunächst voll beschleunigt, wenn der Wert von 0 auf einen beliebigen Wert erhöht wird, um sicherzustellen, dass der Lüfter auch dreht und dann langsam auf den eigentlichen Wert reduziert

War das soweit richtig? Falls ja: Gibt es irgendeine Möglichkeit, den EC so schnell dazu zu bewegen, die Lüftergeschwindigkeit anzupassen, dass er nicht voll aufdrehen muss, sondern nur beispielsweise halb?

Ideen dazu:
  • Das Register faken, mit dem der EC seine Lüftergeschwindigkeit prüft
  • Ein Register faken, wo drin steht: Lüfter dreht sich gerade und das immer auf "true" setzen

Was mich wundert ist, dass wenn ich deine Software nicht verwende, dreht der Lüfter beim Boot auch nicht voll auf (soweit ich weiß)
 
Zuletzt bearbeitet:
Ist soweit alles richtig was du schreibst.

Deine Ideen sind aber leider eher nicht umsetzbar.
Ideen dazu:

1) Das Register faken, mit dem der EC seine Lüftergeschwindigkeit prüft
2) Ein Register faken, wo drin steht: Lüfter dreht sich gerade und das immer auf "true" setzen
zu 1) Die allermeisten Register sind read-only, d.h. der EC ignoriert es einfach wenn man versucht Werte in diese Register zu schreiben.
Bei deinem (und auch meinem) ProBook ist das Register das den Wert für die aktuelle Lüfterdrehzahl enthält read-only.

zu 2) So ein Register gibts afaik nicht (wäre auch sinnlos).
Wenn der Lüfter aus ist steht im (read-only) ReadRegister 0xFF.

Was mich wundert ist, dass wenn ich deine Software nicht verwende, dreht der Lüfter beim Boot auch nicht voll auf (soweit ich weiß)
Also bei mir dreht der Lüfter nicht voll auf, sondern nur ca. 10% über die "Standarddrehzal" (die der Lüfter ohne eingreifen von NBFC immer hätte).

Ich neige bei solchen Problemen aber dennoch dazu, nicht zu schnell aufzugeben und mir erstmal anzuhören, wie die technischen Gegebenheiten zu beurteilen sind. Daher wäre ich dir mehr als dankbar, wenn du mir in kurzen Worten erläuterst, wie das genau von Statten geht und worin ein Lösungsansatz bestehen könnte?!
Ich auch nicht. Wenn ich schnell aufgeben würde, würde es diese Software nicht geben, denn es hat fast ein viertel Jahr gedauert bis ich den Lüfter meines Notebooks steuern konnte und nochmal ein viertel Jahr, bis ich es geschafft habe ihn komplett zu deaktivieren da der EC von meinem (und auch deinem) ProBook Modell das normalerweise nur zulässt, wenn die CPU Temperatur niedrig genug ist.
Und bei dem ganzen Unterfangen hatte ich auch viel Unterstützung (siehe Special Thanks im Startpost), sonst hätts wahrscheinlich noch länger gedauert.

Ich weiß selbst, dass das nerven kann wenn der Lüfter erstmal losheult wenn er angeht, vor allem weil es sehr auffällt, weil ja der Lüfter vorher aus war, geht mir genauso.
Ich weiß nur leider keine Lösung für das Problem.
Solltest du aber eine finden, dann lass es mich wissen. ;)
 
Hallo,

habe mal eine Frage. Ich weiss zwar nicht ob das der richtige Thread ist, habe sonst nichts gefunden und Google spuckt mir dazu auch nichts aus.

Es geht darum das ich mir von cooler master den notepal u2 notebookkuehler gekauft habe.
Da mir die itigrierten Luefter zu schwach sind (geht ja ueber USB) habe ich mir zwei richtige 120mm
luefter von skythe zugelegt plus so ein Netzadapter fuer Festplatten (also um HDDs ohne Gehause am Strom anzuschliessen (Steckdose zum Netzteil und vom Netzteil auf 4 pin Molex)). Dann nen Adapter von 4 pin molex auf 3 pin fuer Luefter daran angeschlossen und den Luefter selber dran, steckdose eingeschaltet und nix passiert. Habe erst gedacht das evtl das NT defekt ist, aber habe es mit ner HDD ausprobiert und es geht. Auch schon verschiedene Luefter ausprobiert mit und ohne Lueftersteuerung, geht alles nicht, aber ich weiss von zumindest einem Luefter das er funktioniert.

Das NT gibt entweder 5V, 2A oder 12V, 2A aus und ein Lufter benoetigt 12V 0,53A. Die HDD die ich getestet habe draucht 12V, 0,6A. An dem 4 Pin Molex (female) vom NT fehlt ein Kontakt, denke es muss wohl so sein, weiss aber nicht ob es daran liegt, da ich nicht weiss was auf diesem Kontakt normalerweise angelegt ist.

Evtl kann mir jemand helfen.

Gruesse
 
Das was du beschreibst ist definitiv ein Hardwareproblem.
Hier gehts aber um ne Software zur Lüftersteuerung.

Mach doch am besten nen extra Thread dazu auf, ich denke da wirst du eher Antworten bekommen als hier ;)
 
Hallo zusammen,

hat schon jemand eine Config für eine Acer S3 ?

Ich starre hier schon seit Minuten auf Read Write EC, aber ich bekomme nicht raus, welche Adresse es sein könnte.

Wenn ich dort Werte überschreibe, dann sind diese innerhalb von ein paar sekunden wieder überschrieben.

Für Linux gibt es ein pearl Skript.
http://sourceforge.net/p/acers3fand/code/5/tree/trunk/acer_ec.pl
Aber dort sind zu viele speicheradressen aufgeführt. :(

Gruß

:edit

Habe es gefunden.

Man muss 147 auf 14 setzten
(04 = AUTO oder 14 MANUELL)
und 148 wird der Wert gesetzt
von FF bis 00
(FF = MIN bis 00 = MAX)

Jetzt weiß ich nicht, wie ich es mit dem Programm hinbekomme.
Kann mir jemand dabei helfen???
 
Zuletzt bearbeitet:
So wie ich das sehe steht in dem Skript nur ein Register das für die Lüftersteuerung relevant sein könnte und das ist 0xA9.

Code:
elsif (($ARGV[0] eq "setfanthresh") && testnum($ARGV[1])) {
      write_temp(0xA9,$ARGV[1]);
}

In dieses register kannst du Temperatur-Thresholds schreiben auf die der EC dann (hoffentlich) reagiert.
Probiers mal ;)


Edit:
Ach du hast die Register schon gefunden, super!

Der EC deines Acers scheint sehr ähnlich zu funktionieren wie der des Medion Akoya 6630.
Dafür gibts schon ne config, also dürfte es recht einfach für dich werden.

1. Wähle die Config des Medion Akoya im NBFC Config Dialog und klick auf den + Button.
Dadurch wird eine neue Config auf Basis der Medion Akoya Config erstellt.

2. Trag im Basic Tab deine Min und Max Werte ein (dezimal).
Der Rest sollte schon stimmen und kann so bleiben.

3. Trage im Advanced 2 Tab deine manual control mode und auto control mode werte ein (dezimal).
(edit: die manual und auto Werte passen auch glaub ich, also musst du garnix verändern)

4. Klick auf speichern (der Button mit der Diskette)

5. Klick auf apply und drück die Daumen dass es klappt ;)

6. Schick mir bitte die config wenn alles klappt :D
 
Zuletzt bearbeitet:
Zurück
Oben