Gestion du processeur du Gdium
Dans son état d'origine, le Gdium chauffe pas mal et a une autonomie
assez mauvaise. Voici les opérations permettant de gérer ces
problèmes.
Contrôle de la fréquence
Aspects bas-niveau
La fréquence du processeur se contrôle via les fichiers dans
/sys/devices/system/cpu/cpu0/cpufreq:
- cpuinfo_cur_freq
- Indique la fréquence actuelle du processeur (en kHz)
- scaling_max_freq et scaling_min_freq
- Indique les limites (toujours en kHz) des fréquences auxquelles le
processeur peut tourner. On peut écrire dans ces fichiers pour fixer
ces limites
- scaling_available_frequencies
- La liste de toutes les fréquences utilisables
- scaling_available_governors
- La liste des modes de gestion de la fréquence du processeur; par
défaut, il n'y en a qu'un: performance, qui garde toujours le processeur
à fond. Cette liste est mise à jour lorsque les modules du
kernel adéquats sont chargés.
- scaling_governor
- Le mode de gestion des fréquences courant. On peut y écrire
la valeur du governor désiré, par exemple ondemand, qui garde
le processeur à la vitesse minimale, sauf en cas de besoin. Le module
pour ce mode est cpufreq_ondemand.
Mise en oeuvre
On peut faire un petit script pour mettre sa politique
préférée en oeuvre, mais il existe déjà.
- Installer le paquet cpufreq (onglet Configurer, Ajout/Suppression de
programmes)
- Dans le fichier /etc/sysconfig/cpufreq,
décommenter la ligne #GOVERNOR=ondemand
- Vérifier que le service est lancé au démarrage, soit
par la présence d'un lien S50cpufreq dans
/etc/rc5.d, ou l'outil graphique de gestion des
services.
- Editer /etc/init.d/cpufreq, qui n'est pas
adapté à finit. En effet, finit
(plus précisément /usr/sbin/services.sh) teste les services
en lançant ce script avec l'argument status pour ne le lancer que
s'il n'a pas déjà été activé. Or, le
script retourne toujours dans ce cas un code de retour de succès, et
n'est donc pas lancé au boot. La modification précise à
faire se trouve plus bas
Modification de /etc/init.d/cpufreq
Aller dans la section status) et ajouter ce
qui suit juste avant les deux points-virgules:
if [ -f /var/log/subsys/cpufreq ]; then
RETVAL=0
else
RETVAL=1
fi
Le refroidissement
Aspects bas-niveau
Le ventilateur est géré par une sonde (module lm75).
Les fichiers dans /sys pour sa gestion sont
/sys/class/hwmon/hwmon0/device/temp1_*. temp1_input
rapporte la température courante de la sonde, temp1_max indique au
delà de quelle température le ventilateur se déclenche et
temp1_max_hyst la température en-dessous de laquelle le ventilateur
s'éteint.
Mise en oeuvre
Les valeurs peuvent se configurer avec lm_sensors (ficnier de configuration
/etc/sensors.conf et script chargeant ce fichier
/etc/init/d/lm_sensors). Par défaut,
/etc/sensors.conf contient:
chip "lm75-*"
set temp_over 60
set temp_hyst 55
A noter que les températures sont en degrés dans sensors.conf
et en millièmes de degrés dans /sys. temp_over correspond au
fichier temp1_max et temp_hyst au fichier temp1_max_hyst.