Gibt es so etwas wie K10stat für Linux?

Peet007

Admiral Special
Mitglied seit
30.09.2006
Beiträge
1.883
Renomée
39
Wie der Titel schon sagt suche ich so etwas wie K10stat für Linux.

Auf der officiellen Dowloadseite für CPU Treiber von AMD gibt es nur den C&Q Treiber und CPUID. Bin mir aber fast sicher das AMD bestimmt noch andere Programme hat. Mit denen man VCore und Taktung unter Linux beeinflussen kann.

Weis jemand ob es so was gibt?
 
Für die Taktung zwischen den normalen Frequenzen gibt es cpufreq. Das sollte bei Ubuntu eigentlich schon installiert sein: http://wiki.ubuntuusers.de/Prozessortaktung

Für custom-Frequenzen und Undervolting gibt es phc-module (ich nutze das phc-intel modul auf meinem Laptop). Da weiss ich aber nicht inwieweit sowas für Ubuntu verfügbar ist. Das ist auch etwas komplizierter. Aber der großen Community sollte sich da etwas finden lassen. ;D
Über google hab ich was gefunden: http://linuxundich.de/de/ubuntu/ppa-fur-jaunty-mit-gepatchtem-kernel-zum-undervolten/
 
Mit cpupowerd kann man zumindest undervolten.
Frequenzen verstellen und Northbridge-spielereien auf Klicki-Bunti Basis gehen aber damit nicht.

lg
__tom
 
Es gibt k10ctl [1]. Das ist zwar teilweise etwas buggy: Bspw. werden die Spannungen bei System mit PVI-Spannungseinstellung nicht richtig angezeigt, da der Autor die Spezifikation von AMD nicht richtig gelesen hat... aber ansonsten funktioniert es gut.
Ich werde eventuell eine C-basierte Version davon implementieren, Pascal ist mir zu 1990 und kaum jemand hat überhaupt einen Pascal-Compiler auf seinem System.

Undervolten ist auf dem K10 viel einfacher als auf dem K8, da das Powermanagement jetzt hardwarebasiert ist. Man muss lediglich in den Registern des Prozessors (MSRs) Die P-States mit Multiplikator, Spannung etc. festlegen. cpufreq schaltet dann ohne Wissen über die genauen Details der P-States zwischen ihnen um, das genaue Timing und kontrollierte Anheben/Absenken der Spannung erledigt der Prozessor selbst. Daher ist so etwas wie PHC nicht mehr nötig, alles läuft mit dem Standardkernel.

@Perry3D, mit cpufreq kann man nicht undervolten. Das schaltet nur zwischen den definierten P-States um.

@tomturbo, cpupowerd funktioniert nur mit dem K8 und hat einige prinzipielle Schwächen, da es im Userspace läuft.


[1] Ich darf irgendwie keine URLs posten? Probiert es mal mit Google.
 
Frequenzen hinzufügen oder verstellen ist unter Linux zumindest bei AMD CPUs (derzeit) nicht möglich.

Wie tomturbo schon sagte kannst du mit cpupowerd die Spannungen der einzelnen Frequenzen anpassen.
Alternativ gibt es auch noch einen Kernel Patch, mit dem du die Spannungen als Boot Parameter oder Module Parameter definieren kannst.
Das hat gegenüber cpupowerd den Vorteil, dass kein Daemon im Hintergrund laufen muss, der die Anpassung vornimmt.
Allerdings ist meines Wissens der Patch für neuere Kernel nicht mehr verfügbar, bis hin zu 2.6.30 sollte der Patch aber auch funktionieren.
 
Ich möchte noch einmal daran erinnern, das CnQ auf dem K10 ganz anders funktioniert und alles was auf den K8 zutrifft keine Gültigkeit hat. Und hier geht's um den K10. ;)
 
Eine kleine Info zu K10ctl und ein paar beispielzeilen die ich auf meinem PhenomII 955BE nachvollzogen habe, finden sich im Prozessor/Overclocking - Forumsteil.
Hätt ich nur mal früher hier reingeguckt, hab mich nach k10ctl fast nen wolf gegoogelt ;)

Pascal ist in der Tag quelltextmäßig gewöhnungsbedürftig, aber gibt schlimmeres.
Das tool besitzt auch keine GUI (noch niht ;) ) aber die Settigns sind gut erklärt.

Das cpufreq-framework bekommt aber auch nichts mit vom umdefinieren der P-States!
Soweit ich weiß ist cpufreq im Kernel momentan in der Art statisch, dass es sich beim Booten aus der DSDT des BIOS die Spannungs und Frequenz-Paare beschafft (und daher auch weiß, welche Stufen der Prozzi überhaupt kennt) da ich mehrere Anleitungen gefunden hatte zum overclocken bzw. undervolten mittels gepatchter DSDT.
Jedenfalls merkt sich cpufreq die Werte die es von ACPI bekommt, wenn man sie zur laufzeit mit k10ctl ändert, merkt das cpufreq also nicht.
D.h. in der scaling_available_frequencies werden immernoch die ursprünglichen frequenzen der P-states stehen, auch wenn man sie mit k10ctl umdefiniert hat.
Ist etwas gewöhnungsbedürftig, tut der Funktion aber keinen Abbruch.
Dem ondemand-governor des kernels und den userspace-utilities ist das auch ziemlich wurscht, da diese die P-states in HW anfahren (zumindest bei K10 prozessoren) und welche frequenzen dazugehören ist dem kernel eigentlich egal. Die frequenzen als solche sind eher dafür da dass der user den überblick behält, da es den benutzern mehr sagt wenn steht 800Mhz dransteht, als "P-state: 3".

@bengal wenn du wirklich eine C-Version davon implementieren solltest, sag bescheid, ich teste die gern und wenn ich Bock hab schreib ich noch ne Kleine GUI in Qt dazu ;)

grüßchen
ich
 
Pascal ist in der Tag quelltextmäßig gewöhnungsbedürftig, aber gibt schlimmeres.
Das tool besitzt auch keine GUI (noch niht ;) ) aber die Settigns sind gut erklärt.

Das Problem sehe ich eher darin, dass auf keinem unixoiden System standardmäßig ein Pascal-Compiler zu finden ist.

Das cpufreq-framework bekommt aber auch nichts mit vom umdefinieren der P-States!
Soweit ich weiß ist cpufreq im Kernel momentan in der Art statisch, dass es sich beim Booten aus der DSDT des BIOS die Spannungs und Frequenz-Paare beschafft (und daher auch weiß, welche Stufen der Prozzi überhaupt kennt) da ich mehrere Anleitungen gefunden hatte zum overclocken bzw. undervolten mittels gepatchter DSDT.

Neuere Versionen vom Treiber powernow-k8 holen sich die Werte direkt aus den MSRs, also hilft ein Neuladen des Moduls, damit es die neuen Frequenzen mitbekommt. Aber so wichtig ist das wahrscheinlich nicht, wenn man die Frequenzen nicht massiv ändert. Wie du richtig angedeutet hast steuert powernow-k8 die P-States nicht selbst an, sondern der Prozessor macht das.

@bengal wenn du wirklich eine C-Version davon implementieren solltest, sag bescheid, ich teste die gern und wenn ich Bock hab schreib ich noch ne Kleine GUI in Qt dazu ;)

Schauen wir mal. Eventuell kann die dann auch etwas mehr.
 
Zuletzt bearbeitet:
Gut. Es wäre z.b. schön wenn man die infos zum ist-Zustand nicht nur in einer Liste ausgeben könnte, sondern gezielt abfragen. (oder ggf. in einer anderen Form)
Das erleichtert es bei der GUI-Programmierung, die richtigen Default-Werte zu setzen für comboboxen, textboxen o.ä.

Das mit dem Pascal-compiler stimmt, allerdings ist das nicht weiter tragisch solange das executeable statisch kompiliert ist. Bei mir läuft ein Debian SID 64bit - system und selbst da funktioniert das prekompilierte executeable.
Ich weiß, ist kein Argument bei OS - software, aber daher finde ich die Abwesenheit des pascal-compilers nun nicht unbedingt ein Staatsakt. apt-get install freepascal würde in meinem Fall schon genügen... ;)

trotzdem wäre natürlich eine C-Version überaus praktisch.

grüßle,
ich

P.S. danke für die Info zum powernow-k8 - Modul. Werde das mal austesten.
 
hab mnir nen kleines script geschreieben was zusammen mit powernowd arbeitet.

#!/bin/sh
#killall -9 -g powernowd
#powernowd -m 1

echo
if [ $1 ];then
if [ "$1" = "max" ];then
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
sleep 1
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
elif [ "$1" = "min" ];then
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
elif [ "$1" = "eco" ];then
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
fi
fi

sleep 1
cat /proc/cpuinfo | egrep 'model name|cpu MHz' | sed 's/model name/CPU/g' | sed 's/cpu MHz/MHz/g' | sed 's/\t//g' | sort | uniq

echo


hast folgende variablen zu verfügung min max eco sollte selbst erklärend sein. ob dies allerdings auch die vcore runterregelt kann ich nicht sagen. dies sollte aber powernowd von sich aus einstellen.

mit dem script gibst du nur die maximalen taktraten an.
 
Zuletzt bearbeitet:
ähm, kleine Frage...
gibt es einen Grund dass du für max und min die scaling-frequenzen modifizierst, statt einfach den governor auf performance bzw. powersave zu stellen?
 
jo das ist für nen server. da gibts keine klickiebunti oberlfäche desweiteren macht der governor im grund auch nix anderes :D

desweiteren würde der cpu immer noch takten. oder geht er bei powersave nie über die minimalfrequenz?

http://wiki.ubuntuusers.de/Prozessortaktung

aber danke für den tip kannt ich noch nicht so grad

cat /sys/devices/system/cpu/cpu0/cpufreq/stats/trans_table

das hab ich gesucht.
 
Zuletzt bearbeitet:
die governors kann amn auch per commandline setzen...
Ohne jetzt auswenidg den Pfad zu wissen in etwa so:
echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
und analog
echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

dann musst du nciht die stufen selbst modifizieren, sondern schaltest mehr oder minder das stepping ab. Also die "policy" wie er die Takte durchschaltet wird geändert auf max-takt. bzw. min-takt, völlig ungeachtet der vorhandenen stufen.
Bei nicht-speedstep-fähigen Prozzis wo es nur eine taktstufe gibt, stehen beide governor schlicht für das selbe.
 
jo das ist für nen server. da gibts keine klickiebunti oberlfäche desweiteren macht der governor im grund auch nix anderes :D

desweiteren würde der cpu immer noch takten. oder geht er bei powersave nie über die minimalfrequenz?
Richtig, powersave hält ihn auf der Minimalfrequenz, performance auf der Maximalfrequenz und ondemand wählt lastabhängig zwischen den verfügbaren Stufen.
 
Ondemand ist übrigens in den meisten fällen der beste Governor.
Erledige anliegende aufgaben so schnell wie möglich und schlafe so lange wie möglich.

Irgendein Linux Stromspar-Guru hat auch mal einen Artikel drüber geschrieben.
 
naja, du brauchst wenn du die goernors benutzt halt weniger "cats" bzw. echos. einer reicht für max, einer für min und einer für eco, wo er einfach ondemand wieder setzt.
So musst du zumindest bei max z.b. zwei files beschreiben (max_freq und min_freq) und das sleep dazwischen kostet auch noch ausführungszeit ;)

aber das schöne daran ist ja, dass jeder machen kann wie ers mag :)

grüßle,
ich
 
Is doch lustig... bis zum Jahre 2175 hat er vielleicht was lauffähiges in der Größenordnung von Windows XP zusammen *lol*

nix für ungut @tspoon ;D
 
lasst mich mal machen :D. es gibt viele wege nach rom. ne ich scripte gern und hab gern sachen wo ich weiß was der server macht. das es nicht ganz perfekt ist geb ich ja zu. das slep kann man auch weglassen allerdings hab ich lieber ne denkpause drin als eventuell nen crash aus irgendwelchen gründen.

und ja auf meinen server gibt es viele eigene scipte wie convert2xvid oder ne softwareraidüberwachung mit smsversand sowie temperaturüberwachung etc.

ich scripte nun mal gern. die tips mit den ondemand etc find ich sehr gut. allerdings setzt er bei powersave den takt hoch bei bedarf und nagelt ihn nicht ganz unten fest.
 
Waaaaas tut der?? :o:o

WFT?

also entweder ich bin absolut nicht mehr auf dem laufenden was die Kernelfeatures betrifft, oder dein System macht komische Sachen.
normalerweise gibt es genau 5 Governor,
powersave = minimaler Speed, fest.
performance = maximaler speed, fest.
ondemand = dynamisch je nach Last.
conservative (weiß nicht ob es den noch gibt, früher gabs ihn) = wie ondemand, regelt aber nicht so schnell hoch.
und
userspace = kernel setzt von sich aus garnichts und überlässt das den userspace-tools die über scaling_setspeed die passende Stufe anfahren können.

wenn der wirklich auf powersave noch rumreget, ist definitiv was faul!
 
conservative (weiß nicht ob es den noch gibt, früher gabs ihn) = wie ondemand, regelt aber nicht so schnell hoch.

Gibts noch, auch wenn ich dessen Beschreibung etwas irritierend finde:
'conservative' - this driver is rather similar to the 'ondemand' governor both in its source code and its purpose, the difference is its optimisation for better suitability in a battery powered environment. The frequency is gracefully increased and decreased rather than jumping to 100% when speed is required.

If you have a desktop machine then you should really be considering the 'ondemand' governor instead, however if you are using a laptop, PDA or even an AMD64 based computer (due to the unacceptable step-by-step latency issues between the minimum and maximum frequency transitions in the CPU) you will probably want to use this governor.

wenn der wirklich auf powersave noch rumreget, ist definitiv was faul!
indeed
 
Soweit ich weiß benutzen ondemand und conservative nur unterschiedliche Profile... beidesmal könnte man es als Sägezahnkurve beschreiben, aber eben bei beiden umgekehrt.
Wenn die maschine idelt und plötzlich workload anliegt, regelt ondemand sofort auf max. und reduziert dann wieder stufenweise den Takt, wenn die Arbeit die CPU nicht auslastet.
Also _|`'-,_ als Versuch einen sägezahn in ASCII-Art darzustellen ;)
conservtive geht umgekehrt, er regelt stufenweise hoch und dann schlagartig runter, sobald kein Load mehr anliegt... also _,-'´|_ die spiegelverkehrte kurve zum ondemand...
grob approximiert natürlich.
Also unterschiedliches Schaltverhalten, aber dennoch beide Dynamisch.
 
Soweit ich weiß benutzen ondemand und conservative nur unterschiedliche Profile... beidesmal könnte man es als Sägezahnkurve beschreiben, aber eben bei beiden umgekehrt.
Wenn die maschine idelt und plötzlich workload anliegt, regelt ondemand sofort auf max. und reduziert dann wieder stufenweise den Takt, wenn die Arbeit die CPU nicht auslastet.
Also _|`'-,_ als Versuch einen sägezahn in ASCII-Art darzustellen ;)
conservtive geht umgekehrt, er regelt stufenweise hoch und dann schlagartig runter, sobald kein Load mehr anliegt... also _,-'´|_ die spiegelverkehrte kurve zum ondemand...
grob approximiert natürlich.
Also unterschiedliches Schaltverhalten, aber dennoch beide Dynamisch.
Passt nicht zur Beschreibung, die ich oben gepostet habe. ondemand regelt schlagartig, ohne Rücksicht auf Zwischenschritte, während conservative eben diese Zwischenschritte mit nutzt und stückweise regelt. Das widerspricht aber der Anforderung, anfallende Arbeit sofort und schnellstmöglich zu erledigen, um dann wieder in den Schlafzustand zu fallen. Im Gegensatz zur Beschreibung ist conservative also eher Gift für den Laptop.
 
genau das hat georgy doch geschrieben.
 
Zurück
Oben Unten