fred voisin

(smart (music (engines)))

Accueil > Trucs et astuces > à propos de la fréquence CPU (Mac Linux)

à propos de la fréquence CPU (Mac Linux)

jeudi 7 septembre 2006, par Fred

Régler la fréquence du CPU, sur Mac powerpc, ubuntu breezy (dist-upgrade depuis depuis warty)

Sur un Powerbook Titanium G4 1 GHz :
En lisant log systeme demarrage (logwatch), vu activation du driver :

"PowerMac CPU frequency driver" (enabled)...

soit...

$ cd /sys/devices/system/cpu/cpu0/cpufreq
$ cat cpuinfo_cur_freq
667000

- installation de powernowd :

$ sudo dpkg -i powernowd_0.97-1_powerpc.deb

- vérification activation en espace user :

$ sudo /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governor
$ echo 1000000 >scaling_setspeed

- les performances semblent meilleures (monitor graphique) mais BIZARRE :

$ cat cpuinfo_cur_freq
667000

et :

$ cat /proc/cpuinfo
processor : 0
cpu : 7455, altivec supported
clock : 667MHz
revision : 0.2 (pvr 8001 0302)
bogomips : 665.60
machine : PowerBook3,5
motherboard : PowerBook3,5 MacRISC2? MacRISC? Power Macintosh
detected as : 80 (PowerBook? Titanium IV)
pmac flags : 0000001b
L2 cache : 256K unified
memory : 1024MB
pmac-generation : NewWorld?

Bizarrement, après installation de libcpufreq0_002-0bpo1_powerpc.deb et cpufrequtils_002-0bpo1_powerpc.deb (depuis paquets deb - dpkg -i -, la compilation échoue...)

$ cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Veuillez rapportez les erreurs et les bogues à linux@brodo.de, s'il vous plait.
analyse du CPU 0 :
pilote : powermac
CPUs qui doivent changer de fréquences en même temps : 0
limitation matérielle : 667 MHz - 1000 MHz
plage de fréquence : 1000 MHz, 667 MHz
régulateurs disponibles : userspace, powersave, ondemand, conservative, performance
tactique actuelle : la fréquence doit être comprise entre 667 MHz et 1000 MHz.
Le régulateur "userspace" est libre de choisir la vitesse
dans cette plage de fréquences.
la fréquence actuelle de ce CPU est 667 MHz.

- Changer la frequence du CPU :

# cpufreq-set -c 0 -f 1000000
# cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Veuillez rapportez les erreurs et les bogues à linux@brodo.de, s'il vous plait.
analyse du CPU 0 :
pilote : powermac
CPUs qui doivent changer de fréquences en même temps : 0
limitation matérielle : 667 MHz - 1000 MHz
plage de fréquence : 1000 MHz, 667 MHz
régulateurs disponibles : userspace, powersave, ondemand, conservative, performance
tactique actuelle : la fréquence doit être comprise entre 667 MHz et 1000 MHz.
Le régulateur "userspace" est libre de choisir la vitesse
dans cette plage de fréquences.
la fréquence actuelle de ce CPU est 1000 MHz.

contradictoire avec cpufreq-info :

# for i in /sys/devices/system/cpu/cpu0/*/*; do echo $i; cat $i; done
/sys/devices/system/cpu/cpu0/cpufreq/affected_cpus
0
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
667000
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
1000000
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
667000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1000000 667000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
userspace powersave ondemand conservative performance
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
667000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
powermac
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
userspace
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
1000000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
667000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
667000
/sys/devices/system/cpu/cpu0/cpufreq/stats
cat: /sys/devices/system/cpu/cpu0/cpufreq/stats: Is a directory

cependant, après crash-reboot : passage a 1GHz, c’est déjà ça :) !

# cat /proc/cpuinfo
processor : 0
cpu : 7455, altivec supported
clock : 1000MHz
revision : 0.2 (pvr 8001 0302)
bogomips : 997.90
machine : PowerBook3,5
motherboard : PowerBook3,5 MacRISC2? MacRISC? Power Macintosh
detected as : 80 (PowerBook? Titanium IV)
pmac flags : 0000001b
L2 cache : 256K unified
memory : 1024MB
pmac-generation : NewWorld?

et :

# for i in /sys/devices/system/cpu/cpu0/*/*; do echo $i; cat $i; done
/sys/devices/system/cpu/cpu0/cpufreq/affected_cpus
0
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
1000000
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
1000000
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
667000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1000000 667000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
performance
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1000000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
powermac
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
performance
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
1000000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
667000
...

Il apparait donc qu’après le reboot, et donc après installation de cpufreq, seul le régulateur « performance » est disponible :

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
performance

et :

# cpufreq-info cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Veuillez rapportez les erreurs et les bogues à linux@brodo.de, s'il vous plait.
analyse du CPU 0 :
pilote : powermac
CPUs qui doivent changer de fréquences en même temps : 0
limitation matérielle : 667 MHz - 1000 MHz
plage de fréquence : 1000 MHz, 667 MHz
régulateurs disponibles : performance
tactique actuelle : la fréquence doit être comprise entre 667 MHz et 1000 MHz.
Le régulateur "performance" est libre de choisir la vitesse
dans cette plage de fréquences.
la fréquence actuelle de ce CPU est 1000 MHz (vérifié par un appel direct du matériel).

On ne peut plus changer de fréquence, ni dans terminal avec cpufreq-set -c 0 -f freq, ni changer avec powerprefs (le cpu (policy) reste a « performance » même sur batterie lorsqu’on verifie avec cpufreq-info...) :(

# /etc/init.d/powernowd start
Starting powernowd: Error writing file governor: Invalid argument

PowerNowd? encountered and error and could not start.
Please make sure that:

   * You are running a v2.6.7 kernel or later
   * That you have sysfs mounted /sys
   * That you have the core cpufreq and cpufreq-userspace
     modules loaded into your kernel
   * That you have the cpufreq driver for your cpu loaded,
     (for example: powernow-k7), and that it works. Check
     'dmesg' for errors.

If all of the above are true, and you still have problems,
please email the author: clemej@alum.rpi.edu
# uname -a
Linux sanza 2.6.12-10-powerpc #1 Tue Jul 18 19:52:54 UTC 2006 ppc GNU/Linux

...


(problème résolu, mais reste des contradictions avec l’application « powerprefs » qui ne semble pas gérer tous les modes, notamment userspace)