Table des matières

Contrôle de la vitesse du ventilateur sur Proxmox (Lenovo ThinkCentre M73)

Contexte

Proxmox VE ne propose aucune gestion native de la vitesse des ventilateurs : c'est du Debian en dessous, donc on passe par les outils Linux standards lm-sensors + fancontrol.

Matériel testé

1. Installation des paquets

apt install lm-sensors fancontrol

2. Détection des capteurs

sensors-detect

Réponses à donner aux questions posées (garder les valeurs par défaut, entre parenthèses, en appuyant sur Entrée) :

Le programme doit trouver :

Driver `it87':
  * ISA bus, address 0xa40
    Chip `ITE IT8792E Super IO Sensors' (confidence: 9)
Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

Accepter l'ajout automatique des modules à /etc/modules.

3. Problème rencontré : "Device or resource busy"

Au chargement du module, erreur classique sur ce type de carte mère (le BIOS réserve la plage I/O du chip IT87 via ACPI) :

modprobe: ERROR: could not insert 'it87': Device or resource busy

Solution : autoriser le noyau à ignorer cette réservation ACPI.

Éditer /etc/default/grub et ajouter le paramètre à la ligne GRUB_CMDLINE_LINUX_DEFAULT :

GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_enforce_resources=lax"

Puis :

update-grub
reboot

Après redémarrage, le module se charge normalement :

modprobe coretemp
modprobe it87
sensors

Le chip it8792-isa-0a40 doit apparaître avec fan1, pwm1, et les températures.

4. Génération de la courbe avec pwmconfig

pwmconfig

Le programme teste chaque PWM en coupant brièvement le ventilateur pour voir lequel réagit. Sur cette machine, seul fan1 / pwm1 est câblé (fan2 et fan3 à 0 RPM = headers non utilisés).

Une fois le test terminé, un menu apparaît :

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

Navigation à suivre :

  1. Choisir 1) hwmon2/pwm1 pour configurer ce ventilateur
  2. Sélectionner la sonde de température source → hwmon1/temp1_input (température CPU “Package id 0”)
  3. Renseigner les 3 valeurs demandées à la suite : température basse (40), température haute (75), PWM à utiliser au-dessus de la température haute (255)
  4. De retour au menu, choisir 5) Show configuration pour vérifier ce qui a été enregistré
  5. Choisir 4) Save and quit pour écrire /etc/fancontrol

Courbe mesurée (PWM → RPM) :

PWM 255 → 3110 RPM  (vitesse max)
PWM 135 → 894 RPM   (zone stable la plus basse)
< PWM 135 → comportement instable (RPM qui remonte au lieu de descendre)

Réglages retenus (sonde de référence : hwmon1/temp1_input = température CPU “Package id 0”) :

5. Fichier /etc/fancontrol final

# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/it87.2624
DEVNAME=hwmon1=coretemp hwmon2=it8792
FCTEMPS=hwmon2/pwm1=hwmon1/temp1_input
FCFANS= hwmon2/pwm1=hwmon2/fan1_input
MINTEMP=hwmon2/pwm1=40
MAXTEMP=hwmon2/pwm1=75
MINSTART=hwmon2/pwm1=150
MINSTOP=hwmon2/pwm1=100
MAXPWM=hwmon2/pwm1=255

Correction de MINSTOP après génération :

sed -i 's/MINSTOP=hwmon2\/pwm1=0/MINSTOP=hwmon2\/pwm1=100/' /etc/fancontrol

6. Activation du service

systemctl enable --now fancontrol
systemctl status fancontrol

7. Vérification

sensors | grep pwm1
watch -n 2 'sensors | grep -E "pwm1|Package"'

Note : le libellé MANUAL CONTROL affiché à côté de pwm1 est normal une fois fancontrol actif — il indique que le pilotage est fait en logiciel (par fancontrol) plutôt que par l'automatisme du BIOS. Ce n'est pas une erreur.

Pour valider le comportement : lancer une charge CPU et observer que le PWM augmente progressivement entre 40°C et 75°C, puis redescend au repos jusqu'à MINSTOP (100).

Résumé des commandes

apt install lm-sensors fancontrol
sensors-detect
# éditer /etc/default/grub : ajouter acpi_enforce_resources=lax
update-grub && reboot
modprobe coretemp it87
pwmconfig
nano /etc/fancontrol   # vérifier/corriger MINSTOP
systemctl enable --now fancontrol