Fan speed control (Français)
Le contrôle des ventilateurs peut apporter de nombreux avantages à votre système, comme un fonctionnement plus silencieux et une économie d'énergie en arrêtant complètement les ventilateurs lorsque la charge du processeur est faible.
Vue d'ensemble
Il existe plusieurs solutions fonctionnelles pour le contrôle des ventilateurs, tant pour les ordinateurs de bureau que pour les ordinateurs portables. En fonction de vos besoins :
- Fancontrol (lm-sensors) — Script (écrit en Bash) pour configurer la vitesse des ventilateurs. Plus adapté aux ordinateurs de bureau et portables, où les contrôles de ventilateurs sont disponibles via sysfs(5).
- NoteBook Fan Control (NBFC) — Solution multiplateforme pour le contrôle des ventilateurs des ordinateurs portables, écrite en C# et fonctionnant avec le runtime Mono. Convient surtout aux ordinateurs portables les plus récents, non pris en charge par Fancontrol.
- Portables Dell — Daemon de contrôle de ventilateur alternatif pour certains ordinateurs portables Dell.
- Portables ThinkPad — Configuration des ventilateurs pour certains ordinateurs portables ThinkPad.
- Portables ASUS — Configuration de certains ordinateurs portables ASUS pour Fancontrol ou le contrôle manuel.
- fan2go-gitAUR — Une alternative à Fancontrol indépendante des chemins des périphériques.
- iswAUR — Configuration des ventilateurs pour certains ordinateurs portables MSI.
Fancontrol (lm-sensors)
fancontrol
est une partie de lm_sensors, qui peut être utilisée pour contrôler la vitesse des ventilateurs du CPU/du boîtier.
La prise en charge des cartes mères plus récentes peut ne pas être encore dans le noyau Linux. Consultez le tableau officiel des périphériques pris en charge par lm-sensors pour voir si des pilotes expérimentaux sont disponibles pour ces cartes mères.
lm-sensors
La première chose à faire est d'exécuter
# sensors-detect
Cela détectera tous les capteurs présents et ils seront utilisés pour le fancontrol. Après cela, exécutez ce qui suit pour vérifier s'il a détecté les capteurs correctement :
$ sensors
coretemp-isa-0000 Adaptateur : Adaptateur ISA Core 0 : +29.0°C (high = +76.0°C, crit = +100.0°C) ... it8718-isa-0290 Adaptateur : Adaptateur ISA Vcc : +1,14 V (min = +0,00 V, max = +4,08 V) VTT : +2,08 V (min = +0,00 V, max = +4,08 V) +3,3V : +3,33 V (min = +0,00 V, max = +4,08 V) NB Vcore : +0,03 V (min = +0,00 V, max = +4,08 V) VDRAM : +2,13 V (min = +0,00 V, max = +4,08 V) ventilateur1 : 690 RPM (min = 10 RPM) temp1 : +37.5°C (low = +129.5°C, high = +129.5°C) sensor = thermistor temp2 : +25.0°C (low = +127.0°C, high = +127.0°C) capteur = diode thermique
Configuration
Une fois les capteurs correctement configurés, utilisez pwmconfig(8) pour tester et configurer le contrôle de la vitesse du ventilateur. En suivant le guide, vous devriez créer /etc/fancontrol
, un fichier de configuration personnalisé. Dans le guide, les réponses par défaut sont entre parenthèses si vous appuyez sur entrée sans rien taper. Entrez y
pour oui, n
pour non.
# pwmconfig
/sys/class/hwmon/
pour leur fichier de configuration. Les liens symboliques de périphériques de classe hwmon pointent vers les chemins absolus et sont utilisés pour regrouper tous les capteurs hwmon dans un seul répertoire pour un accès plus facile. Parfois, l'ordre des périphériques hwmon change à la suite d'un redémarrage, ce qui fait que fancontrol ne fonctionne plus. Consultez #Les chemins des périphériques ont changé dans /etc/fancontrol pour plus d'informations sur la façon de résoudre ce problème.Ajustement
Certains utilisateurs peuvent vouloir modifier manuellement le fichier de configuration après avoir exécuté pwmconfig
avec les privilèges root, généralement pour corriger quelque chose. Pour modifier manuellement le fichier de configuration /etc/fancontrol
, consultez fancontrol(8) pour les définitions des variables.
Les utilisateurs rencontreront probablement les problèmes de chemin d'accès à hwmon comme indiqué ci-dessus dans #Fancontrol (lm-sensors). Consultez #Les chemins des périphériques ont changé dans /etc/fancontrol pour plus d'informations.
MAXPWM
et MINPWM
qui limitent la plage de vitesse du ventilateur. Consultez fancontrol(8) pour plus de détails.hwmon0/device/temp1_input
devient hwmon0/temp1_input
). Vérifiez l'état de l'unité fancontrol.service
pour savoir quel est le chemin qui pose problème et corrigez votre fichier de configuration en conséquence.Exécution de Fancontrol
Essayez d'exécuter fancontrol :
# fancontrol
Une installation correctement configurée ne produira pas d'erreurs et prendra le contrôle des ventilateurs du système. Les utilisateurs devraient entendre les ventilateurs du système démarrer peu après l'exécution de cette commande. La commande fancontrol peut également être exécutée en démarrant/activant fancontrol.service
.
Pour une interface graphique non officielle, installez. fancontrol-guiAUR ou fancontrol-kcmAUR.
Fancontrol cesse de fonctionner après des cycles de suspension-réveil
Malheureusement, fancontrol ne fonctionne pas après une suspension. Conformément au bug reporté, vous devez redémarrer fancontrol après une suspension. Ceci peut être réalisé automatiquement par un hook systemd (en).
NBFC
NBFC est une solution multiplateforme de contrôle des ventilateurs pour les ordinateurs portables. Il est livré avec un système de configuration puissant, qui permet de l'adapter à de nombreux modèles d'ordinateurs portables, y compris certains des plus récents.
Installation
NBFC peut être installé avec nbfcAUR ou nbfc-gitAUR. Pensez à démarrer/activer nbfc.service
.
Configuration
NBFC est livré avec des profils prédéfinis. Vous pouvez les trouver dans le répertoire /opt/nbfc/Configs/
. Lorsque vous les appliquez, utilisez le nom exact du profil sans extension de fichier (par exemple, some profile.xml
devient "some profile"
).
Vérifiez s'il y a quelque chose que NBFC peut recommander :
$ nbfc config -r
S'il y a au moins un modèle, essayez d'appliquer ce profil et consultez comment les vitesses des ventilateurs sont gérées. Par exemple :
$ nbfc config -a "Asus Zenbook UX430UA"
File Descriptor does not pris en charge writing
, supprimez StagWare.Plugins.ECSysLinux.dll
[1] et redémarrez nbfc.service
:
# mv /opt/nbfc/Plugins/StagWare.Plugins.ECSysLinux.dll /opt/nbfc/Plugins/StagWare.Plugins.ECSysLinux.dll.old
Si la solution ci-dessus ne vous a pas aidé, essayez d'ajouter ec_sys.write_support=1
aux paramètres du noyau.
S'il n'y a pas de modèles recommandés, allez sur NBFC git repository ou /opt/nbfc/Configs/
et vérifiez s'il existe des modèles similaires disponibles chez le même fabricant. Par exemple pour un Asus Zenbook UX430UQ, la configuration Asus Zenbook UX430UA ne fonctionnait pas bien (ventilateurs complètement arrêtés tout le temps), mais Asus Zenbook UX410UQ fonctionnait parfaitement.
Exécutez nbfc
pour consulter toutes les options. Plus d'informations sur la configuration sont disponibles sur le wiki des développeurs.
NBFC-Linux
NBFC-Linux est une implémentation légère de NBFC, écrite en C. Elle ne dépend pas du framework Mono. Elle peut être installée avec nbfc-linuxAUR ou nbfc-linux-gitAUR.
Portables Dell
i8kutils est un daemon permettant de configurer la vitesse du ventilateur en fonction de la température du CPU sur certains ordinateurs portables Dell Inspiron et Latitude. Il utilise l'interface /proc/i8k
fournie par le pilote i8k
(un alias pour dell_smm_hwmon
). Les résultats varieront en fonction du modèle exact de l'ordinateur portable.
Installation
i8kutilsAUR est le paquet principal pour contrôler la vitesse du ventilateur. En outre, vous pouvez vouloir installer les éléments suivants :
- acpi - doit être installé pour utiliser i8kmon.
-
tcl - doit être installé afin d'exécuter i8kmon en tant que service d'arrière-plan (en utilisant l'option
--daemon
). - tk - doit être installé en même temps que tcl pour fonctionner comme applet de bureau X11.
- dell-bios-fan-control-gitAUR - recommandé si votre BIOS outrepasse le contrôle du ventilateur.
Configuration
Les points de température auxquels le ventilateur change de vitesse peuvent être ajustés dans le même fichier de configuration. Seules trois vitesses de ventilateur sont prises en charge (haute, basse et arrêt). Recherchez une section similaire à la suivante :
set config(0) {{0 0} -1 55 -1 55} set config(1) {{1 1} 45 75 45 75} set config(2) {{2 2} 65 128 65 128}
Cet exemple fait démarrer le ventilateur à faible vitesse lorsque la température du CPU atteint 55 °C, et le fait passer à la vitesse élevée à 75 °C. Le ventilateur repasse en vitesse lente lorsque la température descend à 65 °C, et s'arrête complètement à 45 °C.
i8kmon
avec l'option verbose, vous remarquez que l'état change (exemple de sortie : # (57>=55), state=1, low=45, high=75
) mais que les ventilateurs droit et gauche rapportent l'état 0, vous pouvez envisager de changer la valeur de vitesse du premier état dans le fichier de configuration de 1000 par défaut à 2000 ou plus.Installation en tant que service
i8kmon peut être lancé automatiquement en démarrant/activant. i8kmon.service
.
Contrôle du ventilateur par le BIOS
Certains ordinateurs portables plus récents ont un contrôle de ventilateur par le BIOS en place qui remplacera le contrôle de ventilateur au niveau du système d'exploitation. Pour tester si c'est le cas, exécutez i8kmon
en mode verbeux dans une ligne de commande, assurez-vous que le CPU est inactif, puis consultez si le ventilateur est éteint ou réduit en conséquence.
Si le contrôle du ventilateur du BIOS est en place, vous pouvez essayer d'utiliser dell-bios-fan-control-gitAUR :
Pour activer le contrôle des ventilateurs du BIOS :
# dell-bios-fan-control 1
Pour désactiver le contrôle du ventilateur par le BIOS :
# dell-bios-fan-control 0
Le contrôle du ventilateur du BIOS peut être automatiquement désactivé en démarrant/activant. dell-bios-fan-control.service
.
Portables ThinkPad
Parmi les daemons de contrôle des ventilateurs figurent simpfand-gitAUR et thinkfanAUR (recommandé).
Installation
Installez thinkfanAUR ou thinkfan-gitAUR. Optionnellement, mais recommandé, installez lm_sensors. Ensuite, jetez un oeil aux fichiers :
# pacman -Ql thinkfan
Notez que le paquet thinkfan installe /usr/lib/modprobe.d/thinkpad_acpi.conf
, qui contient
options thinkpad_acpi fan_control=1
Le contrôle du ventilateur est donc activé par défaut.
Maintenant, chargez le module :
# modprobe thinkpad_acpi # cat /proc/acpi/ibm/fan
Vous devriez consulter que le niveau du ventilateur est "auto" par défaut, mais vous pouvez envoyer une commande level dans le même fichier pour contrôler la vitesse du ventilateur manuellement :
# echo level 1 > /proc/acpi/ibm/fan
Niveau | Effet |
---|---|
0 | off |
2 | basse vitesse |
4 | vitesse moyenne |
7 | vitesse maximale |
auto | par défaut - automatique |
full-speed | vitesse maximale réelle |
Le daemon thinkfan le fera automatiquement.
"7" n'est pas la même chose que "full-speed". "7" est la vitesse maximale régulée. full-speed est la vitesse maximale non régulée.
Enfin, activez thinkfan.service
.
Pour configurer les seuils de température, vous devrez copier le fichier de configuration exemple (/usr/share/doc/thinkfan/examples/thinkfan.yaml
) dans /etc/thinkfan.conf
, et le modifier à votre goût. Ce fichier spécifie les capteurs à lire, et l'interface à utiliser pour contrôler le ventilateur. Certains systèmes ont /proc/acpi/ibm/fan
et /proc/acpi/ibm/thermal
disponibles ; sur d'autres, vous devrez spécifier quelque chose comme :
hwmon /sys/devices/virtual/thermal/thermal_zone0/temp
pour utiliser les capteurs génériques hwmon au lieu des capteurs spécifiques au thinkpad.
Exécution
Vous pouvez d'abord tester votre configuration en exécutant thinkfan manuellement (en tant que root) :
# thinkfan -n
et consultez comment il réagit au niveau de charge des autres programmes que vous avez en cours d'exécution.
Lorsque vous l'avez configuré correctement, démarrez/activez thinkfan.service
.
Portables ASUS
Ce sujet couvrira la configuration des pilotes sur les ordinateurs portables ASUS pour Fancontrol (lm-sensors).
Modules du noyau
Dans les fichiers de configuration, nous allons utiliser les chemins complets des fichiers sysfs (par exemple /sys/devices/platform/asus-nb-wmi/hwmon/hwmon[[:print :]]*/pwm1
). Ceci est dû au fait que hwmon1
pourrait se transformer en n'importe quel autre numéro après le redémarrage. Fancontrol (lm-sensors) est écrit en Bash, donc utiliser ces chemins dans le fichier de configuration est tout à fait acceptable. Vous pouvez trouver des exemples complets de fichiers de configuration /etc/fancontrol
à la page ASUS N550JV#Fan control.
asus-nb-wmi
asus-nb-wmi
est un module du noyau, qui est inclus dans le noyau Linux et est chargé automatiquement sur les ordinateurs portables ASUS. Il ne permet de contrôler qu'un seul ventilateur et s'il y a un deuxième ventilateur, vous n'aurez aucun contrôle sur celui-ci. Notez que la mise en liste noire de ce module empêchera le rétro-éclairage du clavier de fonctionner.
Vous trouverez ci-dessous les commandes pour le contrôler. Vérifiez si vous avez un contrôle sur votre ventilateur :
# echo 255 > /sys/devices/platform/asus-nb-wmi/hwmon/hwmon[[:print :]]*/pwm1 # Vitesse complète du ventilateur (Valeur : 255) # echo 0 > /sys/devices/platform/asus-nb-wmi/hwmon/hwmon[[:print :]]*/pwm1 # Le ventilateur est arrêté (Valeur : 0) # echo 2 > /sys/devices/platform/asus-nb-wmi/hwmon/hwmon[[:print :]]*/pwm1_enable # Change le mode de ventilation en automatique # echo 1 > /sys/devices/platform/asus-nb-wmi/hwmon/hwmon[[:print :]]*/pwm1_enable # Change le mode de ventilation en manuel # echo 0 > /sys/devices/platform/asus-nb-wmi/hwmon/hwmon[[:print :]]*/pwm1_enable # Change le mode du ventilateur à pleine vitesse
Si vous avez pu modifier la vitesse du ventilateur avec les commandes ci-dessus, continuez avec #Générer le fichier de configuration avec pwmconfig.
asus_fan
asus_fan
est un module du noyau, qui permet de contrôler les deux ventilateurs sur certains anciens ordinateurs portables ASUS. Il ne fonctionne pas avec les modèles les plus récents.
Installez le module du noyau asus-fan-dkms-gitAUR (qui utilise DKMS), fournissant asus_fan
:
# modprobe asus_fan
Vérifiez si vous avez un contrôle sur les deux ventilateurs :
# echo 255 > /sys/devices/platform/asus_fan/hwmon/hwmon[[:print :]]*/pwm1 # Vitesse complète du ventilateur du CPU (Valeur : 255) # echo 0 > /sys/devices/platform/asus_fan/hwmon/hwmon[[:print :]]*/pwm1 # Le ventilateur du CPU est arrêté (Valeur : 0) # echo 255 > /sys/devices/platform/asus_fan/hwmon/hwmon[[:print :]]*/pwm2 # Vitesse du ventilateur du GFX complet (Valeur : 255) # echo 0 > /sys/devices/platform/asus_fan/hwmon/hwmon[[:print :]]*/pwm2 # Le ventilateur du GFX est arrêté (Valeur : 0) # echo 2 > /sys/devices/platform/asus_fan/hwmon/hwmon[[:print :]]*/pwm1_enable # Change le mode de ventilation du CPU en automatique # echo 1 > /sys/devices/platform/asus_fan/hwmon/hwmon[[:print :]]*/pwm1_enable # Change le mode de ventilation du CPU en manuel # echo 2 > /sys/devices/platform/asus_fan/hwmon/hwmon[[:print :]]*/pwm2_enable # Change le mode de ventilation du GFX en automatique # echo 1 > /sys/devices/platform/asus_fan/hwmon/hwmon[[:print :]]*/pwm2_enable # Change le mode de ventilation du GFX en manuel # cat /sys/devices/platform/asus_fan/hwmon/hwmon[[:print :]]*/temp1_input # Affiche la température du GFX (sera toujours 0 lorsque le GFX est désactivé/non utilisé)
Si tout fonctionne, vous pouvez charger ce module noyau au démarrage (en) :
/etc/modules-load.d/asus_fan.conf
asus_fan
Continuez avec #Générer le fichier de configuration avec pwmconfig.
Générer le fichier de configuration avec pwmconfig
Si vous obtenez une erreur There are no working fan sensors, all readings are 0
lors de la génération du fichier de configuration avec pwmconfig
, ouvrez la première console et exécutez :
# watch -n 1 "echo 2 > /sys/devices/platform/kernel_module/hwmon/hwmon[[:print :]]*/pwm1_enable"
Si vous utilisez le module noyau asus_fan
et que vous avez un 2ème ventilateur, dans la deuxième console :
# watch -n 1 "echo 2 > /sys/devices/platform/kernel_module/hwmon/hwmon[[:print :]]*/pwm'2_enable"
Et enfin, dans la troisième console :
# pwmconfig
Une fois que vous avez terminé et que le fichier de configuration est généré, vous devez arrêter les première et deuxième consoles. Continuez avec #Fancontrol (lm-sensors). Une fois le fichier de configuration généré, vous devrez peut-être remplacer manuellement les valeurs PWM par les chemins complets de sysfs tels qu'ils sont utilisés dans ces étapes, car les valeurs des numéros hwmon peuvent changer après un redémarrage.
Méthode alternative utilisant les registres EC
Si les méthodes ci-dessus ne fonctionnent pas pour vous, une méthode alternative consiste à écrire directement dans certains registres du contrôleur embarqué (EC). À l'aide de l'outil EC-Probe tool, vous pouvez régler le mode de ventilation sur l'un des trois modes de vitesse de ventilation, à condition que votre modèle offre cette fonctionnalité sous Windows.
Dans le modèle ASUS FX504GD, le réglage de la vitesse du ventilateur sur l'un des trois modes utilise les valeurs de registre suivantes :
# ec_probe write 0x5e 0x80 # mode silencieux # ec_probe write 0x5e 0x40 # mode balance # ec_probe write 0x5e 0xC0 # mode performance
Ici nous écrivons dans le registre 0x5e
qui est responsable du réglage du mode de vitesse du ventilateur.
Si ces valeurs ne vous conviennent pas, exécutez l'outil ec-probe en mode moniteur sous Windows et essayez d'identifier quel registre de l'EC change de valeur lorsque vous passez d'un mode de vitesse de ventilateur à un autre.
Configuration de la politique d'accélération thermique
Au lieu de contrôler manuellement la vitesse du ventilateur en utilisant asus-nb-wmi
, il est également possible de définir la thermal throttling policy pour avoir une politique de contrôle du ventilateur plus ou moins agressive. Les valeurs possibles sont les suivantes : 0
(par défaut), 1
(suralimentation) et 2
(silencieux).
# echo number > /sys/devices/platform/asus-nb-wmi/hwmon/hwmon[[:print :]]*/throttle_thermal_policy
Modes de contrôle des ventilateurs sur certains ordinateurs portables de la série TUF
Sur certains ordinateurs portables ASUS de la série TUF, les modes de contrôle des performances et des ventilateurs peuvent être modifiés en utilisant Fn+F5
. Le mode actuel peut être visualisé en exécutant la commande suivante :
$ cat /sys/devices/platform/asus-nb-wmi/fan_boost_mode
Vous pouvez voir la valeur changer lorsque vous appuyez sur Fn+F5
. 0 correspond au "Mode normal", 1 au "Mode performance", 2 est très probablement le "Mode silencieux". [2] Il est également possible d'écrire ces valeurs dans le fichier fan_boost_mode
en tant que root et d'obtenir l'effet désiré.
Ceci a été testé sur les modèles ASUS TUF FX504GE et ASUS TUF FX504GD et s'est avéré fonctionner.
Contrôle du ventilateur AMDGPU par sysfs
Le pilote du noyau AMDGPU offre un contrôle du ventilateur pour les cartes graphiques via hwmon dans sysfs.
Configuration du contrôle manuel
Pour passer du contrôle automatique au contrôle manuel du ventilateur, exécutez
# echo "1" > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1_enable
Réglez la vitesse du ventilateur à, par exemple, 50 % (100 % correspondent à 255 cycles PWM, calculez donc le pourcentage de vitesse du ventilateur souhaité en multipliant sa valeur par 2,55) :
# echo "128" > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1
Pour revenir au contrôle automatique des ventilateurs, exécutez
# echo "2" > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1_enable
amdgpu-fan
Le paquet amdgpu-fanAUR est un contrôleur de ventilateur automatisé pour les cartes vidéo compatibles AMDGPU écrit en Python. Il utilise une "matrice de vitesse" pour faire correspondre la fréquence des ventilateurs avec la température du GPU, par exemple :
matrice_de_vitesse : # -[temp(*C), speed(0-100%)] - [0, 0] - [40, 30] - [60, 50] - [80, 100]
Lancez le service de contrôle du ventilateur en démarrant/activant amdgpu-fan.service
.
amdfand-bin
Le paquet amdfand-binAUR est une alternative native à amdgpu-fanAUR. Lancez le service de contrôle des ventilateurs en démarrant/activant amdfand.service
.
Pour cet outil, il existe également des interfaces graphiques : amdguid-glow-binAUR (Xorg) et amdguid-wayland-binAUR (Wayland). Avant de lancer le client, activez et démarrez amdgui-helper.service
.
Script fancurve
Non seulement le contrôle des ventilateurs est offert via hwmon dans sysfs, mais aussi la lecture de la température du GPU :
cat /sys/class/drm/card0/device/hwmon/hwmon0/temp1_input
Cela donne la température du GPU en °C + trois zéros, par exemple 33000
pour 33°C.
Le script bash amdgpu-fancontrol de grmat offre un contrôle entièrement automatique du ventilateur en utilisant la fonctionnalité sysfs hwmon décrite. Il permet également d'ajuster confortablement les assignations de cycles de température/PWM de la courbe de ventilation et une hystérésis en offrant des champs de configuration abstraits en haut du script.
Pour des raisons de sécurité, le script règle à nouveau le contrôle des ventilateurs sur auto lors de l'arrêt. Cela peut provoquer la rotation des ventilateurs, ce qui peut être contourné au prix de la sécurité en définissant set_fanmode 1
dans la section function reset_on_fail
.
Configuration du script fancurve
Pour démarrer le script, il est recommandé de le faire via le système init systemd. De cette façon, la sortie verbeuse du script peut être lue via journalctl/systemctl status. À cette fin, un fichier unitaire .service est déjà inclus dans le dépôt GitHub.
Il peut également être nécessaire de redémarrer le script via un root-resume.service après une hibernation afin de le faire fonctionner à nouveau automatiquement et correctement :
/etc/systemd/system/root-resume.service
[Unit] Description=Local system resume actions After=suspend.target [Service] Type=simple ExecStart=/usr/bin/systemctl restart amdgpu-fancontrol.service [Install] WantedBy=suspend.target
Dépannage
Augmenter le diviseur du ventilateur pour les capteurs
Si sensors n'affiche pas le régime du ventilateur du CPU, il peut être nécessaire de changer le diviseur du ventilateur.
La première ligne de la sortie de sensors est le chipset utilisé par la carte mère pour la lecture des températures et des tensions.
Créez un fichier dans /etc/sensors.d/
:
/etc/sensors.d/fan-speed-control.conf
} chip 'coretemp-isa-*" set fan "X_div 4
Remplacer coretemp-isa-
par le nom du chipset et X
par le numéro du ventilateur du CPU à modifier.
Sauvegardez le fichier, et exécutez-le en tant que root :
# sensors -s
ce qui rechargera les fichiers de configuration.
Exécutez sensors
à nouveau, et vérifiez s'il y a une lecture du RPM. Si ce n'est pas le cas, augmentez le diviseur à 8, 16 ou 32. Tout dépendra de votre matériel.
Les chemins des périphériques ont changé dans /etc/fancontrol
Les liens symboliques hwmon énumérés situés dans /sys/class/hwmon/
peuvent varier dans l'ordre car les modules du noyau ne sont pas chargés dans un ordre cohérent par démarrage. De ce fait, fancontrol peut ne pas fonctionner correctement. L'erreur est "Configuration appears to be outdated, please run pwmconfig again". Bogue en amont.
Solution
Dans /etc/conf.d/lm_sensors
, il y a 2 tableaux qui listent tous les modules détectés lorsque vous exécutez sensors-detect
. Ils sont chargés par fancontrol. Si le fichier n'existe pas, exécutez sensors-detect
en tant que root, en acceptant les valeurs par défaut. Ouvrez (ou créez) /etc/modules-load.d/modules.conf
. Récupérez tous les modules listés à partir des 2 variables dans /etc/conf.d/lm_sensors/
et placez-les dans le fichier /etc/modules-load.d/modules.conf
, un module par ligne. Les spécifier de cette manière devrait créer un ordre défini pour le chargement des modules, ce qui devrait permettre aux chemins de hwmon de rester où ils sont et de ne pas changer d'ordre à chaque démarrage. Si cela ne fonctionne pas, je vous recommande fortement de trouver un autre programme pour contrôler vos ventilateurs. Si vous n'en trouvez pas, vous pouvez essayer d'utiliser la solution alternative ci-dessous.
Solution alternative : chemins absolus
L'utilisation de chemins de fichiers absolus dans fancontrol ne fonctionne pas par défaut, car son script d'aide pwmconfig
est programmé pour n'utiliser que les chemins hwmon pour obtenir les fichiers. Pour cela, il détecte si le chemin hwmon fourni dans son fichier de configuration /etc/fancontrol
n'a pas changé, et utilise les variables DEVNAME
et DEVPATH
pour déterminer ce changement. Si vos chemins hwmon changent constamment, cela empêchera fancontrol de fonctionner quoi que vous fassiez. Cependant, il est possible de contourner ce problème. Ouvrez /usr/bin/fancontrol
, et commentez cette partie du script :
if ! ValidateDevices "$DEVPATH" "$DEVNAME" alors echo "La configuration semble être périmée, veuillez exécuter pwmconfig à nouveau". >&2 exit 1 fi
- En faisant cela, fancontrol peut écrire dans les fichiers que vous lui avez donnés dans le fichier de configuration, quel que soit le fichier. Cela peut corrompre les fichiers si vous fournissez le mauvais chemin. Assurez-vous que vous utilisez le chemin correct pour vos fichiers.
- Une autre chose à noter est que si vous utilisez cette solution de contournement, l'utilisation de pwmconfig pour créer à nouveau votre script écrasera tous les chemins absolus que vous avez configurés. Par conséquent, il est préférable de changer manuellement les anciens chemins en nouveaux chemins si nécessaire au lieu d'utiliser pwmconfig.
La mise en commentaire de cet élément devrait effectivement ignorer les contrôles de validation de hwmon. Vous pouvez également ignorer les variables DEVNAME
et DEVPATH
dans le fichier de configuration. Après cela, remplacez tous les chemins de hwmon dans les autres variables par son chemin absolu. Pour plus de facilité, réexécutez pwmconfig
avec les privilèges de l'utilisateur root pour rafraîchir les périphériques hwmon. Les chemins de hwmon dans le fichier de configuration devraient maintenant pointer vers les chemins absolus corrects. Pour chaque chemin hwmon, exécutez la commande suivante (où N
est l'énumération du chemin hwmon) :
$ readlink -f /sys/class/hwmon/hwmonN/device
Cela vous donnera le chemin absolu du périphérique.
Par exemple, un fichier /etc/fancontrol
liste FCTEMPS
comme ceci :
FCTEMPS=hwmon2/pwm1=hwmon3/temp1_input
L'exécution de readlink -f /sys/class/hwmon/hwmon3/device
peut, par exemple, produire /sys/devices/platform/coretemp.0/
. cd
dans ce répertoire. Si vous consultez un répertoire /hwmon/hwmonN/
, vous devez le faire dans votre fichier de configuration fancontrol pour remplacer le chemin hwmonN
. A partir de l'exemple précédent :
# AVANT FCTEMPS=hwmon2/pwm1=hwmon3/temp1_input # APRÈS FCTEMPS=hwmon2/pwm1=/sys/devices/platform/coretemp.0/hwmon/[[:print :]]*/temp1_input
Essentiellement, vous devez remplacer le chemin hwmon par le chemin absolu, concaténé avec /hwmon/[[:print :]]*/
afin que bash puisse attraper le nom hwmon énuméré au hasard.
Si vous ne consultez pas le répertoire /hwmon/hwmonN/
, vous n'avez pas à vous en soucier. Cela signifie que les fichiers de température se trouvent à la racine du répertoire de l'appareil. Remplacez simplement hwmonN/
par le chemin absolu du fichier. Par exemple :
#AVANT FCTEMPS=hwmon2/pwm1=hwmon3/temp1_input #APRÈS FCTEMPS=hwmon2/pwm1=/sys/devices/platform/coretemp.0/temp1_input
Après avoir remplacé tous les chemins, fancontrol devrait fonctionner correctement.