Sie sind nicht angemeldet.

1

16.01.2008, 12:54

cpufreqd.conf konfigurieren

Hallo,

ich versuche meine cpufreqd.conf richtig zu konfigurieren, aber irgendwas geht schief.

Da mein Notebook gerne bei emerge ausgeht, wegen der zu hohen Termperatur, moechte ich, dass er runterschaltet wenn die Temperatur zu hoch wird.
Leider tut er das nicht, er bleibt immer nur in "ondemand" Profil und geht nie ins "performance low". Zumindest zeigt es mir cpufreq-info, dass das nicht passiert.

Kennst sich jemand damit aus? Bzw. was hab ich falsch drin?

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=3
enable_plugins=acpi_ac, acpi_battery, acpi_temperature, cpu, sensors
enable_remote=1
remote_group=wheel
[/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=100%
policy=powersave
[/Profile]

[Profile]
name=performance low
minfreq=0%
maxfreq=66%
policy=performance

[Rule]
name=battery
ac=off
profile=conservative
[/Rule]

[Rule]
name=battery_low
ac=off
battery_interval=0-10
profile=powersave
[/Rule]

[Rule]
name=ac
ac=on
profile=ondemand
[/Rule]

##
# Special Rules
##
# CPU Too hot!
[Rule]
name=CPU Too Hot
acpi_temperature=80-100
#cpu_interval=50-100
profile=performance low
[/Rule]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Piioo« (06.02.2008, 00:43)


2

16.01.2008, 23:48

Hallo Piioo

Manuell könntest du es eventuell so machen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
josefhost josefg # cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Bitte melden Sie Fehler an linux@brodo.de.
analysiere CPU 0:
  Treiber: powernow-k8
  Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0
  Hardwarebedingte Grenzen der Taktfrequenz: 1000 MHz - 2.40 GHz
  mögliche Taktfrequenzen: 2.40 GHz, 2.20 GHz, 2.00 GHz, 1.80 GHz, 1000 MHz
  mögliche Regler: ondemand, userspace, performance
  momentane Taktik: die Frequenz soll innerhalb 1000 MHz und 2.40 GHz.
                    liegen. Der Regler "ondemand" kann frei entscheiden,
                    welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
  momentane Taktfrequenz ist 1000 MHz  (verifiziert durch Nachfrage bei der Hardware).
josefhost josefg # cpufreq-set
Es muss mindestens ein Parameter aus -f/--freq, -d/--min, -u/--max oder
-g/--governor angegeben werden.
josefhost josefg # cpufreq-set --max 1800


---------------------------------------------------------------------------------------------------------------------------------------------

Um den ondemand Regler Standardmäßig zu begrenzen, könntes du mal testen in deiner cpufreqd.conf

Quellcode

1
2
3
4
5
6
[Profile]
name=ondemand
minfreq=0%
maxfreq=100%
policy=ondemand
[/Profile]
die maxfreq zu reduzieren.

Ich habe dies jedoch nicht getestet, ist nur ne Idee von mir.

viel Glück
josef.95

3

18.01.2008, 11:17

Hi,

danke für das set Kommando. Nun dackelt mein Notebook mit ca. 600 MHz aber wenigstens schaltet es sich nicht aus. Obwohl angezeigt wird, dass er zwischen 1.70 GHz, 1.40 GHz, 1.20 GHz, 1000 MHz, 800 MHz, 600 MHz umschalten kann, schaltet er nur zwischen 1,7 und 600 (aber egal :) )

Dieses ondemand hab ich schon ausprobiert und es tritt das gleiche Problem auf. In der cpufreqd.conf will ich nicht default verkleinern, damit er trotzdem weiter mit 1,7 arbeiten kann.

Was ich nicht verstehe ist, wie er zwischen den Profilen wechselt. Wenn er den default Profil annimmt, kommt nie wieder an anders Profil ins spiel. Egal was ich für Regeln einstelle.

Aber danke, nun kann ich wenigstens in Ruhe emergen :)

4

18.01.2008, 19:19

danke für das set Kommando. Nun dackelt mein Notebook mit ca. 600 MHz aber wenigstens schaltet es sich nicht aus. Obwohl angezeigt wird, dass er zwischen 1.70 GHz, 1.40 GHz, 1.20 GHz, 1000 MHz, 800 MHz, 600 MHz umschalten kann, schaltet er nur zwischen 1,7 und 600 (aber egal :) )


Hallo Piioo

Du könntest doch mal versuchen die Frequenz manuell auf 1.40 GHz zu stellen, denn 600 MHz ist ja doch recht wenig.

Quellcode

1
cpufreq-set --max 1400
wenn der Prozessor nun immer noch zu heiß wird könntest du noch eine Stufe runter gehen, zb auf 1.20 GHz

Poste doch bitte mal die Ausgabe von:

Quellcode

1
cpufreq-info


-----------------------------------------------------------------------------------------------------------------------------------------------
Ich kenne mich mit diesem Thema auch nicht sooo gut aus, aber ich denke für deinen Rechner mit diesem Überhitzungs Problem solltest du es mal mit dem userspace Regler probieren.
Für einige Desktops gibt es auch Tools , mit welchem man die Frequenzen per Mausklick umstellen kann.
Was für einen Desktop benutzt du denn?

MfG josef.95

5

18.01.2008, 19:34

Nun ich habe auf 1000 gestellt und trotzdem nutzte er nur 600. Wenn ich nichts mache, laeuft er auf hochtouren mit 1700 und wird zu heiss. 1400 hab ich noch nicht versucht, aber da wird er wahrscheinlich auch nur 600 nutzen. Ich weiss nicht woran es liegt.


Zitat

cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which need to switch frequency at the same time: 0
hardware limits: 600 MHz - 1.70 GHz
available frequency steps: 1.70 GHz, 1.40 GHz, 1.20 GHz, 1000 MHz, 800 MHz, 600 MHz
available cpufreq governors: conservative, ondemand, userspace, performance
current policy: frequency should be within 600 MHz and 1.70 GHz.
The governor "conservative" may decide which speed to use
within this range.
current CPU frequency is 600 MHz.
-----------------------------
Ich nutze KDE, so ein Reglertool wäre schon recht hilfreich. Ich werde mal danach suchen.
Zurzeit brauch ich die Regelung der Frequenzzahl nur zum emergen.

6

18.01.2008, 20:21

Ich nutze KDE, so ein Reglertool wäre schon recht hilfreich. Ich werde mal danach suchen.
Zurzeit brauch ich die Regelung der Frequenzzahl nur zum emergen.


Für KDE währe da eventuell:

Quellcode

1
sys-power/kpowersave
das gesuchte, bin mir da aber nicht ganz sicher, vielleicht hat da jemand anderes ja noch einen guten Vorschlag.

MfG josef.95

7

19.01.2008, 18:17

hallo,
Ich hatte auch so ähnlich Probleme mit cpufreqd, habe mich dann für powerthend entschieden, der
funktioniert zuverlässig und macht auch zwischentakte.

8

22.01.2008, 02:02

Dies fand ich eben noch im Netz, ich denke es könnte eventuell bei deinem Hitzköpfigen Rechner hilfreich sein.

The kernels "ondemand" CPU frequency management function currently has a high-frequency timer that samples to see if
the CPU is idle. Intel fixed this and the patches to the kernel to effectively remove this timer are included in Linus' tree as
of 2.6.22-rc1.


However, if you don't want to rebase to that kernel, you can also
reduce the frequency of this timer from a command prompt with the
following command:

Quellcode

1
2
cd /sys/devices/system/cpu/cpu0/cpufreq
cat ondemand/sampling_rate_max > ondemand/sampling_rate


MfG josef.95

9

26.01.2008, 11:37

Hallo,

ich habe nachgesehen und bemerkt, dass ich keinen ondemand Ordner an der Stelle habe. Ondemand hab ich aber im Kernel aktiviert:
CONFIG_CPU_FREQ_GOV_ONDEMAND=y

Ich benutze den Kernel 2.6.22-r5 deshalb dürfte doch das Problem behoben sein oder verstehe ich den Satz falsch?

10

26.01.2008, 16:15

ich habe nachgesehen und bemerkt, dass ich keinen ondemand Ordner an der Stelle habe.


Hay Piioo

Dat ischa Mischteriös mit deinem omdemand Regler!
Ich habe kurz mal bei mir nachgeschaut:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# cd /sys/devices/system/cpu/cpu0/cpufreq
kraftwerk1 cpufreq # ls -la
insgesamt 0
drwxr-xr-x 4 root root    0 26. Jan 15:25 .
drwxr-xr-x 4 root root    0 26. Jan 15:25 ..
-r--r--r-- 1 root root 4096 26. Jan 15:33 affected_cpus
-r-------- 1 root root 4096 26. Jan 15:33 cpuinfo_cur_freq
-r--r--r-- 1 root root 4096 26. Jan 15:33 cpuinfo_max_freq
-r--r--r-- 1 root root 4096 26. Jan 15:33 cpuinfo_min_freq
drwxr-xr-x 2 root root    0 26. Jan 15:33 ondemand
-r--r--r-- 1 root root 4096 26. Jan 15:33 scaling_available_frequencies
-r--r--r-- 1 root root 4096 26. Jan 15:33 scaling_available_governors
-r--r--r-- 1 root root 4096 26. Jan 15:33 scaling_cur_freq
-r--r--r-- 1 root root 4096 26. Jan 15:33 scaling_driver
-rw-r--r-- 1 root root    0 26. Jan 15:25 scaling_governor
-rw-r--r-- 1 root root 4096 26. Jan 15:33 scaling_max_freq
-rw-r--r-- 1 root root 4096 26. Jan 15:33 scaling_min_freq
drwxr-xr-x 2 root root    0 26. Jan 15:33 stats
kraftwerk1 cpufreq # ls -l ondemand
insgesamt 0
-rw-r--r-- 1 root root 4096 26. Jan 15:36 ignore_nice_load
-rw-r--r-- 1 root root 4096 26. Jan 15:36 powersave_bias
-rw-r--r-- 1 root root 4096 26. Jan 15:36 sampling_rate
-r--r--r-- 1 root root 4096 26. Jan 15:36 sampling_rate_max
-r--r--r-- 1 root root 4096 26. Jan 15:36 sampling_rate_min
-rw-r--r-- 1 root root 4096 26. Jan 15:36 up_threshold
kraftwerk1 cpufreq # uname -a
Linux kraftwerk1 2.6.23-gentoo-r3 #1 PREEMPT Mon Jan 21 22:12:29 CET 2008 i686 AMD Athlon(tm) 64 Processor 4000+ AuthenticAMD GNU/Linux
kraftwerk1 cpufreq #


Hmm..
Ich würde dir empfehlen, es noch mal mit einem zZ Aktuellen 2.6.23er Kernel zu probieren.

EDIT:
Ich habe gerade nochmal nachgeschaut, weil ich mir nicht vorstellen kann das sich die Frequenzen bei dir nicht manuell einstellen lassen.
In den Optionen für cpufreq-set steht:

Quellcode

1
2
 -f FREQ, --freq FREQ     setze exakte Taktfrequenz. Benötigt den Regler
                           'userspace'.

Sprich, um deine Frequenz Manuell zu setzen muß zuerst mit:

Quellcode

1
cpufreq-set -g userspace
zum userspace Regler gewechselt werden.

Jetzt kann die Frequenz Manuell gesetzt werden, mit zb (für deine CPU)

Quellcode

1
cpufreq-set --freq 1400000
Bei mir funktioniert dies einwandfrei.

Aufruf der Optionen:

Quellcode

1
cpufreq-set -help


Zum Überprüfen der Aktuellen Frequenz: (Eventuell ein zweites Terminalunterfenster öffnen)

Quellcode

1
watch grep "cpu MHz" /proc/cpuinfo


Wenn du Standardmäßig den ondemand Regler beim Systemstart setzen möchtest. (Zum normalen Arbeiten mit dem PC)

Quellcode

1
2
3
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
in
/etc/conf.d/local.start
setzen.

MfG
josef.95

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »josef.95« (26.01.2008, 19:51)


11

29.01.2008, 16:03

Danke

ich kann nun die Frequenz aendern, aber leider ändert er nicht die Frequenz automatisch, wenn die Temperatur von 80 oder 90 Grad erreicht ist.

Aber so kann ich schon mal die Frequenz anpassen und emergen :)

12

29.01.2008, 16:54

Du kannst Du ja ein Script schreiben, was sich alle X Minuten die temperatur anguckt und dementsprechend ;o)

Da schreiebn des Scriptes und der Cronjob dürfte "Unix-Basic" sein ;o)
Meine Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind explizit unter die GPL gestellt .....

Außerdem sind sie ein Ausdruck der Persönlichkeit des Schreibers!

13

30.01.2008, 06:24

Danke

ich kann nun die Frequenz aendern, aber leider ändert er nicht die Frequenz automatisch, wenn die Temperatur von 80 oder 90 Grad erreicht ist.

Aber so kann ich schon mal die Frequenz anpassen und emergen :)

Moin Piioo

Na prima, dann bist du doch schon mal ein gutes Stück weiter und musst nicht mehr mit 600MHz Compilieren!

Ich denke nicht das es in cpufreq vorgesehen ist, deine CPU Temeraturabhängig zu regeln.
Dies wird doch normalerweise Hartwaremässig oder mit vom BIOS gewährleistet denke ich?

Im kernel gibt es doch auch eine Option Termal-Zone , hast du diese gesetzt?

Quellcode

1
zcat /proc/config.gz | grep THERMAL
?

Ich denke jedoch dies ist schon ein anderes Thema, du solltest hierfür eigentlich einen neuen Thread eröffnen, da dieses Problem nichts mehr mit dem Titel dieses Threads "cpufreqd.conf konfigurieren" zu tun hat.

MfG
josef.95

14

31.01.2008, 18:43

Hi,

thermal hab ich. Aus diesem Grund kann ich die Temperatur des Prozessors auslesen.

Was mich aber wunders bei cpufreq ist, dieses:

Quellcode

1
2
3
4
5
6
7
8
9
10
##
# Special Rules
##
# CPU Too hot!
[Rule]
name=CPU Too Hot
acpi_temperature=80-100
#cpu_interval=50-100
profile=performance low
[/Rule]


In der Conf ist also irgendwie möglich die Frequenz zu ändern, wenn eine Temperaturgrenze überschritten ist.
Dieses Funktioniert aber nicht. Vielleicht hab ich die falsche Version von cpufreq.

Quellcode

1
2
3
4
5
[I] sys-power/cpufreqd
 	Available versions:  2.1.1 ~2.2.0-r2 ~2.2.1 {acpi apm lm_sensors nforce2 nvidia pmu}
 	Installed versions:  2.1.1(11:00:32 01/16/08)(acpi apm -lm_sensors -nforce2 -nvidia -pmu)
 	Homepage:        	http://cpufreqd.sourceforge.net
 	Description:     	CPU Frequency Daemon

15

31.01.2008, 19:14

In der Conf ist also irgendwie möglich die Frequenz zu ändern, wenn eine Temperaturgrenze überschritten ist.


Hallo Piioo
Sorry das habe ich nicht gewußt, das cpufreqd auch Temperaturabhängig regeln können soll.
Ich kenne mich jedoch leider in diesem Bereich nicht aus, da ich hier noch nie Probleme gehabt habe.

Noch mal zu der Überhitzung deines Rechners:
Hast du mal überprüft ob die Wärmetauscher Rippen,Lamellen (CPU Kühler) sauber bzw Staubfrei sind?
Diese können nach ca. zwei Jahren Betrieb schon mal Dicht sein.
Denn Normal sollte es doch eigentlich nicht sein, das die CPU so schnell überhitzt.
Bei mir liegt die CPU Temperatur bei max. 40 - 45 Grad Celsius, selbst nach zwei Tagen durchcompilieren.

MfG
josef.95

16

06.02.2008, 00:41

Hallo,

ich habe di Loesung gefunden :)

Quellcode

1
2
3
4
5
6
7
8
9
##
# Special Rules
##
# CPU Too hot!
[Rule]
name=CPU Too Hot
acpi_temperature=THRM:80-100
profile=performance low
[/Rule]


Vor die Temperaturwerte muss angeben werden, wo die Temperatur zu suchen ist.

Steht auch in den man Pages. Sollte ich oefter lesen :)

Zitat


acpi_temperature

The rule will have a higher score if the temperature
percentage corresponds to the provided values. Can be of the
form %d-%d or simply %d for a fixed value (e.g.:
acpi_temperature=10-100) or %s:%d-%d or %s:%d where the
string represents the thermal zone name that must match
(look at ’ls /proc/acpi/thermal_zone’ for
available names).
Danke an alle, die mir helfen wollten :)