# Régulation de la température & lm_sensors...

## Titou1384

Bonjour à tous !

J'aurais une petite question par rapport à lm_sensors. Pour tous vous dire, la régulation de la température de mon PC est quelque peu archaïque, je m'en suis rendu compte depuis peu : en gros, les ventilos sont en passif en dessous de 80°C, et à fond au dessus. 

Et je me demandais s'il y avait pas moyen de définir soi même la vitesse des fans par rapport à la température, peut-être en utilisant lm_sensors...

Merci d'avance !

----------

## jaypeche

Je pense qu'il faut d'abord penser Hardware; suivant la CM tu as la possibilité sur les cartes récentes de brancher un ventilo DIN4, 4 broches dont 1 pour la régulation thermique. 

En gros c géré en hard par le biais du BIOS.

N'importe comment si ton ventilateur n'est pas en 4 broches tu ne pourra pas réguler la vitesse.

Après avec LMsensors y'a peut etre moyen de gérer ça logicielement, mais la comme ca je ne sais pas.   :Question: 

----------

## pti-rem

Sur un portable Asus avec système graphique Optimus (GPU i915 de base + nvidia GF108M [GeForce GT 630M] que je n'arrive pas encore à configurer comme il faut) j'utilise bbswitch et un script dans /etc/local.d/

```
gazeau ~ # cat /etc/local.d/bbswitch-nvidia-lowpower.start 

rmmod nvidia & modprobe bbswitch

tee /proc/acpi/bbswitch <<<OFF

cat /proc/acpi/bbswitch
```

La température baisse réellement du simple fait de désactiver la nvidia

Sur une autre machine (n40l) avec une gpu pcie [AMD/ATI] Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] j'adopte le même principe ;

```
n40l ~ # cat /etc/local.d/RADEON_POWER_MANAGEMENT.start 

echo "profile" > /sys/class/drm/card0/device/power_method

cat /sys/class/drm/card0/device/power_method

echo "low" > /sys/class/drm/card0/device/power_profile

cat /sys/class/drm/card0/device/power_profile

# echo "dynpm" > /sys/class/drm/card0/device/power_method

sensors
```

édition : Je n'utilise plus le premier script ; j'utilise la commande optirun de Bumblebee avec le pilote nvidia à défaut de n'avoir su configurer le pilote nouveau. optirun éteint la carte nvidia dès qu'il n'est pas utilisé.

Là aussi la température baisse vraiment.

Il est assez facile de modifier ces paramètres suivant les ressources que l'on demande au gpu

Je passe en power_method dynpm lorsque je regarde une vidéo (Netflix, Plex, Vlc ... )

Autrement, pour ta question de définir le seuil de déclenchement des ventilos, j'ai la même réponse que jaypeche. Il existe des ratios de ventilation dans ton BIOS

Et un bon soufflage ne fait pas de mal. Un ventilateur sale voire vieux refroidi moins ; c'est un élément d'usure.

D'ailleurs je me pose encore la question si il vaut mieux extraire la chaleur ou la souffler ... Positionnement du ventilo.

C'est une tour ?

Combien de ventilos ? 

```
gazeau ~ # sensors

acpitz-virtual-0

Adapter: Virtual device

temp1:        +50.0°C  (crit = +103.0°C)

coretemp-isa-0000

Adapter: ISA adapter

Physical id 0:  +50.0°C  (high = +86.0°C, crit = +100.0°C)

Core 0:         +48.0°C  (high = +86.0°C, crit = +100.0°C)

Core 1:         +47.0°C  (high = +86.0°C, crit = +100.0°C)

Core 2:         +46.0°C  (high = +86.0°C, crit = +100.0°C)

Core 3:         +47.0°C  (high = +86.0°C, crit = +100.0°C)

asus-isa-0000

Adapter: ISA adapter

temp1:        +50.0°C
```

```
n40l ~ # sensors

radeon-pci-0100

Adapter: PCI adapter

temp1:        +58.0°C  

k10temp-pci-00c3

Adapter: PCI adapter

temp1:        +38.5°C  (high = +70.0°C)

                       (crit = +100.0°C, hyst = +95.0°C)
```

Last edited by pti-rem on Sun Nov 23, 2014 1:11 pm; edited 3 times in total

----------

## pti-rem

Bonjour,

Titou1384, pour ce qui concerne le processeur, tu peux voir les options du noyau CONFIG_CPU_FREQ*

lm_sensors peut suivre la température de ton processeur ou d'autres composants de ton ordinateur, la vitesse des ventilateurs, et d'autres données systèmes mais pas les ajuster.

Une autre piste intéressante : ENERGY_PERF_BIAS

```
gazeau rem # dmesg | grep BIAS

[    0.155498] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'

ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
```

Je ne sais pas utiliser x86_energy_perf_policy

----------

## Titou1384

Salut,

Tout d'abord, merci à vous deux pour vos réponses, et désolé pour la mienne un peu tardive  :Smile: 

Tout d'abord, je vais apporter quelques précisions quant au HW : il s'agit d'un portable HP (625 de mémoire), et les chipsets audio / vidéo et le processeur sont en AMD / ATI.

Cependant, je pense qu'il est possible de réguler la vitesse, car sous mes autres distros (Arch et Debian), je n'ai jamais eu de soucis de ce genre : la ventilation se mettait en route quand ça chauffait, et devenait silencieuse quand elle n'avait plus lieu de tourner. Pour le nombre de ventilos, il semblerait que ce soit un seul.

@pti-rem : les scripts que tu proposes viennent-ils avec un paquet ? Sont-ils de ta création ? Comment serait-il possible de les mettre en oeuvre ? 

Par rapport à ton deuxième message, si lm_sensors ne peut pas modifier les données systèmes en question, c'est donc pour ça qu'il a besoin de pwmconfig ? 

Et donc, si je n'ai pas de "pwmconfig capable" fans, la seule solution consisterait à modifier les propriétés du ventilo dans /sys/class via un script comme tu l'as fait ? 

Quant à ENERGY_PERF_BIAS, je n'ai aucun retour à un "dmesg | grep BIAS"...

Désolé pour l'avalanche de questions, et merci encore pour ta réponse ! 

Bonne soirée.

----------

## pti-rem

Salut Titou1384

La fiche materiel.net du portable HP 625 indique que tu es équipé d'une carte graphique ATI Radeon HD4200 (Marketing Name).

C'est facile à vérifier avec la commande lspci

D'après La FAQ ATI Gentoo cela renvoie à un GPU : RV770 (Engineering Name) R700 (Family) et un Support xorg

Mais d'après http://xorg.freedesktop.org/wiki/RadeonFeature/ cela renvoie à une famille R600

De même pour http://wiki.gentoo.org/wiki/Radeon#Feature_support : R600

Donc vérifie ton modèle d'ordinateur et sa carte graphique, comme indiqué dans le lien ci-dessus. (Hardware detection)

Mon micro serveur n40l utilise un GPU de famille "Northern Islands" ; [AMD/ATI] Caicos [Radeon HD 6450]

J'ai eu à mettre VIDEO_CARDS="radeon" dans le make.conf ; Je n'utilise pas de pilote propriétaire pour cette carte.

Et la configurer en conséquence. Voir Le Wiki Radeon Gentoo

J'insiste sur le GPU car si il est mal géré - fonctionne trop tout le temps, il provoque de la chaleur qui doit être dissipée.

Donne nous aussi la version de ton noyau et si tu es sous init systemd ou openrc.

Je dois me recentrer sur le problème initial :

 *Quote:*   

> je m'en suis rendu compte depuis peu : en gros, les ventilos sont en passif en dessous de 80°C, et à fond au dessus

 

Le premier script est écrit d'après le fonctionnement de Bumblebee / bbswitch et est spécifique aux système graphiques couplés "Optimus"

Le deuxième script provient d'une lointaine recherche après avoir constaté que le sensors de la carte graphique du micro serveur indiquait une température trop élevée ; pas raisonnable.

Mon micro serveur est entièrement passif (pas de ventilos) ; Donc je peux me permettre un 'profile' en 'low' et adapter selon un besoin ponctuel ; Il est dit à http://xorg.freedesktop.org/wiki/RadeonFeature/ (Sous KMS Power Management Options) :

 *Quote:*   

> Controlling the fan speed directly is not possible (and would be very dangerous), but it can be lowered by setting lower power profile.

 

Il y est dit aussi :

 *Quote:*   

> Try modinfo -p radeon to find up-to-date parameters. 

 

La sortie est vraiment complète.

Je ne connais pas pwmconfig

 *Quote:*   

> la seule solution consisterait à modifier les propriétés du ventilo dans /sys/class via un script comme tu l'as fait ?

 

Je ne sais pas si c'est la seule, je te conseille dans un premier temps d'adopter un 'profile' 'auto' et voir venir tes températures et les déclenchements du ventilo ; À moins que quelqu'un d'autre ai une meilleure solution à suggérer.

Si tu présumes de la poussière,

Hors-tension et batterie retirée, tu peux aussi aspirer puis souffler le clavier ; Ouvrir la ou les trappe(s) de visite du dessous et souffler. Sans oublier de bien souffler la bouche latérale d'air chaud.

Bombe d'air sec spécifique, non-inflammable de préférence.

/pub FAREPRO AIRTOPMULTI - Gaz dépoussiérant ininflammable multi-positions /

Je n'ai pas d'information complémentaire sur ENERGY_PERF_BIAS et x86_energy_perf_policy 8 ; Je m'y intéresse  :Wink: 

Pour finir ce message je donne une partie de la conf de mon noyau :

```
n40l ~ # uname -a

Linux n40l 3.16.5-gentoo #1 SMP Mon Nov 17 02:55:32 CET 2014 x86_64 AMD Turion(tm) II Neo N40L Dual-Core Processor AuthenticAMD GNU/Linux

n40l ~ # zcat /proc/config.gz | grep DRM

CONFIG_DRM=m

CONFIG_DRM_KMS_HELPER=m

CONFIG_DRM_KMS_FB_HELPER=y

CONFIG_DRM_LOAD_EDID_FIRMWARE=y

CONFIG_DRM_TTM=m

# CONFIG_DRM_I2C_CH7006 is not set

# CONFIG_DRM_I2C_SIL164 is not set

# CONFIG_DRM_I2C_NXP_TDA998X is not set

# CONFIG_DRM_PTN3460 is not set

# CONFIG_DRM_TDFX is not set

# CONFIG_DRM_R128 is not set

CONFIG_DRM_RADEON=m

# CONFIG_DRM_RADEON_UMS is not set

# CONFIG_DRM_NOUVEAU is not set

# CONFIG_DRM_I915 is not set

# CONFIG_DRM_MGA is not set

# CONFIG_DRM_VIA is not set

# CONFIG_DRM_SAVAGE is not set

# CONFIG_DRM_VMWGFX is not set

# CONFIG_DRM_GMA500 is not set

# CONFIG_DRM_UDL is not set

# CONFIG_DRM_AST is not set

# CONFIG_DRM_MGAG200 is not set

# CONFIG_DRM_CIRRUS_QEMU is not set

# CONFIG_DRM_QXL is not set

# CONFIG_DRM_BOCHS is not set

n40l ~ # zcat /proc/config.gz | grep FIRMWARE

CONFIG_PREVENT_FIRMWARE_BUILD=y

CONFIG_FIRMWARE_IN_KERNEL=y

CONFIG_EXTRA_FIRMWARE="radeon/R600_rlc.bin radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin dvb-usb-dib0700-1.20.fw"

CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"

CONFIG_RT2X00_LIB_FIRMWARE=y

# CONFIG_CYPRESS_FIRMWARE is not set

CONFIG_DRM_LOAD_EDID_FIRMWARE=y

# CONFIG_FIRMWARE_EDID is not set

CONFIG_FIRMWARE_MEMMAP=y

# CONFIG_GOOGLE_FIRMWARE is not set
```

----------

## Titou1384

Salut pti-rem,

pour ce qui est de la config HW, je te dirais ça ce soir, je n'ai malheureusement pas mon PC sous la main. De même pour la version de kernel, cependant, je suis sous OpenRC pour l'init. 

Par ailleurs, je te remercie pour le lien relatif au "KMS Power Management", ne l'avais pas trouvé et ça peut m'être utile !

Il faut donc que j'essaie de passer ce setting au "auto", s'il n'y est pas déjà.

Quant à la poussière, il ne me semble pas qu'il y en ait beaucoup, mais quand bien même, ça ne peut pas faire de mal. 

Enfin, pour la config du noyau, je vais comparer avec la mienne, histoire de voir ce qui change. 

Et merci pour la commande zcat, je décompressais mes fichiers d'exemple de config à chaque fois... Me voilà maintenant préservé de ce travers  :Smile: 

Merci pour tes réponses et bonne journée !

----------

