[Vorstellung] NoteBook FanControl (NBFC)

Grantig schrieb:
Es speichert Einstellungen auch unter Windows 8, du musst dafür aber natürlich auch auf speichern klicken, sonst werden die Änderungen verworfen. (im Configs Fenster, Thresholds im Hauptfenster werden automatisch gespeichert)

Habe ich leider schon mehrfach erfolglos versucht.

Grantig schrieb:
Das mit den Registern war so gemeint, dass du in das Register über das der Lüfter angesprochen wird den Lüfter steuern kannst und zusätzlich noch einen niedrigen Temperaturwert ins Temperaturregister schreiben kannst. So klappt das zumindest bei den Zenbooks.
Du kannst dir ja die Zenbook Configs mal anschauen und als Vorlage nutzen.

Genau so hab ichs gemacht.
 
Grantig schrieb:
Du musst den Editor in ein Verzeichnis packen, auf das du Schreibrechte hast.
Alternativ kannst du auch ausprobieren die .bat aus einer Command Line mit Administratorrechten heraus zu starten.

Ich habe dem Verzeichnis jetzt Vollzugriffs-Rechte erteile und zusätzlich die .bat-Datei als Administrator aufgerufen. Leider gibt es jetzt ein neues Problem, siehe Anhang.
java2.jpg

Die Iasl.exe befindet sich im gleichen Verzeichnis, wie die bat-Datei und der Rest von DSDT, nämlich c:\temp\DSDT\
 
hallo!

mein vater hat sich vor 2 wochen ein hp probook 4540s gekauft auf welchem windows 8 läuft. nun möchte ich bei diesem versuchen, den lüfter mit nbfc zu steuern.

nur möchte ich auf nummer sicher gehen, das nichts zerstört wird.

1. im bios die funktion "fan always on while on ac power" deaktivieren
2. nfbc starten und das profil von meinen notebook würd automatisch erkannt.

erste frage. muss ich jetzt noch etwas einstellen z.b. in der lüftereinstellung oder ist dies das pofil für mein notebook.

3. im taskmanger starten mit windows aktivieren.

habe ich das so richtig verstanden?

mfg drumer0
 
Zuletzt bearbeitet:
@ stormi
Sorry dann kann ich dir bei beiden Problemen nicht weiterhelfen.
Ohne Fehlermeldung kann ich schwer sagen warum NBFC bei dir nicht speichern kann, weils bei meinen Tests problemlos funktioniert.

@ stw500
Sorry, das neue Problem kommt daher, dass das Working Directory nicht stimmt, daran hab ich nicht gedacht.
Du musst also zum Ordner mit der DSDTParser.jar wechseln und dann dort das eingeben:
Code:
C:\{Pfad zu Java Installation}\java.exe -jar DSDTParser.jar

@ drumer0
Die Config fürs 4540s bringt schon alles mit was du brauchst.

Du musst also nur folgendes machen:
1. Im BIOS "fan always on while on AC power" deaktivieren
2. NBFC starten und die auto fan control aktivieren
3. Rechtsklick aufs NBFC Tray Icon (das die Temperatur anzeigt) und einen Haken bei "start with windows" machen
--> fertig
 
Grantig schrieb:
@ stw500
Sorry, das neue Problem kommt daher, dass das Working Directory nicht stimmt, daran hab ich nicht gedacht.
Du musst also zum Ordner mit der DSDTParser.jar wechseln und dann dort das eingeben:
Code:
C:\{Pfad zu Java Installation}\java.exe -jar DSDTParser.jar

Kein Problem, allerdings habe ich in der Batch-Datei, die mit sämtlichen DSDT-Dateien im Ordner C;\temp\DSDT liegt, folgendes eingegeben und dann mit Administratorrechten gestartet:

c:\programme\java\jre7\bin\java -jar c:\temp\dsdt\DSDTParser.jar

Das dürfte doch Deinem Vorschlag entsprechen, oder? Dabei ist allerdings die obige Fehlermeldung aufgetreten.
 
Nein, du musst in der cmd in das Verzeichnis c:\temp\dsdt\ wechseln und von dort aus die .jar Datei ausführen (so wie beschrieben).
Das Verzeichnis in dem du dich befindest ist gleichzeitig auch das Working Directory.
 
Vielen Dank Grantig, endlich hat es funktioniert :D, der Editor zeigt jetzt alles mögliche an. Nur habe ich keine Ahnung, wie ich das jetzt interpretieren soll. Ich habe mal über "Save DSL" eine Datei erzeugt und hier angehängt. Kann man daraus jetzt irgendwie lesen, welche config bei mir funktionieren könnte? (als rar gepackt, da es sonst hier nicht hochgeladen werden kann)
 

Anhänge

jackshepard schrieb:
Ich habe die Konfiguration mit meinem Vaio S bereits getestet. Leider funktioniert sie nicht wirklich. Bisher habe ich es noch nicht hinbekommen, die entscheidenden HEX-Werte mit Read & Write zu identifizieren. Ich versuche es aber weiter :-)
hej, hattest du vielleicht glück inzwischen?

@alle: hat jemand erfolgreich den lüfter eines vaio SE 15" steuerbar gemacht?
 
@stw500
Habs mir mal kurz angesehen.

Device EC0 im Scope _SB.PCI0.LPC0 (auf die einzelnen Namespaces klicken um mehr zu erfahren, hab ein paar Wikipedia Artikel verlinkt) sieht interessant aus, ganz besonders dieser Teil:
Code:
OperationRegion (ECRM, EmbeddedControl, Zero, 0xFF)
Field (ECRM, ByteAcc, Lock, Preserve)
{
    Offset (0x5D), 
    ERIB,   16, 
    ERBD,   8, 
    Offset (0xAA), 
    Offset (0xAB), 
    Offset (0xAD), 
        ,   4, 
    Offset (0xAE), 
    PTVL,   4, 
    Offset (0xB0), 
    Offset (0xB1), 
    Offset (0xB2), 
    Offset (0xB3), 
    Offset (0xB4), 
    Offset (0xB5), 
    Offset (0xBC), 
    Offset (0xBD)
}
Mutex (FAMX, 0x00)
Method (FANG, 1, NotSerialized)
{
    Acquire (FAMX, 0xFFFF)
    Store (Arg0, ERIB)
    Store (ERBD, Local0)
    Release (FAMX)
    Return (Local0)
}
Method (FANW, 2, NotSerialized)
{
    Acquire (FAMX, 0xFFFF)
    Store (Arg0, ERIB)
    Store (Arg1, ERBD)
    Release (FAMX)
    Return (Arg1)
}

Ich schätze die beiden Methoden sind zum schreiben/auslesen der Lüfterdrehzahl gedacht.
FANG = fan get (?) = lesen
FANW = fan write (?) = schreiben

Da in FANG aus ERBD gelesen wird und in FANW in ERBD geschrieben, gehe ich davon aus, dass du darüber evtl. den Lüfter ansteuern könntest.
Im Feld ECRM kann man nachschauen welchen Offset ERBD hat:
0x5D + (16 bit = 2 byte) ==> 0x5F

Probiers mal, ich hoffe es klappt. (einfach in R/W was reinschreiben an diese Stelle)


Und bevor jetzt ihr jetzt alle auf die Idee kommt eure DSDT hochzuladen, möchte ich gern eins klarstellen:
Ich werd mich jetzt nicht für jeden durch seine DSDT wühlen, dazu hab ich keine Zeit.
Dieser Post sollte vielmehr ein Beispiel darstellen, wie man vorgehen kann.

Ihr könnt mir natürlich trotzdem Fragen stellen, ich werd versuchen euch zu helfen.
Aber erwartet nicht, dass ich von A-Z alles selbst mache.
Dafür habe ich ja das User Manuel geschrieben, nützliche Tools und Dokumente zusammengetragen und auch hier im Thread immer wieder längere Posts verfasst - um euch die Möglichkeit zu geben es selbst hinzubekommen ;)
 
Zuletzt bearbeitet:
Grantig schrieb:
@stw500
Ich werd mich jetzt nicht für jeden durch seine DSDT wühlen, dazu hab ich keine Zeit.
Dieser Post sollte vielmehr ein Beispiel darstellen, wie man vorgehen kann.
Erst einmal vielen Dank für Deine Mühen und dass mein Notebook hier als Beispiel dienen darf.

Grantig schrieb:
Im Feld ECRM kann man nachschauen welchen Offset ERBD hat:
0x5D + (16 bit = 2 byte) ==> 0x5F
Das ist ja tricky, darauf wäre ich nie gekommen.

Grantig schrieb:
Probiers mal, ich hoffe es klappt. (einfach in R/W was reinschreiben an diese Stelle)
Ich habe Schwierigkeiten das Register 0x5F zu finden. Ich habe das R&W-EC mal angehängt, danach findet sich auf der X-Achse 00 -> 0F und auf der Y-Achse 00 -> F0. Eine Kombination aus der sich 0x5F ergibt, erschließt sich mir leider nicht. Bestimmt ist das wieder so ein peinlicher Anfängerfehler meinerseits. :confused_alt:

R_W.jpg
 
R_W.jpg
Habs rot markiert.

Sieht aber so aus als läge ich falsch.
ECRM bedeutet wohl EC RAM, worauf NBFC leider nicht zugreifen kann.
Ich habs schon befürchtet, du kannst es ja aber trotzdem mal probieren.
 
Danke für die Markierung, zwar sind die Zeichen 005F in den Registern 0F und 50 vorhanden, aber wieso das zusammen genau 00x5F ergeben soll, raffe ich immer noch nicht, für mich würde das eher 0Fx50 ergeben. Egal...

Wie Du schon befürchtest hast, habe ich mit dem von Dir genannten Register nichts ausrichten können. Habe rund 8 verschiedene Werte wahllos ohne Erfolg eingetragen. Dann scheine "ich" wohl ein hoffnungsloser Fall zu sein, oder hast Du vor NBFC noch um EC-Ram zu erweitern? *hoff* Für diesbezügliche Tests stünde ich natürlich zur Verfügung. Wenn nicht, kennst Du eine andere Software, die das kann?
 
Das 0x ist nur ein Präfix das andeutet, dass es sich um eine Hexadezimalzahl handelt.
Du musst einfach nur Zeilen und Spaltenindex addieren: 0x50 + 0x0F = 0x5F (vgl. 50 + 09 = 59 im Dezimalsystem)

Das Thema EC RAM wurde im Thread schonmal angesprochen:
prikolchik schrieb:
Also, if you do want to manually control the fans and don't want to use the ACPI, then you can use system I/O to do that. I have taken the ACPI code (from DSDT table) and converted into C equivalent as a proof of concept. It works perfectly on Linux!
Code:
http://pastebin.com/Hp2pWeyL

The basic idea is that it uses system I/O to write to Embedded Controller Scratch RAM (address 0x521 and 0x522) to set the fan mode. I think there must be a much simpler way to access Scratch RAM on the Embedded Controller.

The problem is that ACPI uses the same I/O ports while my program (linked above) may be running and that could lead to unidentified behaviour (it did so on my machine when I was testing it, which is why I do not recommend anyone to use it). The only way to get around that is (as far as I know) to aquire the ACPI mutex MU4T as it is used in the original ACPI code that comes with my UX32VD specifically to make sure system I/O is accessed only one point at a time.
Den Grund warum ich das nicht implementiere, hab ich fett markiert.
 
shpock schrieb:
hej, hattest du vielleicht glück inzwischen?

@alle: hat jemand erfolgreich den lüfter eines vaio SE 15" steuerbar gemacht?

Leider nicht so ganz. Aufgrund der Ausführungen von Grantig durchforste ich aber gerade ebenfalls mal mein DSDT File. Die Operation OperationRegion (ECF2, EmbeddedControl, Zero, 0xFF) scheint für uns interessant zu sein. Die Steuerlogik scheint allerdings wesentlich komplexer zu sein, wie das Beispiel von Grantig. Es werden sage und schreibe 152 Variablen in dem Block verwendet. Du kannst ja gerne auch mal drüber schauen.
 
Zuletzt bearbeitet:
Mhh, es gibt doch auch die Möglichkeit die Geschwindigkeitstabelle im DSDT zu manipulieren, und die Steuerlogik intakt zu lassen. Das war der Weg vor Grantigs Tool. NBFC ist doch eigentlich für die Fälle gedacht, wo nach dem Deassemblieren keine Tabelle identifiziert werden kann. Vielleicht kannst du in die Richtung über deinen Code schauen?
 
Grantig schrieb:
Das 0x ist nur ein Präfix das andeutet, dass es sich um eine Hexadezimalzahl handelt.
Du musst einfach nur Zeilen und Spaltenindex addieren: 0x50 + 0x0F = 0x5F (vgl. 50 + 09 = 59 im Dezimalsystem)

Das Thema EC RAM wurde im Thread schonmal angesprochen:

Den Grund warum ich das nicht implementiere, hab ich fett markiert.

Aaaaah, jetzt habe ich es gerafft. Danke sehr. Und wegen der Lüftersteuerung muss ich halt dann mal woanders schauen. Trotzdem danke für Deine Mühe.
 
Habe mich gerade durch den Thread gelesen und recht viel verstanden.

Kurze Frage: Gibt es auch schon Profile für MSI Notebooks bzw. genauer für ein GE60? Falls nein, gibt es bereits jetzt bekannte Probleme, weshalb die Steuerung mit MSI Notebooks nicht möglich ist?

Gruß und Danke,
m20082

Edit: Ok, NBFC ist leider nicht kompatibel mit einem MSI GE60, da man mit der Holzhammermethode ran müsste. Beim GE60 lassen sich jedoch die ab Werk vorgegebenen Temperatur- und Lüfterstufen für die CPU und GPU bequem in den Registern des EC-Controllers verändern, mit Hilfe von RWeverything z.B.
 
Zuletzt bearbeitet:
Abend!

@Grantig: erstmal danke für dieses nette Stück Software, es hat meinem neuen UX51VZ Zenbook eine deutlich angenehmere Geräuschkulisse beschert :)

Eine Frage noch: gibt's in absehbarer Zeit bei meinem Book eine Möglichkeit, auch den GPU Lüfter zu regeln? Es wurde ja hier kurz mal angesprochen, scheint aber offenbar nicht so leicht realisierbar zu sein?

Da ich was Geräusche betrifft von meinem Vorgänger-notebook (MBP 1.1) extrem verwöhnt bin (und es auch absolut nicht ausstehen kann, wenn Lüfter vollkommen unnötig dahinsäuseln), bin ich noch am grübeln das Book wieder Amazon zu retournieren wenn keine Möglichkeit besteht, auch den GPU Lüfter zum Schweigen zu bringen (was übrigends beim CPU lüfter optimal klappt mit den default settings von NBFC, CPU-temp bleibt konstant unter 50°C ganz ohne Lüfter).

Ich hatte vorher übrigends (kurz) ein Gigabyte U2442F, das war noch deutlich schlimmer im Bezug auf die Lüfter als das Asus.. vollkommen unbrauchbar.. leider.

Danke vorab und lg,
Jürgen
 
juepi schrieb:
Da ich was Geräusche betrifft von meinem Vorgänger-notebook (MBP 1.1) extrem verwöhnt bin (und es auch absolut nicht ausstehen kann, wenn Lüfter vollkommen unnötig dahinsäuseln), bin ich noch am grübeln das Book wieder Amazon zu retournieren wenn keine Möglichkeit besteht, auch den GPU Lüfter zum Schweigen zu bringen (was übrigends beim CPU lüfter optimal klappt mit den default settings von NBFC, CPU-temp bleibt konstant unter 50°C ganz ohne Lüfter).

Habe gerade festgestellt, dass das wohl ein klassisches Layer 8 Problem war: ich hatte Open Hardware Monitor zur Termperaturüberwachung laufen, was aber offensichtlich die GT650M GPU dazu veranlasst, sich aus dem Dornröschenschlaf zu begeben und den Kern hochzutakten, woraufhin natürlich sofort der Lüfter anspringt.. gleiches Verhalten übrigends beim Start von NVIDIA Inspector. Ist wohl auch mehr bug als feature, aber ok, damit kann ich leben :)

lg,
Jürgen
 
Zurück
Oben