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.
Note: ces surchauffes semblent être le fait de ce premier Gdium défectueux, mais les instructions ci-dessous restent utiles.
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.