# CPU Frequenz ändern mit gkrellm2

## aZZe

Hallo!

Hier ist noch ein kleines nettes Spielzeug für Laptop User und mal wieder für gkrellm2 (man könnte meinen ich wäre ein Fetischist   :Rolling Eyes:  ). Viele die ein neueres Laptop besitzen und eine CPU Frequenz von mehr als 2,4GHz aufweisen können brauchen diese zum simplen Websurfen oder Textverarbeitung bei Akku-Betrieb nicht so wirklich. Man kann einiges an Strom sparen, wenn man die Frequenz einfach runterdreht und das am besten mit einem Regler. Es gibt ein nettes Plugin für gkrellm2 namens cpufreq. Dieses bekommt man auf dieser Seite:

http://n.ethz.ch/student/cwinkelm/gkrellm2-cpufreq/

Zuvor muss man aber noch ein wenig Hand anlegen. 

1. Im Kernel (bei mir 2.6.1) unter:

 Power management options (ACPI, APM)  ---> unter

CPU Frequency scaling  --->

das alles für einen Pentium4 z.B. eintragen:

[*] CPU Frequency scaling                                                                         │ │

  │ │                                <*>   /proc/cpufreq interface (deprecated)                                                        │ │

  │ │                                      Default CPUFreq governor (userspace)  --->                                                  │ │

  │ │                                <*>   'performance' governor                                                                      │ │

  │ │                                <*>   'powersave' governor                                                                        │ │

  │ │                                ---   'userspace' governor for userspace frequency scaling                                        │ │

  │ │                                [ ]     /proc/sys/cpu/ interface (2.4. / OLD)                                                     │ │

  │ │                                <*>   CPU frequency table helpers                                                                 │ │

  │ │                                ---   CPUFreq processor drivers                                                                   │ │

  │ │                                <*> ACPI Processor P-States driver                                                                │ │

  │ │                                [ ]   /proc/acpi/processor/../performance interface (deprecated)                                  │ │

  │ │                                < > AMD Mobile K6-2/K6-3 PowerNow!                                                                │ │

  │ │                                < > AMD Mobile Athlon/Duron PowerNow!                                                             │ │

  │ │                                < > AMD Opteron/Athlon64 PowerNow!                                                                │ │

  │ │                                < > Cyrix MediaGX/NatSemi Geode Suspend Modulation                                                │ │

  │ │                                < > Intel Enhanced SpeedStep                                                                      │ │

  │ │                                < > Intel Speedstep on ICH-M chipsets (ioport interface)                                          │ │

  │ │                                < > Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)                                       │ │

  │ │                                <*> Intel Pentium 4 clock modulation                                                              │ │

  │ │                                < > Transmeta LongRun                                                                             │ │

  │ │                                < > VIA Cyrix III Longhaul

Danach kernel neu kompilieren, bzImage nach /boot kopieren und neustarten. 

Danach muss sudo emerged werden. Also:

emerge sudo

visudo aufrufen;

Folgende Zeile irgendwo am Ende einfügen:

irgendeinuser ALL=NOPASSWD:/usr/sbin/cpufreqset [0-9]*

Für irgendeinuser logischerweise euren username eingeben( stefan, popel sonstwas....)

Nun in gkrellm nur noch unter Plugins CPUfreq auswählen und schon hat man einen schönen Regler mit dem man die Frequenz runter schrauben kann. Ein cat /proc/cpuinfo gibt dann auch Aufschluss darüber ob es geklappt hat.

Viel Spass!

----------

## em_el

Super Tip, sowas habe schon länger gesucht, danke dafür. Funktioniert bestens mit meinem mobile Athlon XP.

----------

## plasmagunman

hier ist mal ein kleines ebuild-gerüst. funktioniert soweit. in pkg_postinst sollten per einfo noch ein paar punkte erklärt, bzw. aus den readme und install-dateien übernommen werden:make sure you compiled your kernel with cpufreq-support

braucht man cpufreq-userspace-support, wenn ja wofür?

konfiguriere sudo richtig

vielleicht könnt ihr diese punkte einfügen, da ich mich mit sudo nicht so auskenne.

x11-plugins/gkrellm-cpufreq-0.4.ebuild:

```
# Copyright 1999-2004 Gentoo Technologies, Inc.

# Distributed under the terms of the GNU General Public License v2

# $Header: $

DESCRIPTION="CPU frequency plugin for gkrellm2"

HOMEPAGE="http://n.ethz.ch/student/cwinkelm/gkrellm2-cpufreq/"

SRC_URI="http://n.ethz.ch/student/cwinkelm/gkrellm2-cpufreq/gkrellm2-cpufreq-0.4.tar.gz"

RESTRICT="nomirror"

LICENSE="GPL-2"

SLOT="0"

KEYWORDS="~x86"

IUSE=""

RDEPEND="app-admin/sudo"

S=${WORKDIR}/gkrellm2-cpufreq-0.4

src_compile() {

        emake || die

}

src_install() {

        make DESTDIR=${D} install || die

}

pkg_postinst(){

        einfo ""

}

```

----------

## dakjo

Hy darktemplaaa, wollte das auch gerade als Tip schreiben. Bis mir aber zuvor gekommen..

Zu 

 *Quote:*   

> braucht man cpufreq-userspace-support, wenn ja wofür? 

 

laut doku zu cpufreq  *Quote:*   

> 2) To allow the bash script (or any userspace program) to change the
> 
>    CPU frequency, the userspace governor must be active.
> 
> 

 

ebuild werd ich mal überarbeiten und hier reinstellen danke plasmagunman

MfG

----------

## omahorst

Hallo,

ich habe einen Compaq Presario Laptop mit Mobile PIV 1.7 Ghz Prozessor. Dank dieses Postings ist es mir nun gelungen, das Plugin in Gkrell reinzuwaemsen, und ich kann auch den Regler für die Taktfreqeunz bedienen. Allerdings kann ich nur zwischen zwei verschiedenen Frequenzen hin- und herschalten, und zwar 1.2 und 1.7 Ghz. Ein Blick in mein /sys/devices/system/cpu/cpu0/cpufreq verrät, dass der Prozessor offenbar gar nicht unter 1.2 Ghz gehen kann, da die cpuinfo_min_freq eine Untergrenze von 1.2 Ghz definiert.

Hier mal der Inhalt meines /sys/devices/system/cpu/cpu0/cpufre - Verzeichnisses mit entsprechenden Werten.

cpuinfo_max_freq  -->   1700000

cpuinfo_min_freq  -->   1200000

scaling_available_governors  -->  powersave userspace performance

scaling_driver   -->   speedstep-ich

scaling_governor   -->  userspace

scaling_max_freq   -->  1700000

scaling_min_freq   -->  1200000

scaling_setspeed   -->  1200000

Ich habe mal versucht, einen anderen Wert in cpuinfo_min_freq zu echoen, aber das funktioniert nicht. Auch kann ich beispielsweise nicht etwa eine Frequenz von 1500000 in scaling_setspeed echoen.

Weiss jemand, was ich tun muss, um mehr Auswahl bei den Frequenzen zu haben?

Für Hinweise wäre ich sehr dankbar.

Sebastian

----------

## omahorst

So, habe mal ein wenig herumprobiert und folgendes rausgefunden:

Wenn ich cpufreq (richtigerweise fuer meinen P4M) mit dem speedstep-ich driver betreibe, dann kann ich nur zwischen 1.2 Ghz und 1.7 Ghz auswählen. Ich habe mal testweise den P4/Xeon driver verwendet, und siehe da, nun kann ich den Regler von 215 Mhz bis 1.7 Ghz bewegen.

Jedoch, laut dmesg, hat das Runterschrauben der Freqeunz mit P4/Xeon driver keine Auswirkungen auf die Voltzahl, mit der die CPU läuft, und dmesg empfiehlt statt dessen, den speedstep driver zu verwenden. Nachdem ich mir jedoch Batterie-Entlade-Rate und Voltzahl in /proc/acpi/battery/XXX/state mit beiden Treibern aber mal angeschaut und verglichen habe, bin ich da nicht so sicher.

Hmmm...

Vielleicht hilft die Info jemandem.

Sebastian

----------

## Jens Ko.

HI Leuts!!

Ich habe auch einen Laptop, leider hat es aus "Kostengründen" nur zu ner Desktop CPU gereicht..

Kann man dieses PRogramm auch mir ner Intel Desktop CPU (Sony Vaio PCG GRT785)

nutzen? Das wäre schon echt genial, wenns gehn würde.

Grüße Jens

----------

## Mr.Big

 *Jens Ko. wrote:*   

> HI Leuts!!
> 
> Ich habe auch einen Laptop, leider hat es aus "Kostengründen" nur zu ner Desktop CPU gereicht..
> 
> Kann man dieses PRogramm auch mir ner Intel Desktop CPU (Sony Vaio PCG GRT785)
> ...

 

Spricht nichts dagegen !

J.

----------

## brodo

 *omahorst wrote:*   

> So, habe mal ein wenig herumprobiert und folgendes rausgefunden:
> 
> Wenn ich cpufreq (richtigerweise fuer meinen P4M) mit dem speedstep-ich driver betreibe, dann kann ich nur zwischen 1.2 Ghz und 1.7 Ghz auswählen. Ich habe mal testweise den P4/Xeon driver verwendet, und siehe da, nun kann ich den Regler von 215 Mhz bis 1.7 Ghz bewegen.
> 
> Jedoch, laut dmesg, hat das Runterschrauben der Freqeunz mit P4/Xeon driver keine Auswirkungen auf die Voltzahl, mit der die CPU läuft, und dmesg empfiehlt statt dessen, den speedstep driver zu verwenden. Nachdem ich mir jedoch Batterie-Entlade-Rate und Voltzahl in /proc/acpi/battery/XXX/state mit beiden Treibern aber mal angeschaut und verglichen habe, bin ich da nicht so sicher.

 

Zum einen sind die Angaben in /proc/acpi/battery/XXX/state nicht die zuverlässigsten, zum anderen _ist_ es sinnvoller, speedstep-{ich,centrino} zu verwenden statt p4-clockmod, denn bei speedstep-{ich,centrino} ist der

Stromverbrauch S (frequenz) ungefähr gleich frequenz * (spannung (frequenz)^2) * konstante

, während bei p4-clockmod der

Stromverbrauch S (frequenz) ungefähr gleich frequenz * spannung (maximale frequenz) * konstante

ist. Für jede Rechenaufgabe R, die (t / frequenz) Zeit beansprucht, ergibt sich daher

Energieverbrauch E [Watt-Sekunden] = (t/frequenz) * Stromverbrauch (frequenz)

bei max. frequenz: 

Energieverbrauch E = (t / 1.7) * 1.7 * (spannung (1.7) ^2) * c = (spannung (1.7) ^2) * c

bei speedstep zu 1.2

Energieverbrauch E = (t / 1.2) * 1.2 * (spannung (1.2) ^2) * c = (spannung (1.2) ^2) * c

bei p4-clockmod zu 1.2 (hypothetisch)

Energieverbrauch E = (t / 1.2) * 1.2 * (spannung (1.7) ^2) * c = (spannung (1.7) ^2) * c

bei p4-clockmod zu 0.175

Energieverbrauch E = (t / 0.175) * 0.175 * (spannung (1.7) ^2) * c = (spannung (1.7) ^2) * c

==> Energie-Einsparung für jede Rechenleistung R ist bei p4-clockmod NULL. Dafür dauert die Erledigung der Rechenarbeit viel länger; auch wird der Rechner nicht so heiss. Solche thermischen Gesichtspunkte sind die einzig vernünftigen Gründe, p4-clockmod zu verwenden, es sei denn, der Prozessor hat eine kaputte "hlt"-Instruktion und würde beim Warten auf Arbeit Energie verschleudern. Das passiert aber (zum Glück) selten. Apropos Warten auf Arbeit: in diesen idle-states verbraucht der Prozessor ebenfalls weniger Strom, wenn die Frequenz mittels speedstep-ich reduziert wurde. Bei p4-clockmod bleibt es bei einem identischen Energiebedarf.

----------

## Massimo B.

Gibts die Source noch irgendwo? Ich kanns nicht mehr finden.

----------

## brodo

 *paoleela wrote:*   

> Gibts die Source noch irgendwo? Ich kanns nicht mehr finden.

 

Was für Sourcen?

----------

## Massimo B.

gkrellm-cpufreq

Hat sich aber erledigt, mir hat jemand die Sourcen geschickt.

----------

## ro

also bei mir geht der link oben nicht,hätte das tool aber auch gern  :Wink: 

----------

## Massimo B.

Here's the link. Thanks to gringo. Works fine for me.

cpufreqd

----------

