NHC ACPI Skript für Thinkpads

Carl

New member
Themenstarter
Registriert
17 Dez. 2006
Beiträge
156
Hallo,

UPDATE

Ab jetzt Beschreibung für v0.9
seit ca. 2 Monaten habe ich ein ACPI Skript für mein T43p für NHC geschrieben. Die Lüftersteuerung funktioniert. Also wer eine Alternative für die tpfanctrl sucht, der wird fündig. Es wird auch nur auf den Modellen funktionieren wo tpfanctrl funktioniert.

Ein paar Bemerkungen:

Es gilt wie immer: Für Schäden wird keine Verantwortung übernommen :D

Vorteile von tpfanctrl:
- schon lange im Einsatz, also getestet (so gesehen ist jetzt das Skript auch schon 6 Monate stabil im Einsatz...)
- Never Change a running System

Vorteile von NHC
- nur ein Programm gestartet
- keine Eintragungen wegen Konfilkten in das Systemprotokoll (da gibts zwar einen Ausweg, jedoch finde ich den persönliche nicht zu elegant)
- Zusätzliche Helligkeitssteuerung möglich
- Der Code ist um einiges leichter anzupassen als von tpfanctrl (c# hatte ich davor nie Programmiert, wer Java kennt wird keine Probleme haben)
- Wenn es die nächste NHC Version gibt werde ich mich an ein Gegenskript für die pulsierenden Lüfter setzten, außerdem werde ich versuchen die extended Fan Control für die x40 x30er Serie implementieren, jedoch funktioniert das Momentan wegen Einschränkungen noch nicht.
- individuel Regelbare Temperatursensoren (mehr dazu unten)


HowTo get startet:
NHC in der neusten Version installieren.
Die angehängte Datei runterladen und nach ACPI im NHC verzeichnis entpacken.
Die ibm.xml Datei anpassen: siehe hier
ACHTUNG Neuere Modelle müssen u.U. die ibm.xml in LENOVO.xml umbenennen.
EDIT:In der LENOVO.xml datei muss das erste und letzte ibm noch durch Lenovo ersetzt werden. Danke an Acesulfam für den Hinweis.
Danach NHC starten und ACPI anschalten.

Kurze Anleitung:
Modified Temperature
Hier steht die Temperatur die nach Offset und deaktivierten Sensoren zum Berechnen der Lüftersteuerung verwendet wird.

Maximal Temperature
Hier steht die Temperatur vor Offset und deaktivierten Sensoren zur Berechnung der Notbremse

Anmerkung: Die erste sollte bei allen ab jetzt immer in der Taskleiste zu sehen sein (wenn ihr NHC einstellt die CPU-Temperatur zu zeigen)
Die zweite sollte bei Leuten mit Doppel-Kern zu sehen sein. Habe hier keinerlei Feedback ob es funktioniert.

Notebook Fan Control
Mode kann zwischen Manuell (1), d.h. der Lüfter wird auf das Level welches unter Manuel Level eingetragen ist gesetzt
NHC (2), der Lüfter wird entsprechend den ausgelesenen Temperaturen gesetzt und
ACPI (3), der Lüfter wird vom Bios Controlliert


Fan Settings
Es gibt nur 5 Verschiedene Fan Level, diese können hier gesetzt werden. Ausserdem können die Grenzen wann der Level geändert wird hier angepasst werden, die Werte erklären sich von selbst.
Achtung Bei 75° greift eine Notbremse, sobald irgentein Sensor diesen Wert überschreitet (egal welcher Modus aktiviert ist und welche Offset Werte gesetzt sind, selbst deaktiverte Werte werden u.U. ignoriert, siehe unten unter Fortgeschritten) wird der Lüfter an das Bios zurückgegeben! Ausserdem piepst es dann dreimal und die Standbyleuchte blinkt...

Temperature Sensors
Offset Werte: Wozu diese sind:
Möchte man dass die CPU, den Lüfter bei 45° anschmeisst auf Low Level, die GPU dies jedoch erst ab 48° tut (also 3° bei allen Leveln später) so ist die Fan-Treshhold von Off->Low auf 45 zu setzten, der CPU Offset auf 0, der GPU offset auf 3!
Die Namen der Temperatur Sensoren sind selbstverständlich nur auf einem t43p richtig! So wie in tpfanctrl

Hardware Class
Kleine Spielerei: Thinklight und Bluetooth an und ausschalten

LCD Brightness Control
das aktuelle Helligkeitslevel setzten



Für Fortgeschrittene
Die wichtigsten Einstellungen können auf den ersten paar Seiten der cs Datei vorgenommen werden.
Bei einigen Modellen funktioniert die Displayhelligkeitsregelung nicht, deshalb am besten deaktieren: Dazu in der ibm.cs die Zeile
#define brightness in
#undef brightness ändern (wirklich undef, nicht undefine).
Bluetooth ist ebenfalls so komplett zu deaktivieren.
Die extendetFanControl kann aktiviert werden, jedoch gibt es einfach nur einen Haufen Fehler, also besser auslassen
Die Sensornamen können unter TSENORNAMES angepasst werden,
Die Notebremse kann nur deaktiviert werden indem man selbst den Code anpasst oder den Wert für Emercencybrake höher stellt. Wenn gewünscht wird, dann kann ich dies in der nächsten Version auch standartmäßig erhöhen.
Neu in v0.9: Die Temperatursensoren können nicht mehr im Laufenden betrieb für die Notbremse deaktiviert werden. Stellt dazu bitte die Standartaktivwerte um...

P.S: Ich möchte nicht zuviel direkt hier bekannt geben: Wer sich auskennt oder den Thread liest wird sehr viel auch ausführlicher erklärt bekommen. Man muss halt selbst Hand anlegen, was ich als Sicherheitsplus sehe. Jedoch ein Anfänger sollte nicht zuviel daran rumschrauben...

So viel Spaß damit

Ach ja: Erfolgreich getestet wurde auf
t43, t60, r60
x60 jedoch macht hier die Helligkeit Probleme


Carl

P.S: Wäre nett wenn gesagt würde auf welchen Modellen es funktioniert, und bei Fehlern bitte den Debug Modus in NHC ACPI aktivieren und das Log mitposten.
 
man könnte sicherlich genau wie beim Desktoprechner einen Widerstand einlöten, und somit die anliegende Spannung verringern...allerdings dürfte man dabei die Garantie verlieren, und dann könnte man auch gleich den M10 Longfan nehmen....
 
Original von hHhwqH
man könnte sicherlich genau wie beim Desktoprechner einen Widerstand einlöten, und somit die anliegende Spannung verringern...allerdings dürfte man dabei die Garantie verlieren, und dann könnte man auch gleich den M10 Longfan nehmen....

Ja das möchte ich auf keinen Fall. Garantie ist mir sehr wichtig.

Hab aber jetzt die Temperatur auf 52grad angehoben ab der der Lüfter angeht und höre es somit nur noch sehr selten.
 
Hi,

ich hab mal noch einige Fragen zum neuen 0.9er Skript:

1. Wie lange blinkt mein Mond in der LED-leiste? denn bei mir hört er weder beim beenden von acpi noch beim schließen von nhc auf

2. Wenn ich option "modified temp" aktiviere liest er statt der cpu-temp immer die gpu temp aus - richtig? kann ich erreichen, dass er im nhc und in der task-leiste dann auch das wort "gpu" vor den temp-wert setzt?

3. ich habe versucht auf im manual-control den lüfter auf "0" zu stellen - ohne erfolg. funktioniert das nicht so lange IRGENDEIN sensor mehr als 75° misst? (bei nicht-verändern des skipts)?

4. Wenn ich die lcd-control mit einbinden möchte, muss ich die einstellungen dazu in der *.cs datei vornehmen

vielen dak für das tool und auch für eure hilfen

Hitman
 
CPU Geschwindikeit

Frage zur CPU Geschwindigkeit:

Stelle ich "Dynamic Switching" im NHC ein, läuft mein Prozessor (T2500) trotz minimaler Auslastung (0-5%) quasi immer mit maximaler Geschwindigkeit (12x, 1.2625 V, ca. 1995 MHz).

Ist nicht der Sinn des dynamischen Switchings, dass er auch mal deutlich langsamer läuft?
 
@ Hitman

zu...

1. Das ist nicht im Sinne des Erfinders. Welches ThinkPad hast Du? Es gibt evtl. Kompatibilitäts-Schwierigkeiten, weil der Entwickler (Carl) dieses Script für seinen T43p geschrieben hat. Ich habe diese Funktion für meinen ThinkPad im Script deaktiviert ("#define led" -> "#undef led").

2. Das ist nicht richtig. Das Script ließt immer alle Temps aus :). Allerdings kann es denn Lüfter anhand einer modifizierten Temperatur steuern, das ist der Clue dieses Scriptes ;). Unter "Temperature Sensors" kannst Du für den höchsten Temp-Wert einen Offset eintragen, der sich lediglich auf die "Modified Temperature" auswirkt. Diese wiederum wird bei unverändertem Script auch als "Thermal-Zone" für NHC eingetragen, nämlich als THM0. Du kannst also in Deiner Task-Leiste entweder die modified Temp sehen (THM0) oder die von NHC am Prozessor bestimmte Temp sehen (THM1). Falls du keinen Offset eingetragen hast und die Grafikkarte den höchsten Temp-Wert hat, dann ist die modified Temp = Graka Temp. Ich hoffe das war jetzt nachvollziehbar 8).

3. Es gibt im Scrip in der Tat eine so genannte "Emergancy Brake", die bei 75° IRGENDEINER Temperatur und unbeachtet der modified Temp anspringt. Eine sehr sinnvolle Sache, wie ich finde 8). Du kannst aber diesen Wert im Script bei Bedarf anheben... aber bitte mit Vorsicht!

4. ... bin' mir nicht ganz sicher was Du meinst... Falls Du die Brightness-Control meinst, dann ist diese von vornherein aktiviert.

@ thinkpad123

Das ist bei mir genauso. Ich habe irgendwo gelesen, dass die aktuelle Version noch keine Implementierung für Dynamic Switching habe??? Es funktioniert bei mir allerdings, wenn ich "Energiesparmodus" als Win.Powerplane verwende (Win.Vista) und dafür dann per NHC Dynamic Switching aktiviere. Ähnliches Problem stellt sich bei mir übrigens auch ein, wenn ich unter "Voltage" eigene Werte einstelle.

Gruß, sonny
 
@Hitman

Sonny hat ja gerade eben alles soweit erklärt. Ich habe die Sache mit dem LED blinken ausgiebig getestet. Bei mir funktioniert das einwandfrei. Springt an wenn die 75° überschritten werden und hört auf bei Unterschreitung // Deaktiviertung von NHC. Da es bei dir nicht klappt 2 Fragen:
1. Welches Modell nutzt du, falls du ein T60 hast, da sind 75° scheinbar zu wenig... (Bei meinem t43p mit FarCry übrigens auch wie ich gerade feststelle :-D ) ließ mal die letzten paar Seiten des Threads das wurde diskutiert.
2. Nutzt du die pre 6er Version? Falls nein, bitte update da die "close" Funktion erst dort implementiert wurde (Es wäre auch interessant zu erfahren ob das Skirpt überhaupt mit der alten Version funzt...), falls ja deaktiviere einfach die LED-Funktion wenn es dich stört.

Gruß

Carl


P.S: Die Namensänderung unter 2. ist nicht möglich... leider
 
Dank an Carl + Lüfterverhalten

@ Carl

Vielen Dank Carl für das hervorragende Skript! Es funktioniert großartig und potenziert die Freude an meinem neuen ThinkPad (nachdem ich das Lüfter-Fiepen bei den hohen Ausgaben erst einmal verdauen musste...) :).

-------------------------------

Ich habe mal bei einer Gelegenheit das Lüfterverhalten mit unterschiedlichen Schwellenwerten für die erste Stufe beobachtet und dabei folgende Daten erhoben (CPU: T2500; GPU: ATI x1400; keine Systembelastung):


(Einfach dem Link folgen...)

Mein Kommentar:
Ich habe i.d.R. zwei Messungen durchgeführt um einen genaueren Wert zu erhalten.
Die Werte habe ich bei einem bereits warmen ThinkPad erhoben, bei einem kühlen ThinkPad sehen die anders aus.
Diese Tabelle bestätigte meine Vermutung, dass es einen optimalen Kühlungspunkt geben muss, über welchen hinaus die Effizienz des Lüfters wieder abnimmt. Es kann als Orientierungshilfe für die eigene Konfigurations des NHC Skriptes von Carl dienen.

Ich erhebe keinen Anspruch auf Irrtumslosigkeit, daher sind Korrekturen und Vervollständigungen gerne willkommen!

Bin' auf Rückmedldungen sehr gespann!

Gruß, sonny
 
Also wenn ich deine Grafik richtig interpretiere sagst du dass die fett gedruckten Einstellungen die besten sind oder?Ist das nicht ein bisschen hoch, 55 Grad zum Einschalten?Was vertraegt denn ein C2D so?
 
Hallo seba2904,

allem Vorab, ich habe großen Respekt vor den ThinkPads. Ich bin von der Leistung des Gerätes total begeistert. Daher ist es nicht in meinem Interesse der Hardware zu schaden ;) .

Kurz etwas zur BIOS-ACPI:
Ich denke, dass die Entwickler von Lenovo gute Gründe dafür haben, wie sie die ACPI programiert haben.
Meine Beobachtung ist, dass die BIOS-ACPI die CPU bei ungefähr 45° halten möchte aber auch gleichzeitig andere Sensoren überewacht (z.B. auch die GPU, allerdings sind alle meine Versuche dort ein vernünftiges System zu sehen gescheitert...). Jetzt bei sommerlichen Temperaturen schaltet sich bei mir nach kurzer Betriebszeit der Lüfter sogar auf Stufe 2, ohne dass die Temperatur dafür sonderlich hoch krabbeln müsste. Das nur so als Info wie komplex die ACPI programmiert sein muss...
Ich habe aber auch festgestellt, dass die BIOS-ACPI es nicht für nötig hält, den Lüfter auf Stufe 3 zu schalten, wenn ich die 70° Marke an der CPU überschreite ?( . Soviel zu der Frage, was ein Core Duo so aushält. (Ich meine irgendwo gelesen zu haben, dass es für einen Core Duo ab 99° kritisch wird - bitte nicht ausprobieren!!!).

Jetzt noch etwas zu dem, wie ich persönlich die Infos umsetze:
Ich lasse i.d.R. die BIOS-ACPI den Lüfter steuern (ich vertraue halt den Lenovo-Programierern). Wenn ich aber abends in stiller Umgebung konzentriert arbeiten möchte und keine hohe Leistung brauche, dann hilft eine Veränderung der Schwellenwerte dem ThinkPad zu mehr Ruhe. Wie jemand diese setzen will, bleibt jedem selbst überlassen. Mir persönlich scheinen in der Tat die fettgedruckten in meiner Grafik die sinnvollsten zu sein.
Außerdem erlaube ich es mir hin und wieder der BIOS-ACPI nachzuhelfen und schalte den Lüfter selbst auf Stufe 3, wenn mir der Prozessor zu heiß wird.

In dem Sinne bin ich für das Skript sehr dankbar!

Gruß, sonny
 
ziemlich coole tabelle! vielen dank dass du dir die mühe gemacht hast.

sehe ich das richtig, dass du eine niedrige frequenz anstrebst um den geräuschpegel gleichmäßig zu halten und ein hohes S/A-Verhältnis um die "Stille Zeit" hoch zu halten?

nimmst du die cpu-temp als refernzwert?

Edit:
1. meine CoreDuo läuft im mom (idle-mode) bei 53-55° (gleiches NB wie sonny - T60 2007-63G) ich denke das dies keine kritische temperatur sein kann. wie sonst sollte ich im sommer mit meinem NB arbeiten

2. ist euch aufgefallen, dass die einezlnen der 7 stufen zum teil kaum unterschiede bieten. da nie eine feste drehzahl gehalten wird sondern immer ein toleranzbereich angesprochen wird scheinen die 7 stufen etwas seltsam. auch der drehzahl-sprung von einer stufe zur nächsten ist nicht homogen. ist das bei euch auch so?
 
@ Hitman

Genau so ist es 8).

Ich habe aber auch festgestellt, dass die Grafikkarte in meinem ThinkPad bei normalem Betrieb der CPU in etwa um 23° voraus läuft. Also habe ich den Offset für die Graka auf 23 gesetzt und somit beziehen sich die Werte sowohl auf die CPU als auch GPU.

Gruß, sonny
 
Original von sonny
@ thinkpad123

Das ist bei mir genauso. Ich habe irgendwo gelesen, dass die aktuelle Version noch keine Implementierung für Dynamic Switching habe??? Es funktioniert bei mir allerdings, wenn ich "Energiesparmodus" als Win.Powerplane verwende (Win.Vista) und dafür dann per NHC Dynamic Switching aktiviere. Ähnliches Problem stellt sich bei mir übrigens auch ein, wenn ich unter "Voltage" eigene Werte einstelle.
Gruß, sonny
Funktioniert 100%ig!!!!!!! :D Danke für den Tip!!!!!

Mein Prozessor läuft nun fast permanent mit 0.95 V ( 998 MHz, 6x). Sobald er ausgelastet wird (z.B. mit Calc-Test) springt er auf 1.2625 ( 1998 MHz, 12x). Genau so wollte ich es haben!!!!!

NHC ist dafür noch nicht mal erforderlich!!!! Kann Vista mit "Boardmitteln".

Und das Profil "Energiesparmodus" kann ja genauso so konfiguriert werden wie bspw. "Ausbalanciert" oder "Höchstleistung". Man hat also kein Nachteil dadurch....

Gruß
 
@ Hitman

Der Lüfter besitzt effektiv nur 3 Geschwindigkeits-Stufen, deren Umdrehungszahlen in der Tat nicht homogen sind.

Wie ich es beobachtet habe, sehen diese wie folgt aus:

1. Stufe: 1 + 2; ca. 2950 rpm.
2. Stufe: 3, 4 +5; ca. 3400 rpm.
3. Stufe: 6 +7; ca 3750 rpm.

... noch ein weiterer Gedanke, es lohnt sich evtl. den Lüfter im Sommer nur mit der 2. oder 3. Stufe zu verwenden. Je nachdem wie heiß es im Raum ist.

Dazu kann man im Skript von Carl z.B. den Wert für "Fan Middle Level" auf "5" setzen und "Fan Low Level" auf "3".

Gruß, sonny
 
Was mich ja tatsächlich mal interessieren würde ist, ob man den Lüfter nicht auch dauerhaft mit verringerter Geschw. laufen lassen kann....

In einem Desktop PC kommt doch auch keiner auf die Idee, die Lüfter immer wieder an und aus zu machen. Wie wäre es denn, wenn man da tatsächlich einen Widerstand einlötet würde, so dass die erste Stufe eventuell nur 2000rpm macht. Diese könnte man dann vermutlich dauerhaft an lassen (einfach den aus-befehl auf eine sehr niedrige Temperatur setzten) und würde ein konstantere Temp-Kurve erhalten. Dieses Periodische an und aus würde ich mit

gar keine Kühlung ->scheiße: zu heiß->viel Kühlen.....puhh ganz schön kalt ->Kühlung aus.....boa ist das heiß->Kühlung an....

übersetzten.

Bleibt die Frage, ab welcher Spannung der überhaupt anfängt zu drehen....

Und zu guter letzt ist diese modifikation wohl eher etwas für die "Glücklichen", welche nicht noch drei Jahre Garantie vor sich haben ;)
 
gar keine Kühlung ->scheiße: zu heiß->viel Kühlen.....puhh ganz schön kalt ->Kühlung aus.....boa ist das heiß->Kühlung an....
... so könnte man wirklich den "Arbeits-Alltag" der ACPI beschreiben :D , wie gut, dass es voll automatisch funktioniert!

Aber mal im Ernst:
Es wird Dich vermutlich keiner daran hindern einen Widerstand an Deinen Lüfter zu löten. Ich würde Dir aber eher zu einem Longfan raten, wie z.B. den oben erwähnten "M10". Ich habe bisher von denen, die es ausprobiert hatten, eher positive Resonanz gelesen.

Gruß, sonny
 
Muss man den Widerstand unbedingt an den Lüfter anlöten? Bei Desktop PCs kann man doch einfach so ein Kabel an dem Sromkabel des Lüfters zwischenschalten und schon läuft er (je nach Kabelmodell) auf einer niedrigeren Voltzahl und damit auch Drehzahl. Geht sowas bei TPs auch?

Das dürfte doch sogar noch nichtmal die Garantie zerstören, weil man das ja ohne Rückstände wieder zurückbauen kann.
 
Könnte sein, dass dein TP merkt, dass mit dem Lüfter irgendwas nicht stimmt. Dann zeigt es dir einen Fehler an und weigert sich zu starten. Zumindest passiert das, wenn du das Lüfterkabel absteckst.
 
Je nach Thinkpad geht das doch einfach auch mit dem NHC ACPI Script.

Einfach in der Lenovo.cs oder IBM.cs nach:

static readonly int[] extFanCtr = {2000, 3000, 4500};

suchen und dort die gewünschten Werte für Low, Mid, High eintragen.
 
Original von snowtiger
Je nach Thinkpad geht das doch einfach auch mit dem NHC ACPI Script.

Einfach in der Lenovo.cs oder IBM.cs nach:

static readonly int[] extFanCtr = {2000, 3000, 4500};

suchen und dort die gewünschten Werte für Low, Mid, High eintragen.

Bei welchen Thinkpads geht das denn?

Also ich hab die Lenovo.cs mit dem Edior geöffnet und die Werte geändert und abgespeichert.
Hab dann NHC neugestartet. Hat leider keine Auswirkung auf mein Gerät.
 
#if extendetFanControl
#region for the extendet fan controll of the x3y and x4x notebooks
public static class EXTENDET_FAN_CONTROLL //only for x30 to x40

Also nur für X30 und X40, ich kann leider nicht zu gut programmieren, um das auch für T60 o.a. zu ermöglichen, aber vll. jmd hier im Forum?
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben