[Vorstellung] NoteBook FanControl (NBFC)

Ich hatte mir damals schon die pdfs von IT8510 und IT8511 angesehn und rumgetestet, ohne Erfolg. In den Zenbooks ist jedoch ein IT8572 verbaut, der vermutlich komplett anders anzusteuern ist. Ich habe auch vor geraumer Zeit ITE angeschrieben, ohne Antwort zu erhalten. Der Chip ist auf deren Internetseite nicht mal aufgeführt, vielleicht ist es ein OEM extra für Asus hergestellt.

Ich muss jedoch dazu sagen, dass ich mir der aktuellen Lösung mehr als Zufrieden bin, und ich sogar denke, dass sie besser ist, als den EC auf manuell zu stellen. Erstens sicherer, und zweitens hat man dann auch keinerlei Probleme wie z.B., dass der Standby Modus nicht mehr richtig funktioniert, wie es prikolchik beschrieben hat in seinem Post.
 
Zuletzt bearbeitet:
Da ich keine Lust hab mich durch die ganzen Seiten zu wühlen :D: Geht der Autostart unter Windows 8 jetzt eigentlich?

Und noch so nebenbei: Tolles Programm! :D Vielen Dank dir!
 
Grantig schrieb:
@pommesfritz
Wars der Dienst "Windows Verwlatungsinstrumentation" bzw. WMI.
@TimeWalker75a
Have you tried ik8fanGUI?
If not, can you try it? (here are some instructions to get it to work under Win7 x64: I8kfangui and Windows 7 x64 Solved)

I had a short look at the sourcecode of i8kfanGUI and I found out it accesses the fan via SMBIOS.
NBFC currently accesses the EC only via LPC Bus (low level).
Maybe setting the fan speed via SMBIOS does not interfere with DELLDIAG?
Yeah I have tried it with a custom signed driver, sadly the moment you tart the app it BSODS the system right away. I have tried SpeedFan as well and it just freezes (locks up completely) my laptop the very moment I enable DELL sensor monitoring.
I'm not sure it's SMBIOS, I would say that a SMI communication rather. I've ran the diagnostics utility from BIOS and it appears that there are in fact only two states possible 2800 and 4200 as the author of HWInfo64 pointed out. But it seems like the fan actually sets rpms different to these predefined values.
20h3y


akron1980 schrieb:
Ist es möglich mehr Auswahl bezüglich Configs zu finden da ich keines von Dell fand und nicht weiss was ich da selber einstellen könnte? Zwar wurde mit einem Biosupdate das Verhalten meines Vostro 3750 gebessert aber da dürfte etwas mehr möglich sein unter Beachtung der Temps versteht sich.
Vostro 3750 has the same BIOS and EC as my Vostro 3450, hence the problem is identiacal.
I've only found out that if you set byte 0x60 to 0x00
http://puu.sh/20h7Q[img]
it will make the fan level at offset 0x63 turn 0xFF and fan mode will no longer be automatic, it will be manual.. but there is no way to set the speed other than what's used in SpeedFan/i8k/HWInfo - interfacing the DELLDIAG thing to set either level 1 = 2800rpm or level 2=4200rpm for the fan.
 
Zuletzt bearbeitet von einem Moderator: (Beiträge zusammengeführt)
@prikolchik
Thanks you for correcting my mistake, I promise I will read more carefully from now on :)

Also thanks for providing your sourcecode.
I will create some configs for notebooks listed in acerhdf.c as soon as I find some free time.

NBFC already uses port I/O to access the EC.
Your stackoverflow link was one of the first things I found when I started to develop NBFC.
So it would be possible to implement your solution into NBFC, but since it is very experimental code I don't know if it really improves the current solution.

I think the best solution would be to implement ACPI support, but on Windows you can access ACPI only from kernel mode, so I would have to implement this in the kernel mode driver I use.
There are two problems about that:
1. I don't know very much about driver development. The driver NBFC uses (WinRing0) is not developed by me, but open source.
2. If I modify the driver and recompile it, I would also have to digitally sign it or Windows x64 versions will reject to load the driver.
So I would have to buy a code signing certificate for a "small" fee (about 200$ a year).


@mkdr
Ich hatte auch irgendwie ein Déjà-vu als ich das pdf gelesen habe, war mir aber nicht (mehr) sicher ob das schonmal jemand ausprobiert hat.
Ich hatte auch gehofft, dass ITE auf der embedded world 2013 anzutreffen ist, leider hab ich sie auf der Ausstellerliste nicht gefunden.

Die aktuelle Lösung finde ich auch ganz in Ordnung. Natürlich wäre die Steuerung über ACPI noch besser, aber der Aufwand dafür ist auch ziemlich groß. Ich muss sowieso erstmal den Windows Service fertig bekommen.

@Timdaroxxa
Der Autostart unter Windows 8 funktioniert schon immer (zumindest bei meinen Tests), allerdings teilweise nur verzögert.
Dieses Problem lässt sich erst lösen, wenn ich den Service fertig hab.


Edit:


@TimeWalker75a
And HWInfo is not able to control the fan on your Vostro 3450?
In this thread someone said it works for the vostro 3560.
Seems like the only solution is the one that is already implemented in HWInfo.
 
Zuletzt bearbeitet:
HwInfo works for the most part, but sometimes two problems occur - first one is the notorious lock up issue when laptop lock up completely while detecting sensors or reading values from given sensors (especially Dell EC), second issue is that the fan icon sometimes appears and sometimes doesn't.. also there's no way to override the auto mode with HWInfo (settings register 0x60 with 0x00 value) thus it requires respin interval to be set, which in hand creates massive amount of lag for the program to access EC every specified amount of milliseconds. :| looks like I'm out of options. 3560 has Insyde bios and thus probably a different EC chip, hence it works...
 
Hey,
danke für die Antwort.
Ich habs jetzt hinbekommen mit dem Autostart, startet sogar ohne Verzögerung soweit ich das beurteilen konnte.

Allerdings ist die Standardeinstellung, dass Auto-Fan-Control disabled ist. Wie setze ich das standardmäßig auf aktiv?
 
Mit den Parametern /auto und /tray kannst du NBFC mit aktivierter Auto Kontrolle und ins Tray minimiert starten.
(steht auch im User Manual - Kapitel 6)
 
Hi,

erstmal danke für deine Arbeit die du in die Entwicklung dieses Tools gesteckt hast.
Habe das Tool nun getestet, aber funktioniert leider nicht 100% auf meinem Asus UX32VD.
Das Setzen und Auslesen der Werte funktioniert problemlos.
Starte ich nun Auto Fan Control und übersteigt die Temp den nächsten Schwellwert, wird die Lüftersteuerung nicht angepasst.

MfG
roskas
 
Hallo zusammen!

Vorerst möchte mich auch bedanken für die Entwicklung dieses Tools.

Ich habe gerade versucht eine Konfigurationsdatei für mein Sony Notebook Vaio S13P (SVS13A1C5E) zu erstellen. Leider war ich bisher jedoch nicht in der Lage, die Register für Read und Write zu identifizieren, weil sich einfach zu viele Register andauernd ändern. Die Konfigurationsdateien für das Sony Vaio SVE1711 scheinen leider auch nicht kompatibel zu sein.

Ich würde mein Notebook gerne für einfache Tätigkeiten wie etwas das Surfen im Web lautlos kriegen. Die Sony eigene Steuerungssoftware Sony Control Center ist dazu leider nicht in der Lage :( Hat jemand noch weitere Tips, wie ich am besten vorgehen sollte?

Viele Grüße,

JackShepard
 
Zuletzt bearbeitet:
Endlich den Fehler gefunden. Ich hatte ein Verständnisproblem mit dem Programm.

Das Programm kühlt erst mit der eingestellten Geschwindigkeit, wenn die Temp. über den "up threshold" gelangt
(nicht über den "down threshold"). Danach kühlt es das System bis zum gewählten "down threshold" herunter.

Ich finde das sollte irgendwo in der UI beschrieben werden. Ich habs erst durch reverse engineering herausgefunden.

MfG
roskas
 
Trotzdem finde ich es in der UI nicht besonders intuitiv.
Wenn man sich so rein die Liste mit Schwellwerten anschaut, erwartet man eigentlich das der Lüfter beim
"down threshold" startet und solange die eingestellte Geschwindigkeit fährt bis die Temperatur die Spanne wieder verlässt.

Ich denke viele Benutzer haben diese Intuition und verlassen sie einfach darauf, ohne darauf explizit zu achten.

Das zeigt sich auch in einigen vordefinierten Profilen.
Bspw. das Profil des Asus Ux32VD. Der Lüfter fängt erst bei 65°C an sich überhaupt zu drehen und kühlt dann bis 50°C runter. Das finde ich dann doch, im Vergleich zu den vom BIOS 45°C definierten, ziemlich viel.

Stell dir mal vor ein User definiert, naiv wie er ist, zwei Schwellwerteinstellungen
1. 0°C - 60°C, Lüfter: 0%
2. 60°C - 90°C, Lüfter 75%
Der User wird sich dann, evtl. mit defekter Hardware, bei dir bedanken, weil der Lüfter erst bei 90°C anspringt.

Gruß roskas

P.S. Ich würde vorschlagen einfach ein Hinweislabel in die Form einzubauen.
Ansonsten weiter so. Tolle Arbeit.
 
Die Asus Configs sind absichtlich so, weil der Prozessor 65°C locker mitmacht.
Auch ein Hardwareschaden durch Überhitzung ist nahezu ausgeschlossen, da NBFC (standardmäßig) ab 75°C in den Critical Mode schaltet und den Lüfter voll aufdreht.
Selbst wenn das nicht funktionieren würde, würde der Prozessor throtteln und in letzter Instanz würde das System zum Schutz vor Hardwareschäden heruntergefahren werden.

Wenn die Lüfter beim Down Threshold schon anspringen würde, dann:
1. wären Die UpThresholds sinnlos
2. gäbe es einen netten Jojo Effekt.

Stell vor NBFC würde so funktionieren wie du meinst.
Beispiel:
Der erste Schwellenwert ist bei 50°C. Die Temperatur steigt auf 50°C also springt der Lüfter an.
innerhalb von 1 Minute fällt die Temperatur wieder unter 50°C und der Lüfter geht aus.
Jetzt steigt die Temperatur aber relativ schnell wieder an (da der Lüfter aus ist) und der Lüfter muss wieder anspringen.
Das geht ewig so weiter --> tierisch nervig und absolut das Gegenteil von dem, was eigentlich mit NBFC erreicht werden soll: ein möglichst ruhiges und entspanntes Arbeiten mit so wenig nervigen Nebengeräuschen wie möglich. :)
 
Am Verhalten habe ich überhaupt nichts auszusetzen.
Es soll auch überhaupt nicht so funktionieren wie ich es beschrieben habe, aber die UI macht diesen Eindruck.

Es wäre vielleicht sinnvoller einfach
"up threshold" in "Schwellwert" und
"down Threshold" in "Herunterkühlen bis" o.Ä. umzubenennen

oder
ein Label mit einem Hinweis einzubauen.

roskas
 
Anhang anzeigen 323638Hi Leute,

nach ein bisschen Fuchserei bin ich auch schon fast am Ziel (eine manuelle Lüftersteuerung mit lüfterlosem Betrieb im idle) angekommen. Ein kleines Problemchen steht dem jedoch noch im Wege.

Zunächst mal mein System: Acer Travelmate 5760G (sollte keinen Unterschied machen zum Acer 5760 auch nicht zu vielen anderen Acer-Geräten).
Nach dem Auslesen der Daten mit Read&Write habe ich den Register 85 als verantwortlich für die Lüftersteuerung ausfindig gemacht, sowie die Register 88 und 89 für die Temps. (Mir hat hier die Funktion des Abgleichens der EC-Tabelle in Read&Write geholfen --> könnte man möglicherweise in die Hilfe übernehmen).

Nach etwas Spielerei und testen ergibt sich folgendes Bild:

1) Der Register 85 ist vermutlich ganz alleine zuständig für die Lüftersteuerung.
2) Beobachtet man nun einfach die Werte der des Registers 85 zeigt sich, dass die automatische Biossteuerung variiert zwischen den Werten 01 bis 06 für die jeweiligen Geschwindigkeitsabstufungen.
3) Setzt man einen ungültigen Wert (Bspw. "E9") mit Hilfe von Read&Write in den Register 85, fällt der Lüfter komplett aus.
4) Durch mehr oder weniger Zufall habe ich herausgefunden, dass die Werte 07 bis 13 (Hexadezimal von 07 bis D) eine manuelle Lüfterstuerung erlauben. Der Wert 07 setzt den Lüfter dabei auf aus, die restlichen Werte haben genau den gleichen Einfluss wie die Werte der automatische Biossteuerung, nur werden die manuell gesetzten Werte nicht mehr korrigiert, sondern bleiben unabhängig von der Temperatur konstant. Lüfterstufe 01 (Bios) = Lüfterstufe 08 (manuell), Lüfterstufe 02 (Bios) = Lüfterstufe 09 (manuell), usw...
5) Eigentlich ist jetzt schon viel erreicht. ich setze also in NBFC Read, wie auch Write Register auf 85 und die Werte für Lüfter Maximum auf 13, sowie Minimum auf 07.
6) Von da an kann ich auch alles bestens konfigurieren, nur bleibt ein Problem: ich kann frei zwischen den Werten der manuellen Lüftersteuerung wählen, jedoch nur solange ich den Wert 07 nicht anwähle, denn danach funktioniert die manuelle Steuerung nicht mehr. Der Lüfter bleibt aus. Einzige Lösung: Ich aktiviere kurz die Biossteuerung. Danach funktionieren die manuellen Werte wieder.

Überlegung1: Vermutlich ist der "Fan reset value" genau für solche Fälle? Hilft leider nichts, da etwas zu variieren... Achso, gerade rausgefunden, dass dieser Eintrag den Wert festlegt, beim Beenden des Programmes (Steht so auch noch nicht in der Hilfe...).

Überlegung2: Ein Set Value-Befehl, der vor dem Setzen der Werte für die manuelle Lüftersteuerung einen "Clear-Wert" vorschaltet (also erst ein Wert aus der automatischen Biossteuerung (bspw. "01"), dann der Manuelle"). Derzeit ist die Set-Value Option ja so eingestellt, dass diese Werten am Schluss der Befehlskette setzt, oder?!

Überlegung3: Ein ständig neues setzen der Werte wäre in meinem Fall ja gar nicht nötig. D.h. ich bräuchte gar keinen EC-poll-intervall. nur die temps müssten ständig ausgelesen werden. Möglicherweise kann eine Einstellung das Programm "entschlacken" -> weniger CPU-Belastung.

Meine Config hängt an.

Und Danke noch mal für das tolle Tool!

Edit: War noch ein kleiner Fehler in den Einstellungen -> neuer Anhang


Update: ich habe mal eine Config gebastelt, die meinen Vorstellungen schon ziemlich nahe kommt. Beim Wert 2,7% der Fan-Geschwindigkeit setzt NBFC den Register 85 auf "07" -> Lüfter aus. Steigt die Temp auf 55° muss kurz das Bios anspringen, damit dann ab 56° wieder manuell geregelt werden kann (Es greift die Fan-Geschwindigkeit von 3,1% bzw. der Wert "08" im Register 85). Soweit funktioniert auch alles, nur kann es passieren, dass die Temperatur nicht schnell genug auf 56° springt, da ja schon bei der Biossteuerung kurz der Lüfter aktiv wird. Dann hängt der Lüfter quasi in ner Schleife zwischen "aus" und Biossteuerung...
nbfc acer 5760g.png
 

Anhänge

Zuletzt bearbeitet:
naja für das acer m5-581tg funktioniert immernoch keine der gestelleten acer configs.
leider.. also fals es dafür irgend ne lösung gibt würde ich mich freuen =(
 
hört sich super an,
ich hab mir die 20 seiten jetzt nicht durchgelesen,
aber gibt es eine möglichkeit oder eventuell schon einen funktionierenden config für die VAIO S reihe?
das wäre grandios, da vaios generell durchweg ein lüftersteuerungsproblem haben.
 
@Th3Fisch und @shpock:

Fangt doch beide erst mal an (wie in der Hilfe beschrieben) die interessierenden Register ausfindig zu machen... Alles keine Hexerei.
Mein Tipp:
1) Öffnet Read&Write.
2) speichert (mit F2) dann einmal den Ec-Table, wenn der Lüfter noch nichts zu tun hat.
3) Heizt dann der CPU etwas ein, sodass der Lüfter aufdreht.
4) Klickt in Read&Write dann auf "Compare" oder einfach F8.
5) Die Register, die sich verändert haben werden in Rot dargestellt.

Macht nen Screenshot und kommt zurück ins Forum.

Auch wenn sich der Aufwand groß anhört und etwas Mumm dazu gehört, so tief in die Hardware einzusteigen, es lohnt sich.
 
Diesen Tipp aufgreifend, hier mein Screenshot:

r_w.jpg

Und jetzt?
 
Zurück
Oben