# Cpu geht nie unter 1000MHz !?

## 72_6f_6c_61_6e_64

Hallo, 

ich hab mir das PowerManagement Handbuch durchgelesen, und wollte die CPU-Leisung im Leerlauf ein bisschen zurückschrauben, aber er geht nicht unter 1000MHz.

cpufreq-info sagt das:

```
$ cpufreq-info 

cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009

Report errors and bugs to cpufreq@vger.kernel.org, please.

analyzing CPU 0:

  driver: acpi-cpufreq

  CPUs which run at the same hardware frequency: 0 1

  CPUs which need to have their frequency coordinated by software: 0

  maximum transition latency: 10.0 us.

  hardware limits: 1000 MHz - 1.67 GHz

  available frequency steps: 1.67 GHz, 1.33 GHz, 1000 MHz

  available cpufreq governors: conservative, ondemand, powersave, userspace, performance

  current policy: frequency should be within 1000 MHz and 1.67 GHz.

                  The governor "conservative" may decide which speed to use

                  within this range.

  current CPU frequency is 1000 MHz.

analyzing CPU 1:

  driver: acpi-cpufreq

  CPUs which run at the same hardware frequency: 0 1

  CPUs which need to have their frequency coordinated by software: 1

  maximum transition latency: 10.0 us.

  hardware limits: 1000 MHz - 1.67 GHz

  available frequency steps: 1.67 GHz, 1.33 GHz, 1000 MHz

  available cpufreq governors: conservative, ondemand, powersave, userspace, performance

  current policy: frequency should be within 1000 MHz and 1.67 GHz.

                  The governor "conservative" may decide which speed to use

                  within this range.

  current CPU frequency is 1000 MHz.
```

Meine /etc/cpufreqd.conf

```
# this is a comment

# see CPUFREQD.CONF(5) manpage for a complete reference

[General]

pidfile=/var/run/cpufreqd.pid

poll_interval=3

enable_plugins=acpi_ac, acpi_battery

enable_remote=1

remote_group=wheel

#verbosity=4

#enable_remote=1

#remote_group=root

[/General]

[Profile]

name=ondemand

minfreq=0%

maxfreq=100%

policy=ondemand

[/Profile]

[Profile]

name=conservative

minfreq=0%

maxfreq=100%

policy=conservative

[/Profile]

[Profile]

name=powersave

minfreq=0%

maxfreq=48%

policy=powersave

[/Profile]

[Profile]

name=performance

minfreq=0%

maxfreq=100%

policy=performance

[/Profile]

[Rule]

name=battery

ac=off

profile=conservative

[/Rule]

[Rule]

name=battery_low

ac=off

battery_interval=0-5

profile=powersave

[/Rule]

[Rule]

name=ac

ac=on

profile=ondemand

[/Rule]

#[acpi]

#acpid_socket=/var/run/acpid.socket

#[/acpi]

#[nforce2_atxp1]

#vcore_path=/some/path

#vcore_default=1500

#[/nforce2_atxp1]

#[sensors_plugin]

#sensors_conf=/some/file

#[/sensors_plugin]

#[Profile]

#name=On Demand High

#minfreq=40%

#maxfreq=100%

#policy=ondemand

#[/Profile]

#[Profile]

#name=On Demand Low

#minfreq=20%

#maxfreq=80%

#policy=ondemand

#[/Profile]

#[Profile]

#name=Performance High

#minfreq=100%

#maxfreq=100%

#policy=performance

#exec_post=echo 8 > /proc/acpi/sony/brightness

#[/Profile]

#[Profile]

#name=Performance Low

#minfreq=80%

#maxfreq=80%

#policy=performance

#[/Profile]

#[Profile]

#name=Powersave High

#minfreq=70%

#maxfreq=70%

#policy=powersave

#[/Profile]

#[Profile]

#name=Powersave Low

#minfreq=30%

#maxfreq=30%

#policy=powersave

#[/Profile]

#[Profile]

#name=Conservative High

#minfreq=33%

#maxfreq=100%

#policy=conservative

#[/Profile]

#

#[Profile]

#name=Conservative Low

#minfreq=0%

#maxfreq=66%

#policy=conservative

#[/Profile]

##

# Basic states

##

# when AC use performance mode

#[Rule]

#name=AC Rule

#ac=on                    # (on/off)

#profile=Performance High

#[/Rule]

 

# conservative mode when not AC

#[Rule]

#name=AC Off - Low Battery

#ac=off                   # (on/off)

#battery_interval=0-30

#exec_post=echo 5 > /proc/acpi/sony/brightness

#profile=Powersave Low

#[/Rule]

# conservative mode when not AC

#[Rule]

#name=AC Off - Medium Battery

#ac=off                   # (on/off)

#battery_interval=30-70

#exec_post=echo 5 > /proc/acpi/sony/brightness

#profile=On Demand Low

#[/Rule]

# stay in performance mode for the first minutes

#[Rule]

#name=AC Off - High Power

#ac=off                   # (on/off)

#battery_interval=70-100

##exec_post=echo 5 > /proc/acpi/sony/brightness

#profile=On Demand High

#[/Rule]

##

# Special Rules

##

# CPU Too hot!

#[Rule]

#name=CPU Too Hot

#acpi_temperature=55-100

#cpu_interval=50-100

#profile=Performance Low

#[/Rule]

# use performance mode if I'm watching a movie

# I don't care for batteries! 

# But don't heat too much.

#[Rule]

#name=Movie Watcher

#programs=xine,mplayer,gmplayer

#battery_interval=0-100

#acpi_temperature=0-60

#profile=Performance High

#[/Rule]
```

Er geht aber, wenn ich das richtig lese immer nur auf minimal 1000MHz.

Das ist für nixhts tun halt auch viel.

Was muss ich da wo ändern?

LG Roland

----------

## Finswimmer

 *Quote:*   

>   hardware limits: 1000 MHz - 1.67 GHz
> 
>   available frequency steps: 1.67 GHz, 1.33 GHz, 1000 MHz 

 

Deine CPU kann nicht tiefer gehen.

----------

## 72_6f_6c_61_6e_64

Schade, aber unter Windows hat der auch auf 800 fröhlich herumgewerkelt, wenn man in den powersave modus gegangen ist.

LG Roland

----------

## toralf

Kannst Du den ondemand governor des kernels nutzen ?

----------

## 72_6f_6c_61_6e_64

Keine Ahnung, wie würde ich das machen?   :Rolling Eyes: 

----------

## Max Steel

öööhm irgendwas mit cpufreq<tab><tab> --governor ondemand oder so

(Kann grad leider nich nachschaun)

----------

## manuels

Dieser Anleitung nach mittels

```
cpufreq-set -g ondemand #for first cpu

bzw.

cpufreq-set -c zero-based-cpu-id -g ondemand

```

----------

## 72_6f_6c_61_6e_64

Danke für den Link, ich wäre nicht auf die Idee gekommen in nem Wiki einer anderen Distri zu schauen, das wiki ist relativ umfangreich.

Da kommt immer noch bei cpufreq-info folgendes:

```
cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009

Report errors and bugs to cpufreq@vger.kernel.org, please.

analyzing CPU 0:

  driver: acpi-cpufreq

  CPUs which run at the same hardware frequency: 0 1

  CPUs which need to have their frequency coordinated by software: 0

  maximum transition latency: 10.0 us.

  hardware limits: 1000 MHz - 1.67 GHz

  available frequency steps: 1.67 GHz, 1.33 GHz, 1000 MHz

  available cpufreq governors: conservative, ondemand, powersave, userspace, performance

  current policy: frequency should be within 1000 MHz and 1.67 GHz.

                  The governor "ondemand" may decide which speed to use

                  within this range.

  current CPU frequency is 1.67 GHz (asserted by call to hardware).

analyzing CPU 1:

  driver: acpi-cpufreq

  CPUs which run at the same hardware frequency: 0 1

  CPUs which need to have their frequency coordinated by software: 1

  maximum transition latency: 10.0 us.

  hardware limits: 1000 MHz - 1.67 GHz

  available frequency steps: 1.67 GHz, 1.33 GHz, 1000 MHz

  available cpufreq governors: conservative, ondemand, powersave, userspace, performance

  current policy: frequency should be within 1000 MHz and 1.67 GHz.

                  The governor "conservative" may decide which speed to use

                  within this range.

  current CPU frequency is 1.67 GHz (asserted by call to hardware).
```

----------

## Josef.95

 *72_6f_6c_61_6e_64 wrote:*   

> Keine Ahnung, wie würde ich das machen?  :roll:

 

Mit nahezu jedem Programm werden auch Manpages mit installiert.

Siehe zb via 

```
$ qlist Paket
```

was das Paket nach wo installiert, nutze dann evtl. noch grep um nach "man" (oder auch "example") zu filtern.

In diesem Beispiel 

```
$ qlist cpufrequtils | grep man

/usr/share/man/man1/cpufreq-info.1.bz2

/usr/share/man/man1/cpufreq-set.1.bz2

```

 

```
$ man cpufreq-info

$ man cpufreq-set
```

;)

----------

## toralf

M it diesen Kerneleinstellungen : 

```
tfoerste@n22 ~ $ zgrep GOV /proc/config.gz | grep -v '#'

CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_POWERSAVE=m

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

CONFIG_CPU_IDLE_GOV_LADDER=y

CONFIG_CPU_IDLE_GOV_MENU=y

```

kann man sich einen separaten Dämon für die CPU Frequenz i.d.R. sparen. Wenn man den Kernel mit "make menuconfig" konfiguriert, hilft ein Eintippen von  "/" + <Suchbegriff> weiter.

----------

## 72_6f_6c_61_6e_64

Ich versteh das nicht ganz

Was meinst du jetzt?

----------

## toralf

 *72_6f_6c_61_6e_64 wrote:*   

> Ich versteh das nicht ganz
> 
> Was meinst du jetzt?

 Wenn Du mich meinst - so konfiguriert man den ondemand kernel governor.

----------

## 72_6f_6c_61_6e_64

Ja, ich hatte dich gemeint.

Ich hab das soweit jetzt angepasst.

wenn ich "cpufreq-set -q ondemand" eingebe gibt mir aber ein "cpufreq-info" immer noch das:

 *Quote:*   

> hardware limits: 1000 MHz - 1.67 GHz
> 
>   available frequency steps: 1.67 GHz, 1.33 GHz, 1000 MHz
> 
>   available cpufreq governors: conservative, userspace, powersave, ondemand, performance
> ...

 

LG Roland

----------

## toralf

Sobald daer ondemand governor aktiviert ist, kannst Du in den /sys files direct alle benötigten Informationen erhalten :

```
cd /sys/devices/system/cpu/cpu0/cpufreq

find . -type f | xargs tail -v
```

Ich kann diesen Eintrag nur empfehlen :

```
tfoerste@n22 ~ $ grep -B 2 ignore_nice_load /etc/conf.d/local.start

#       power saving - ignore nice load

#

echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load

```

damit kann man dann den BOINC Clienten (oder eine andere Grid-Software Deiner Wahl) schön in ´m Hintergurnd laufen lassen udn spart dabei trotzdem Strom, Lüfterdrehzahl und Tinitus  :Smile: 

----------

## 72_6f_6c_61_6e_64

Das mit dem Eintrag verstehe ich nicht ganz.

Wie bekomm ich damit die minimale CPU-Frequenz niedriger?

Ich hätte gerne, dass er nur so viel CPU nutzt wie er unbedingt

benötigt.

Ich will also, das er runterregelt, wenn er nix zu tun hat. (und das

kann ruhig weit unter 1GHz liegen, der hat maximal nur 1,66GHz.)

Kann man in den Dateien dort irgendwo einstellen, dass er tiefer darf?  

(oder kann er wirklich nicht?)

Gilt dann immer noch die /etc/cpufreqd.conf? Die ihm sagt, bei wieviel  

akku er was darf, bzw was er bei strom/batterie machen soll?

Dort könnte man ja zum Beispiel sagen, dass er im Batteriebetrieb nur 

auf 1GHz geht. (Zwecks Stromverbrauch. - Aber wenn das gleichzeitig das 

niedrigstmögliche ist, bringt das nix.)

LG Roland

----------

## firefly

das wird wohl nicht gehen. Der limit von 1Ghz wird vom ACPI system im bios so geliefert.

Falls unter windows wirklich die CPU auch auf 800Mhz getaktet werden konnte, dann haben wir hier das Problem von "defekten" ACPI tabellen.

----------

## toralf

 *72_6f_6c_61_6e_64 wrote:*   

> Kann man in den Dateien dort irgendwo einstellen, dass er tiefer darf?  
> 
> (oder kann er wirklich nicht?)

 Was der Kernel nicht kann, kann der userspace schon lange nicht.

Wenn Windows hier mehr kann, ist es wirklich einen bugreport auf der linux-acpi@vger.kernel.org wert.

----------

## 72_6f_6c_61_6e_64

Hallo,

ich bin mir jetzt auch nicht ganz sicher ob das das Netbook war, oder das andere, das auf 800 MHz ging.

Kann man das auf der Intel-Seite nachschauen? Ich hab dort nämlich nix konkretes gefunden.

LG Roland

----------

