[[Vorlage(Archiviert, )]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Packprogramme: Archive entpacken] [:sudo: Root-Rechte] [:Terminal: Ein Terminal öffnen] [:Kernelmodule: Umgang mit Kernelmodulen (Treibern)] [:Editor: Einen Editor öffnen] [:Programme starten: Ein Programm ohne Menüeintrag starten] }}} [[Inhaltsverzeichnis(1)]] [sourceforge:k10ctl:K10ctl] {en} ist ein Kommandozeilenprogramm, welches einem die Änderung der Spannung und der Taktfrequenz von [wikipedia:AMD_K10:AMD K10 CPUs] erlaubt. Dazu zählen Modelle aus den Reihen Opteron, Phenom, Phenom II, Athlon X2 und Sempron (mit AM3-Architektur). {{{#!vorlage Warnung Die Änderung der Spannung und Taktfrequenz kann zu Schäden an der Hardware oder zu einem instabilen System führen. }}} = Installation = == Kompilieren == Über [sourceforge:k10ctl/files/k10ctl/090709:SourceForge] {dl} steht eine Archivdatei '''k10ctl.tar.bz2''' zum Herunterladen bereit. Nachdem man diese herunter geladen und entpackt[1] hat, wechselt man in das Verzeichnis, in das das Archiv entpackt wurde. Das Programm ist bereits für 32-bit-Systeme vorkompiliert und benötigt keine externen Bibliotheken. Anschließend wird die ausführbare Datei mit Root-Rechten nach '''/usr/local/sbin''' kopiert bzw. verschoben. = Konfiguration = Nun muss noch das Kernelmodul[5] `msr` geladen werden: {{{#!vorlage Befehl sudo modprobe msr }}} Um `msr` dauerhaft zu laden, muss es mit einem Editor[6] mit Root-Rechten[3] in '''/etc/modules''' am Dateiende eingetragen werden. Beispiel: {{{ # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. loop lp rtc msr }}} = Wichtige Befehle = Nun ist es möglich, k10ctl über das Terminal[4] zu starten. Der Befehl: {{{#!vorlage Befehl sudo k10ctl 0-3 }}} fragt die aktuellen Spannung ab, wobei `0-3` für die CPU-Kerne steht, also in diesem Fall eine Vierkern-CPU. Möchte man die Spannung anpassen, verwendet man den folgenden Befehl: {{{#!vorlage Befehl sudo k10ctl 0-3 3 -cv 64 -nv 38 }}} Die Spannung der CPU wird mit der Option `-cv` angepasst. Dabei ist zu beachten: Je höher der Wert, desto niedriger die Spannung. Für die die Northbridge wird der Zusatz `-nv` verwendet. Die Zahl hinter `0-3`, in diesem Fall die `3`, bezeichnet den P-State für welchen die Änderung vorgenommen werden soll. Es gibt 4 P-States, wobei P-State 3 für die niedrigste Frequenz steht (800Mhz) und P-State 0 für die höchste Frequenz (abhängig vom CPU-Modell). CPUs mit 4 oder mehr Kernen haben 5 P-States. Der P-State 0 ist dann der sogenannte Turbo-Modus: Ein oder zwei Kerne werden quasi übertaktet, während die anderen heruntertakten. Beim Ändern der Spannung für `-cv` sollten die jeweiligen [http://products.amd.com/en-us/DesktopCPUResult.aspx Obergrenzen der Lastspannung] {en} beachtet werden, um Schäden zu vermeiden. Bei manchen Kombinationen aus Mainboard und CPU sind Untergrenzen fest eingebaut. Die maximale Spannung für die Northbridge beträgt je nach CPU-Modell 1,1V bis 1,3V. Nach unten hin ist die Stabilität des Systems die Grenze. Dies sollte auch vorher ausgiebig mit Prime getestet werden. = Undervolting = [wikipedia:Undervolting:] bezeichnet das systematische Absenken der CPU-Spannung (evtl. auch der Northbridge), um den Leistungsverbrauch des Systems zu senken. Nebeneffekt ist eine geringere Temparatur. Nach dem Absenken der Spannung um einen Schritt wird mit Prime die Stabilität getestet. Wenn das System einfriert oder Fehler anzeigt, ist die Untergrenze erreicht. == Aktuelle Werte == Zuerst braucht man die aktuellen Werte aller P-States. Da die Werte aller Kerne gleich sind, reichen die des ersten Kerns. {{{#!vorlage Befehl sudo k10ctl 0 }}} {{{ VID interface mode: serial CPU0 Current P-State: 3 Fastest P-State: 1 NbVid NbDid CpuVid CpuDid CpuFid UNb CpuMult UCpu PCore P-State 0: 34 0 14 0 17 1125.0mV 16.50000 1375.0mV 21725mW P-State 1: 34 0 26 0 12 1125.0mV 14.00000 1225.0mV 18375mW P-State 2: 34 0 28 0 6 1125.0mV 11.00000 1200.0mV 13920mW P-State 3: 34 0 30 1 14 1125.0mV 7.50000 1175.0mV 9988mW P-State 4: 34 0 34 1 0 1125.0mV 4.00000 1125.0mV 6188mW }}} In diesem Fall handelt es sich um einen Sechskernprozessor, die interessanten P-States sind 1-4. == Spannung um eine Stufe senken == Für den P-State 1 liegt der Wert von CpuVid bei 26. Die daraus resultierende Spannung wird danach berechnet, ob das Mainboard im ''"parallel VID interface mode"'' oder ''"serial VID interface mode"'' arbeitet. Zitat von der (ehemaligen) Projektseite: > "In parallel VID interface mode the conversion formula is > > if vid>=64 then U=375 mV > > else if vid>=32 then U=1162.5mV - vid=12.5 mV > >else U=1550mV - vid*25 mV. > >In serial VID interface mode it is > >if vid>=124 then U=0 mV > >else U=1550mV - vid*12.5 mV." So kann man gezielt Spannungen ansteuern. Der aktuelle Wert ist in der Ausgabe unter ''"UCpu"'' abzulesen. Eine Absenkung um eine Stufe bedeutet in diesem Fall eine Reduzierung um 0,0125 Volt. {{{#!vorlage Befehl sudo k10ctl 0-5 1 -cv 27 ## Senkung für alle Kerne im P-State 1 um eine Stufe }}} {{{#!vorlage Warnung Die Senkung der Spannung sollte pro Schritt nicht größer sein als 0,025 Volt. }}} = Beispiel - Laden von festen Einstellungen = Die Einstellung sind über '''[:rc.local:/etc/rc.local]''' zu laden [6], damit sie automatisch bei jedem Neustart zur Verfügung stehen. Beispiel: {{{ #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /usr/local/sbin/k10ctl 0-3 3 -cv 64 -nv 40 /usr/local/sbin/k10ctl 0-3 2 -cv 48 -nv 38 /usr/local/sbin/k10ctl 0-3 1 -cv 42 -nv 37 /usr/local/sbin/k10ctl 0-3 0 -cv 36 -nv 36 exit 0 }}} = Stabilität testen = Die Stabilität der gewählten Spannung kann mit dem Benchmark mprime ([ftp://mersenne.org/gimps/ mprimeVERSION.tar.gz] {dl} oder [ftp://mersenne.org/gimps/ mprimeVERSION-linux64.tar.gz] {dl}) getestet werden. Die Archivdatei kann in ein beliebiges Verzeichnis entpackt[1] werden. Sobald mprime entpackt wurde und man mittels Terminal[4] in das Verzeichnis, in dem sich mprime befindet gewechselt hat, kann mprime nun gestartet[7] werden. {{{#!vorlage Befehl ./mprime }}} In einem zweiten Terminalfenster sollte mit [:top:] kontrollieren, ob mprime auch auf allen Kernen läuft (100% bei einem Kern, 200% bei zwei usw.). = Links = * [sourceforge:k10ctl:Projektseite] {en} * [http://prime.haugk.co.uk Projektseite von mprime] {de} * [wikipedia:Undervolting:] * [wikipedia:AMD_K10:AMD K10] * [http://products.amd.com/en-us/DesktopCPUResult.aspx AMD Desktop Processors] {en} - technische Daten der AMD-CPUs #tag: Hardware, System