# Merkwürdigkeit bei speedfreqd

## Pegasus87

Hallo,

habe gerade dieses HowTo durchgearbeitet:

http://www.gentoo.org/doc/en/power-management-guide.xml

Bin auch soweit ganz zufrieden, allerdings funktioniert mein speedfreqd nich so richtig.

Das kleine Script schaltet richtigerweise in den neu angelegten battery runlevel.

Wenn ich die CPU Geschwindigkeit nun mit 

```
watch -n 1 x86info -mhz
```

beobachte, fällt auf, dass die Frequenz ständig schwankt, wenn man gar nix macht, geht die runter bis auf 180Mhz (ein 1,5Ghz Centrino hab ich).

Das Runtertakten is ja auch im Sinne des Erfinders, nur leider passiert dies auch beim default runlevel, obwohl speedfreq nur im battery runlevel gestartet wird, das hab ich nachgeprüft.

Noch ein Problem ist: Auch wenn ich den Stecker abziehe und der automatisch in den battery runlevel schaltet, wird (z.B. bei mStarten von OOo) die Taktrate auch mal auf die vollen 1,5Ghz hochgejubelt. Das is ja falsch, im battery runlevel sollen ja maximal 600Mhz benutzt werden.

Hat jemand ne Idee, wie ich das einstellen kann?

Zusatz:Der acpid läuft sowohl in default als auch in battery.

Wenn ihr noch mehr Infos braucht, fragt einfach nach

----------

## Massimo B.

Hallo.

ich nutze mal deine Überschrift, da das Thema ähnlich ist.

Ob die Bearbeitung der Stromzustände über Runlevel gut ist, weil ich nicht.

Bei meinem iBook 600Mhz läuft speedfreq ständig, und bekommt vom pbbuttonsd und pmcs-pbbuttonsd die policy mitgeteilt.

Und nun zu meinem Problem:

Die Original /etc/power/scripts.d/cpufreq hat nicht funkioniert und bietet auch keine dynamische Taktung.

Also hab ich das Skript so umgeschrieben:

```

PATH=/bin:/sbin:/usr/bin:/usr/sbin

case "$1" in

        powersave|custom)

        speedfreq -p powersave

        ;;

        performance)

        speedfreq -p dynamic

        ;;

        resume)

        case "$2" in

                battery)

                speedfreq -p powersave

                ;;

                ac)

                speedfreq -p dynamic

                ;;

        esac

        ;;

esac

```

Auf resume und Netzteilwechsel reagiert das Skript richtig.

Leider ist oft nach einem Resume der speedfreqd Daemon verschwunden.

Ich denke über einen workaround 

```
/etc/init.d/speedfreqd stop

/etc/init.d/speedfreqd zap

/etc/init.d/speedfreqd start
```

..bei jedem resume nach, aber nur als Notlösung.

Hat das jemand beobachtet? Dann werde ich einen bugreport schicken, hab dergleichen nichts gefunden, auch wenn speedfreq einige bugreports laufen hat.

Gruß, Paolo

----------

## amne

Speedfreqd wird (leider) in den nächsten Tagen maskiert werden, da sich bei dem Projekt schon über 1 Jahr nichts mehr getan hat.

----------

## ian!

 *amne wrote:*   

> Speedfreqd wird (leider) in den nächsten Tagen maskiert werden, da sich bei dem Projekt schon über 1 Jahr nichts mehr getan hat.

 

.. und wird von cpufreqd abgelöst werden.

----------

## mrsteven

...oder dem Userspace-Governor aus einem aktuellen 2.6er-Kernel. :Razz:  Funktioniert wirklich sauber, das Ding. :Cool: 

----------

## Anarcho

Oder dem Ondemand Govenor des Kernels ...

----------

## mrsteven

 *Anarcho wrote:*   

> Oder dem Ondemand Govenor des Kernels ...

 

Auch wenn ich das falsche geschrieben habe: Den hab ich doch gemeint... :Razz: 

----------

## Massimo B.

Unterstuetzt dieser denn auch ddynamische Taktung? Ich dachte, diese seinen nur Vorraussetzung, damit ein Daemon Zugriff hat. Fuer dynamische Taktung sei immer ein Daemon notwendig?

----------

## Earthwings

Das war früher so, als es den ondemand governor noch nicht gab. Die anderen arbeiten statisch, während der ondemand governor die Frequenz dynamisch an die CPU Auslastung anpasst. Allerdings ist es komfortabler, das Setzen von Minimal-, Maximalfrequenz und Governor cpufreqd zu überlassen. Die Konfigurationsdatei, die bei cpufreqd dabei ist, ist allerdings etwas sonderbar, man sollte lieber sowas wie die von brix verwenden.

----------

## Pegasus87

Was ist denn dieser Governor?

Als ich damals diesen Thread eröffnet habe, hatte ich auch starke Probleme, mein Centrino-Notebook richtig einzurichten, nun nutze ich speedfreqd und das geht an sich auch.

Wird in Zukunft die Steuerung komplett ein Kernelmodul übernehmen oder wie st das jetzt zu verstehen?

----------

## mrsteven

Ja, hau den ondemand-Governor in den Kernel und füge folgendes in die /etc/conf.d/local.start ein:

```
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
```

Deaktiviere aber vorher deinen speedfreqd.

----------

## Massimo B.

Wenn der ondemand-Governor alles kann, was notwendig ist, brauche ich auch cpufreqd nicht.

Ich bekomme es auf meinem G3:iBook allerdings nicht hin:

```
cpufreq # cat scaling_available_governors

ondemand powersave userspace performance

cpufreq # echo ondemand > scaling_governor

cpufreq # cat scaling_governor

userspace

```

Der Governor bleibt auf userspace. Muß ich auf PPC evtl. doch auf cpufreqd zurückgreifen?

Bis auf die Ausfälle hat speedfreq gut gearbeitet.

Paolo

----------

## Anarcho

Also ich nutze auch den ondemand govenor, denn selbst wenn strom angeschlossen ist, muss die cpu ja nicht immer mit voller pulle laufen.

Daher brauche ich keinen cpufreqd. Oder regelt der besser als der ondemand_govenor?

----------

## Massimo B.

 *Anarcho wrote:*   

> Also ich nutze auch den ondemand govenor, denn selbst wenn strom angeschlossen ist, muss die cpu ja nicht immer mit voller pulle laufen.
> 
> 

 Das stimmt wohl. Ich verwende bei Akku minimum, sonst dynamic. Aber wie oben beschrieben, habe ich per Skript den Befehl an speedfeq geschickt. Genauso kann ich auch den Governor in /sys mit diesem Skript umschreiben. Frage ist nur, warum er sich nicht überschreiben läßt. Die Doks sagen, daß nicht jede CPU mit jedem Governor kann, in meinem Fall ein PPC.

Ich teste gerade cpufreqd: Ich würde gern je nach Netzteil auf powersafe-governor oder ondemand-governor umschalten, und die Dynamik dem governor überlassen.

Da dieser nicht geht macht es im Moment cpufreq:

```
[Rule]

name=acon_highcpu

ac=on

battery_interval=0-100

cpu_interval=50-100

profile=performance

[Rule]

name=acon_lowcpu

ac=on

battery_interval=0-100

cpu_interval=0-50

profile=powersave
```

 Cpufreq pollt jedoch nach meiner Einstellung im Sekundentakt. speedfreq war da schneller, je nach Belastung. Nimmt das pollen nicht performance?

----------

## Massimo B.

Ich mag cpufreq irgendwie nicht. Es ist oft ganz oben in top, und langsam in der Reaktion.

Ich mochte speedfreq, weil es zusammen mit /etc/power/pmcs-pbbuttonsd gearbeitet hat, cpufreq kann keine Kommandos empfangen., oder?

Und warum geht der ondemand Governor nicht? Er läßt sich einfach nicht nach sys schreiben. Die Governors "performance" und "powersave" lassen sich mit echo >.. einwandfrei schreiben.

ondemand ist aber in scaling_available_governors vorhanden.

----------

## amne

Solanger der speedfreqd noch funktioniert werde ich ihn auch weiteverwenden. Klar, es wird keine Updates mehr geben und keine neuen Features, aber mir erscheint er nützlich, so wie er ist.

----------

## Massimo B.

..würde ich auch, wenn speedfreq nicht ab und zu (besonders nach resume) einfach verschwunden wäre.

Was außerdem ne Macke von cpufreq ist: Das iBook ohne Akku aber mit Netzteil (logischerweise) wird von cpufreq als "Batterie-Betrieb" erkannt.

----------

## amne

Oh, stimmt, das hast du vorher schon gepostet. Bin schon still.  :Embarassed: 

----------

