speedinator
Ensign
- Registriert
- Apr. 2011
- Beiträge
- 140
Hi Leute, ich poste hier mal eine Config für ein Lenovo Ideapad 500s. Es handelt sich dabei nicht um eine klassische Lüftersteuerung, sondern um eine Art „kreativen Missbrauch“ der EC-Steuerfunktionen von NBFC. Zunächst habe ich auch nach vielen Versuchen/Test mit RW-Everything keinen direkten Zugang zur manuellen Lüftersteuerung im EC finden können. Allerdings habe ich gemerkt, dass ich eine Änderung der Temperaturwerte im EC die Lüftersteuerung beeinflusst.
Die Register beim Lenovo konnte ich wie folgt entschlüsseln:
6: Fan-Geschwindigkeit (leider nur read only)
176: Temperatur (in Grad Celsius)
218-219: „Counter“ 1 für Fan-Stufen → Ein Zähler, der von 0 bis ca. 20 läuft. Ich vermute, er bestimmt die Verweildauer auf einer bestimmten Fan Stufe, nachdem eine bestimmte Temperatur erreicht wurde -> wirkt wie ein Verzögerer/Dämpfer für die Erhöhung/Reduzierung der Fan-Geschwindigkeit, falls die Temperatur der CPU nur kurz über/unter einen bestimmten Wert steigt/fällt. (Word 16bit)
220-221: „Counter“ 2 (ähnlich Counter 1)
Hilft mir erst mal für eine echte Lüftersteuerung so nicht weiter. Möglich ist aber Folgendes: Ich zweckentfremde die Funktion der Fankonfiguration von NBFC, um den Temperatur-Register 176 zu überschreiben.
Sieht konkret aus wie folgt: NBFC Fan-Write auf Register 176 setzen mit Fan Speed Min=0 und Fan Speed Max=100. Die in der Config bei den Temperatur-Thresholds gesetzten Werte überschreiben jetzt folglich nicht (wie eigentlich angedacht) den Fan-Register, sondern den Temperatur-Register 176. Bsp.: Eine Lüftergeschwindigkeitsstufe in der Config von 51% schreibt jetzt den Temperaturwert 51° in den Register 176. Es findet praktisch eine Temperaturverschiebung statt. Der Ec denkt, er ist bei 51°ist und regelt aus seiner Automatik die Lüftergeschwindigkeit. Letztlich ist es eine Bruteforcemethode zur Überschreibung der Temperatur im EC.
Frage: Beißt sich da nicht die Schlange in den Schwanz, wenn NBFC die Temperaturwerte im EC überschreibt, aber gleichzeitig ja die korrekten Temperaturwerte braucht, um die Config umzusetzen? Da NBFC ja die ACPI-Schnittstelle (weitere Methode zum Auslesen der Temperatur) und nicht aus dem EC liest, gibt es da auch keinen „Kurzschluss“. Auch die anderen bekannten Tools (hwinfo/intel xtu/throttlerstop) lesen die korrekte Temperatur aus. Nur die Lüftersteuerung regelt sich nach den Temperaturwerten aus dem EC.
Weiterer kleiner Vorteil: Mein Ideapad fällt nicht mehr auf den Basis-Takt von CPU/GPU zurück, falls die Temperatur läppische 65° überschreitet und throttled auch nicht mehr ab 75°. Kleiner Tipp am Rande: konsequentes undervolten von CPU und GPU mit Hilfe von Intel XTU/throttlestop hat hier auch schon kleine Wunder bewirkt.
Vielleicht wäre es möglich, diese alternative Methode als Option in NBFC zu integrieren. Hier der Link zur Config: https://www.dropbox.com/s/nixe9zmmlf8jk7o/Lenovo Ideapad 500s.xml?dl=0
Und Glückwunsch zum Leserartikel, Grantig!
Die Register beim Lenovo konnte ich wie folgt entschlüsseln:
6: Fan-Geschwindigkeit (leider nur read only)
176: Temperatur (in Grad Celsius)
218-219: „Counter“ 1 für Fan-Stufen → Ein Zähler, der von 0 bis ca. 20 läuft. Ich vermute, er bestimmt die Verweildauer auf einer bestimmten Fan Stufe, nachdem eine bestimmte Temperatur erreicht wurde -> wirkt wie ein Verzögerer/Dämpfer für die Erhöhung/Reduzierung der Fan-Geschwindigkeit, falls die Temperatur der CPU nur kurz über/unter einen bestimmten Wert steigt/fällt. (Word 16bit)
220-221: „Counter“ 2 (ähnlich Counter 1)
Hilft mir erst mal für eine echte Lüftersteuerung so nicht weiter. Möglich ist aber Folgendes: Ich zweckentfremde die Funktion der Fankonfiguration von NBFC, um den Temperatur-Register 176 zu überschreiben.
Sieht konkret aus wie folgt: NBFC Fan-Write auf Register 176 setzen mit Fan Speed Min=0 und Fan Speed Max=100. Die in der Config bei den Temperatur-Thresholds gesetzten Werte überschreiben jetzt folglich nicht (wie eigentlich angedacht) den Fan-Register, sondern den Temperatur-Register 176. Bsp.: Eine Lüftergeschwindigkeitsstufe in der Config von 51% schreibt jetzt den Temperaturwert 51° in den Register 176. Es findet praktisch eine Temperaturverschiebung statt. Der Ec denkt, er ist bei 51°ist und regelt aus seiner Automatik die Lüftergeschwindigkeit. Letztlich ist es eine Bruteforcemethode zur Überschreibung der Temperatur im EC.
Frage: Beißt sich da nicht die Schlange in den Schwanz, wenn NBFC die Temperaturwerte im EC überschreibt, aber gleichzeitig ja die korrekten Temperaturwerte braucht, um die Config umzusetzen? Da NBFC ja die ACPI-Schnittstelle (weitere Methode zum Auslesen der Temperatur) und nicht aus dem EC liest, gibt es da auch keinen „Kurzschluss“. Auch die anderen bekannten Tools (hwinfo/intel xtu/throttlerstop) lesen die korrekte Temperatur aus. Nur die Lüftersteuerung regelt sich nach den Temperaturwerten aus dem EC.
Weiterer kleiner Vorteil: Mein Ideapad fällt nicht mehr auf den Basis-Takt von CPU/GPU zurück, falls die Temperatur läppische 65° überschreitet und throttled auch nicht mehr ab 75°. Kleiner Tipp am Rande: konsequentes undervolten von CPU und GPU mit Hilfe von Intel XTU/throttlestop hat hier auch schon kleine Wunder bewirkt.
Vielleicht wäre es möglich, diese alternative Methode als Option in NBFC zu integrieren. Hier der Link zur Config: https://www.dropbox.com/s/nixe9zmmlf8jk7o/Lenovo Ideapad 500s.xml?dl=0
Und Glückwunsch zum Leserartikel, Grantig!
Zuletzt bearbeitet: