Accueil Gestion Hardware Controler et optimiser le ventilateur CPU d'un ordinateur portable IBM Lenovo Thinkpad

Controler et optimiser le ventilateur CPU d'un ordinateur portable IBM Lenovo Thinkpad

cpu fanVous l'aurez certainement remarqué, le ventilateur des ordinateurs portables IBM / Lenovo Thinkpad, et plus particulièrement la série T, est configuré de façon "trop optimiste". Concrètement, il se met en route trop souvent et trop longtemps.

Alors que sur batterie le bruit du ventilateur est supportable (mode économie d'énergie), sur l'alimentation secteur il vous file une migraine en quelques minutes. Voici comment rendre votre thinkpad silencieux sans risque pour le processeur.

Je vous propose 2 méthodes :

- thinkfan : simple et efficace

- fancontrol : efficace mais plus pointu

 

Quelle que soit la méthode choisie, vous devez d'abord modifier le paramètre de chargement du module thinkpad_acpi.


Modification du chargement du module thinkpad_acpi

La gestion du ventilateur du Thinkpad est confiée au module thinkpad_acpi :

Ouvrez un Terminal super-utilisateur :

lsmod | grep thinkpad

Résultat :

thinkpad_acpi          50087  0
rfkill                 13044  5 bluetooth,thinkpad_acpi,cfg80211
nvram                   5077  1 thinkpad_acpi
led_class               2433  3 iwlcore,thinkpad_acpi,sdhci



Déchargez le module thinkpad_acpi, ainsi que ses dépendances (rfkill, nvram et led_class) :

modprobe -r thinkpad_acpi


Rechargez-le avec le paramètre fan_control à 1 :

modprobe thinkpad_acpi fan_control=1


Afin que ces modifications soient prises en compte à chaque démarrage de votre PC, créez le fichier suivant avec votre éditeur de texte préféré :

/etc/modprobe.d/thinkpad_acpi.conf


Faites un copier / coller de la ligne suivante :

options thinkpad_acpi fan_control=1

Sauvegardez.



Méthode 1
Contrôler le ventilateur CPU Thinkpad avec thinkfan


Sous Debian et Ubuntu, c'est généralement fancontrol qui est activé par défaut.
Avant d'installer thinkfan, il faut désactiver fancontrol :

service fancontrol stop
ou
/etc/init.d/fancontrol stop

Supprimez le démarrage automatique de fancontrol lors du démarrage du PC :

update-rc.d -f fancontrol remove


Installez thinkfan :

apt-get install thinkfan


Affichez le fichier de configuration :

cat /etc/thinkfan.conf

Résultat :

...
(0,     0,      55)
(1,     48,     60)
(2,     50,     61)
(3,     52,     63)
(4,     56,     65)
(5,     59,     66)
(7,     63,     32767)


Explications :

Colonne 1 : vitesse de rotation du ventilateur par niveau de 0 à 7 ; 0 = stop, 7 = max
Colonne 2 : température à laquelle la vitesse de rotation du ventilateur baisse d'un niveau
Colonne 3 : température à laquelle la vitesse de rotation du ventilateur augmente d'un niveau

Pour les 2 premières lignes, je vous conseille :

(0,     0,      50)
(1,     43,     60)

Ce réglage permettra au ventilateur de ne pas s'arrêter complètement (on passe rarement en-dessous de 43 degrés dans un ordinateur portable), assurant ainsi une ventilation continue et discrète.

Démarrez thinkfan en tapant simplement :

thinkfan


Démarrage automatique de thinkfan au reboot du PC

A la date où j'écris cet article, je n'ai pas réussi à utiliser le script /etc/init.d/thinkfan pour démarrer ou arrêter le service thinkfan.

Procédez comme suit :

update-rc.d -f thinkfan remove

Editez le fichier /etc/rc.local et ajoutez thinkfan avant exit 0 :

thinkfan
exit 0


Sauvegardez. Thinkfan démarrera automatiquement à chaque reboot du PC.


Vérification valeurs capteur de température / vitesse du ventilateur

Vous pouvez à tout moment contrôler ces valeurs en tapant :

sensors

(nécessite le paquet lm-sensors)

Exemple :

thinkpad-isa-0000
Adapter: ISA adapter
fan1:       1975 RPM
temp1:       +51.0°C
temp2:        +0.0°C
temp3:        +0.0°C
temp4:        +0.0°C
temp5:        +0.0°C
temp6:        +0.0°C
temp7:        +0.0°C
temp8:        +0.0°C



Ou encore :

Contrôle vitesse ventilateur :

cat /proc/acpi/ibm/fan

Exemple :

status:         enabled
speed:          1988
level:          1
commands:       level <level> (<level> is 0-7, auto, disengaged, full-speed)
commands:       enable, disable
commands:       watchdog <timeout> (<timeout> is 0 (off), 1-120 (seconds))


Contrôle température :

cat /proc/acpi/ibm/thermal

Exemple :

temperatures:   53 0 0 0 0 0 0 0



Méthode 2
Contrôler le ventilateur CPU Thinkpad avec fancontrol



Si vous avez installé thinkfan, pensez à le désactiver avant d'utiliser fancontrol !

S'il est actif, stoppez le service fancontrol :

service fancontrol stop
ou
/etc/init.d/fancontrol stop


Créez un fichier de configuration personnalisé pour le contrôle du ventilateur :

pwmconfig

Vous obtenez quelque chose de similaire :

This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

Found the following devices:
hwmon0 is acpitz
hwmon1/device is thinkpad

Found the following PWM controls:
hwmon1/device/pwm1

Giving the fans some time to reach full speed...
Found the following fan sensors:
hwmon1/device/fan1_input     current speed: 5456 RPM

Warning!!! This program will stop your fans, one at a time,
for approximately 5 seconds each!!!
This may cause your processor temperature to rise!!!
If you do not want to do this hit control-C now!!!
Hit return to continue:

Appuyez sur ENTREE.


Testing pwm control hwmon1/device/pwm1 ...
hwmon1/device/fan1_input ... speed was 5456 now 4960
no correlation

No correlations were detected.
There is either no fan connected to the output of hwmon1/device/pwm1,
or the connected fan has no rpm-signal connected to one of
the tested fan sensors. (Note: not all motherboards have
the pwm outputs connected to the fan connectors,
check out the hardware database on http://www.almico.com/forumindex.php)

Did you see/hear a fan stopping during the above test (n)? y


Répondez y.


Testing is complete.
Please verify that all fans have returned to their normal speed.

The fancontrol script can automatically respond to temperature changes
of your system by changing fanspeeds.
Do you want to set up its configuration file now (y)? y

Répondez y.


What should be the path to your fancontrol config file (/etc/fancontrol)?

Appuyez sur ENTREE.


Loading configuration from /etc/fancontrol ...

Select fan output to configure, or other action:
1) hwmon1/device/pwm1  3) Just quit           5) Show configuration
2) Change INTERVAL     4) Save and quit
select (1-n): 1

Choisissez 1.


Devices:
hwmon0 is acpitz
hwmon1/device is thinkpad

Current temperature readings are as follows:
hwmon0/temp1_input      36
hwmon1/device/temp1_input       36
hwmon1/device/temp2_input       0
hwmon1/device/temp3_input       0
hwmon1/device/temp4_input       0
hwmon1/device/temp5_input       0
hwmon1/device/temp6_input       0
hwmon1/device/temp7_input       0
hwmon1/device/temp8_input       0

Select a temperature sensor as source for hwmon1/device/pwm1:
1) hwmon0/temp1_input
2) hwmon1/device/temp1_input
3) hwmon1/device/temp2_input
4) hwmon1/device/temp3_input
5) hwmon1/device/temp4_input
6) hwmon1/device/temp5_input
7) hwmon1/device/temp6_input
8) hwmon1/device/temp7_input
9) hwmon1/device/temp8_input
10) None (Do not affect this PWM output)
select (1-n): 2

Choisissez 2.


Enter the low temperature (degree C)
below which the fan should spin at minimum speed (20): 50

Saisissez 50.


Enter the high temperature (degree C)
over which the fan should spin at maximum speed (60): 70

Saisissez 70.


/usr/sbin/pwmconfig: line 923: [: -eq : opérateur unaire attendu
/usr/sbin/pwmconfig: line 949: [: -eq : opérateur unaire attendu

Enter the PWM value (0-255) to use when the temperature
is over the high temperature limit (255): 255

Saisissez 255.


Select fan output to configure, or other action:
1) hwmon1/device/pwm1  3) Just quit           5) Show configuration
2) Change INTERVAL     4) Save and quit
select (1-n): 2

Vous pouvez aussi modifier l'intervalle de temps de contrôle de la température.
Choisissez 2.



Current interval is 10 seconds.
Enter the interval at which fancontrol should update PWM values (in s): 20

Saisissez par exemple 20 secondes.


Select fan output to configure, or other action:
1) hwmon1/device/pwm1  3) Just quit           5) Show configuration
2) Change INTERVAL     4) Save and quit
select (1-n): 5

Pour visualiser le fichier de configuration obtenu, choisissez 5.


Common Settings:
INTERVAL=20

Settings of hwmon1/device/pwm1:
Depends on hwmon1/device/temp1_input
Controls
MINTEMP=50
MAXTEMP=70
MINSTART=150
MINSTOP=0
MINPWM=50
MAXPWM=255


Select fan output to configure, or other action:
1) hwmon1/device/pwm1  3) Just quit           5) Show configuration
2) Change INTERVAL     4) Save and quit
select (1-n): 4

Enfin, choisissez 4 pour sauvegarder le fichier de configuration.

Saving configuration to /etc/fancontrol...
Configuration saved


Démarrez le service fancontrol :

service fancontrol start
ou
/etc/init.d/fancontrol start


Le ventilateur de votre Thinkpad démarrera maintenant à 50 degrés et atteindra sa vitesse maximale à 70 degrés. Il se coupera à une température inférieure à 50 degrés. Vous pouvez à tout moment modifier la configuration en éditant le fichier /etc/fancontrol.


Vérifiez que le service fancontrol est configuré pour démarrer automatiquement après un reboot du PC :

ls /etc/rc* | grep fancontrol

Si cette commande de retourne rien, tapez :

update-rc.d fancontrol defaults


Affinage du contrôle du ventilateur

Dans l'exemple ci-dessus, le ventilateur s'arrête complètement lorsque la température processeur est inférieure à 50 degrés. Mais comme elle remonte très vite, ceci engendre des arrêts / redémarrages intempestifs du ventilateur.

Il serait plus judicieux de laisser tourner le ventilateur à faible vitesse lorsque la température est inférieure à 50 degrés. Ainsi, vous conserverez un bon refroidissement et... le silence :-)

Modifiez le fichier /etc/fancontrol comme suit :

INTERVAL=20
DEVPATH=hwmon1=devices/platform/thinkpad_hwmon
DEVNAME=hwmon1=thinkpad
FCTEMPS= hwmon1/device/pwm1=hwmon1/device/temp1_input
FCFANS= hwmon1/device/pwm1=
MINTEMP= hwmon1/device/pwm1=50
MAXTEMP= hwmon1/device/pwm1=70
MINSTART= hwmon1/device/pwm1=150
MINSTOP= hwmon1/device/pwm1=50
MAXPWM= hwmon1/device/pwm1=255
MINPWM= hwmon1/device/pwm1=50


Redémarrez le service fancontrol :

service fancontrol force-reload
ou
/etc/init.d/fancontrol force-reload

C'est la valeur du paramètre MINPWM qui permet de gérer la vitesse du ventilateur une fois passé en-dessous du seuil défini par MINTEMP.

Pour obtenir de l'aide sur les autres paramètres :

man fancontrol

Libre à vous de tester d'autres valeurs afin de trouver votre configuration optimale :-)


Mis à jour (Samedi, 26 Novembre 2011 12:07)

 

Articles en rapport