commande_bash:fan-control

Ceci est une ancienne révision du document !


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

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.

  • Machine : Lenovo ThinkCentre M73 (carte mère “SHARKBAY”)
  • BIOS : Lenovo FHKT52AUS (2014)
  • CPU : Intel Core i5-4570T
  • Puce de supervision matérielle : ITE IT8792E (Super I/O)
apt install lm-sensors fancontrol
sensors-detect

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

  • “Do you want to scan for them?” (embedded sensors) → YES (défaut)
  • “Do you want to scan for Super I/O sensors?” → YES (défaut) — c'est cette étape qui détecte la puce IT8792E
  • “Do you want to scan for IPMI interfaces?” → YES (défaut, sans effet ici, pas d'IPMI sur ce matériel)
  • “Do you want to scan the ISA I/O ports?” → NO (défaut)
  • “Do you want to probe the I2C/SMBus adapters now?” → YES (défaut)
  • Pour chaque adaptateur I2C/SMBus listé ensuite (“Do you want to scan it?”) → NO (défaut, laisser passer, non nécessaire ici)
  • “Do you want to add these lines automatically to /etc/modules?” → yes (répondre explicitement, ce n'est pas la valeur par défaut) — ajoute coretemp et it87 à /etc/modules pour qu'ils se chargent automatiquement au démarrage

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.

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.

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).

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”) :

  • MINTEMP = 40°C → en dessous, ventilateur au minimum
  • MAXTEMP = 75°C → au-dessus, ventilateur à fond
  • MINSTART = 150 → PWM nécessaire pour relancer le ventilateur à l'arrêt
  • MINSTOP = 100 → corrigé manuellement après coup (pwmconfig avait mis 0 par défaut, ce qui aurait laissé le ventilateur descendre dans la zone instable sous PWM 135)
  • MAXPWM = 255
# 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
systemctl enable --now fancontrol
systemctl status fancontrol
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).

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
  • commande_bash/fan-control.1783356853.txt.gz
  • Dernière modification : 2026/07/06 16:54
  • de bebech