Geringster Teiler der sich lohnt ist 110, da 4500 rpm so das Maximum ist, und die Konstante ist 491520. Also ein Einstellbereich von 0 - 145.
Ich häng heute mal das erste wirklich funktionierende .cs ran. Für Columbiamodelle mit PEG Grafikkarte wird die LCD Kontrolle sicherlich nicht gehen, das könnte man aber fixen, in dem da einfach die Pfade anpasst. Damit sollten die, wo die interne Kontrolle total kaputt ist, erstmal Leben können.
Zur Temperaturkontrolle: Es gibt 7 Activestates. Ist die Temperatur über der Temperatur in der 7ten oder unter der Temperatur in der ersten, dann wird der EC eingeschaltet.
Eigentlich reichen 3 Zonen, dank Interpolation, aber naja.
Wenn Interpolation aus ist, dann wird die Hystereseschleife so aufgebaut, dass wenn die alte Speed höher als die berechnete ist, von einer abnehmenden Temperatur ausgegangen werden kann, und dann wird die Speed der nächstgrößeren Activezone genommen.
Das klappt einigermaßen, ich hatte jetzt noch eine Idee mit einem verzögerten internen Abflauverhalten für die Temperatur, das erscheint mir besser (d.h. die Temperatur hängt beim Sinken immer etwas hinterher).
Standardmässig wird der Lüfter ab 40 Grad eingeschaltet auf niedrigste Stufe. Das ist besser als ein ständiges mal and mal aus. Kann man natürlich durch geschickte Vergabe der Temperaturtrippoints anpassen.
ACHTUNG: das ganze muss in das ACPI-Subdir von NHC, NHC neustarten. Dann erstmal in der ACPI Kontrolle im NHC eingeschalten (2mal, einmal direkt und einmal "Advanced Fan Control" dazu). Interpolation kann bei Bedarf auch an.
Es ist noch keine Überprüfung eingebaut, also keine dämlichen Werte eintippern, d.h. Active[n].temp muss immer kleiner als Active[n+1].temp sein. Für die Speeds ist es egal, wird nur ein sehr komisches Verhalten hervorrufen, wenn die Werte bei ansteigender Temp abnehmen.
bas
ps: der Bitschalter für den Lüfter.. ist mir aufgefallen, das ich den zufällig gefunden habe, da ich die bits in 0x93 statt 0x92 probiert hab, in ACPI Bios steht 0x92 für irgendwelche Temperaturbits und die wollt ich testen und hab dann in 0x93 gefummelt
Ich häng heute mal das erste wirklich funktionierende .cs ran. Für Columbiamodelle mit PEG Grafikkarte wird die LCD Kontrolle sicherlich nicht gehen, das könnte man aber fixen, in dem da einfach die Pfade anpasst. Damit sollten die, wo die interne Kontrolle total kaputt ist, erstmal Leben können.
Zur Temperaturkontrolle: Es gibt 7 Activestates. Ist die Temperatur über der Temperatur in der 7ten oder unter der Temperatur in der ersten, dann wird der EC eingeschaltet.
Eigentlich reichen 3 Zonen, dank Interpolation, aber naja.
Wenn Interpolation aus ist, dann wird die Hystereseschleife so aufgebaut, dass wenn die alte Speed höher als die berechnete ist, von einer abnehmenden Temperatur ausgegangen werden kann, und dann wird die Speed der nächstgrößeren Activezone genommen.
Das klappt einigermaßen, ich hatte jetzt noch eine Idee mit einem verzögerten internen Abflauverhalten für die Temperatur, das erscheint mir besser (d.h. die Temperatur hängt beim Sinken immer etwas hinterher).
Standardmässig wird der Lüfter ab 40 Grad eingeschaltet auf niedrigste Stufe. Das ist besser als ein ständiges mal and mal aus. Kann man natürlich durch geschickte Vergabe der Temperaturtrippoints anpassen.
ACHTUNG: das ganze muss in das ACPI-Subdir von NHC, NHC neustarten. Dann erstmal in der ACPI Kontrolle im NHC eingeschalten (2mal, einmal direkt und einmal "Advanced Fan Control" dazu). Interpolation kann bei Bedarf auch an.
Es ist noch keine Überprüfung eingebaut, also keine dämlichen Werte eintippern, d.h. Active[n].temp muss immer kleiner als Active[n+1].temp sein. Für die Speeds ist es egal, wird nur ein sehr komisches Verhalten hervorrufen, wenn die Werte bei ansteigender Temp abnehmen.
bas
ps: der Bitschalter für den Lüfter.. ist mir aufgefallen, das ich den zufällig gefunden habe, da ich die bits in 0x93 statt 0x92 probiert hab, in ACPI Bios steht 0x92 für irgendwelche Temperaturbits und die wollt ich testen und hab dann in 0x93 gefummelt