Configuration des senseurs de la carte mère
Configuration des Senseurs de la carte mêre.
Ce qu'il nous faut
Pour pouvoir connaître l'état des différents senseurs de votre carte mère, il faut que nous installions deux (au moins) paquetages : i2c-2.9.2.tar.gz et lm_sensors-2.9.2.tar.gz que l'on peut trouver sur le site de l'auteur de ces paquetages.
Évidemment, lecteur quand tu liras ces lignes, les numéros des paquetages auront peut-être changé : prend la derniêre version !
Installation
La documentation de ces deux paquetages préconise trois types d'installation (au moment ou j'écris ces lignes), mais je ne vais m'intéresser qu'à une seule méthode : celle qui consiste à patcher (je ne vois de mot français, y a-t-il un académicien dans la salle ?) le noyau de Linux. L'opération se déroule sans douleur (évidemment, si vous n'avez jamais recompilé votre noyau, [../kernel/kernel.php3 allez voir la documentation sur ce site]).
Remarque : chaque commande qui suit est sur une seule ligne, bien sûr !
La premiêre chose à faire est de décompresser ces deux paquetages :
[user@localhost user]$ tar xzf lm_sensors-2.9.2.tar.gz
Ensuite, il faut créer les patches. Pour que cela fonctionne, il faut, au préalable, avoir installé les sources du noyau dans /usr/src/linux (c'est l'emplacement par défaut de la plupart des distributions ; les paquetages nécessaires sont disponibles sur le CD de votre distribution).
Nous créons les patches par :
[user@localhost i2c-2.9.2]$ mkpatch/mkpatch.pl . /usr/src/linux i2c-patch
Puis, on patche le noyau :
[user@localhost linux]$ su
Password : ********
[root@localhost linux]# patch -p1 -E </home/user/i2c-2.9.2/i2c-patch
...
...
(Attention: ces commandes sont sur une seule ligne !) Voilà pour le patch i2c. Puis le patch lm_sensors :
[user@localhost lm_sensors-2.9.2]$ mkpatch/mkpatch.pl . /usr/src/linux > lm-patch
Enfin, il faut patcher le noyau :
...
...
Normalement, tout ce passe bien et nos sources du noyau sont bien patchées !
Compilation des modules et du noyau
La compilation se déroule de manière standard pour les sources du noyau : on lance un make xconfig pour configurer les sources.
En plus des supports habituels pour votre configuration ([../kernel/kernel.php3 voir la documentation du site]), il faut que vous activiez (en modules c'est mieux...) tout dans : Character Devices/I2C support/ (en fait, seuls I2C support, I2C bit-banging interfaces, I2C PCF 8584 interfaces et Pseudo ISA adapter nous seront utiles). Il faut aussi que vous activiez tout dans : Character Devices/Hardware sensors support/.
Puis vous compilez votre noyau comme d'habitude :
Vous l'installez, vous relancer lilo et vous rebootez !
Compilation des librairies et des utilitaires
Cette phase est essentielle : elle permet la détection automatique de vos senseurs etc...
Pour cela vous devez compilez les librairies libsensors.*. Placez vous dans le répertoire contenant les sources de lm_sensors :
Et éditez le fichier nommé Makefile (c'est lui qui gére la compilation de lm_sensors), vous devez trouver les lignes noires et les remplacer par les lignes rouges :
COMPILE_KERNEL := 0
I2C_HEADERS=/usr/local/include
I2C_HEADERS=$(LINUX_HEADERS)
PREFIX := /usr/local
PREFIX := /où/vous/voulez
# attention : les binaires seront installés dans $PREFIX/bin etc...
En fait, il suffit souvent de commenter la ligne noire (en mettant un # devant) et de décommenter la ligne rouge (en enlevant le # devant).
Maintenant on peut compilez le tout par make. Un certain nombre de fichiers ne sont pas trouvé : ce n'est pas grave. On installe le tout par : make install.
Une dernière étape avant la détection : la création des périphériques. Celle-ci se fait três simplement par le script : mkdev.sh. Il faut être root pour pouvoir le lancer :
Password : ********
# /home/user/lm_sensors-2.6.3/prog/mkdev/mkdev.sh
Voilà, il ne reste plus qu'à détecter vos senseurs.
Détection des senseurs
Là, c'est très simple : il suffit de lancer le script sensors-detect qui se trouve dans /home/user/lm_sensors-2.9.2/prog/detect, lancez-le et validez toutes les questions (les choix par défaut sont tous bons, mais vous pouvez lire ce qu'on vous demande pour affiner votre configuration). A la fin du script vous devez voir apparaître quelque chose comme :
below list will contain too many modules. Skip the appropriate ones!
To load everything that is needed, add this to some /etc/rc* file:
#----cut here----
# I2C adapter drivers
modprobe i2c-piix4
modprobe i2c-isa
# I2C chip drivers
modprobe eeprom
modprobe w83781d # w83781d est le nom du chip !
#----cut here----
To make the sensors modules behave correctly, add these lines to either
/etc/modules.conf or /etc/conf.modules:
#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----
La première série de lignes en rouge (entre les cut here) doit être insérée dans votre fichier /etc/rc.d/rc.local : ce sont ces lignes qui vont charger au démarrage les modules permettant la lecture des senseurs (Attention : prenez les lignes correspondant à votre configuration, celles qui sont présentées ici sont les miennes !).
La seconde série doit être insérée dans le fichier /etc/conf.modules : elles servent au chargement automatique des modules qui peuvent être chargé automatiquement.
Voilà c'est tout.
Utilisation
L'installation de lm_sensors-2.9.2 crée un petit script de lecture des senseurs : sensors, lorqu'on le lance on obtient :
w83781d-i2c-1-2d
Adapter: SMBus PIIX4 adapter at 5000
Algorithm: Non-I2C SMBus adapter
VCore 1: +1.98 V (min = +1.80 V, max = +2.20 V)
VCore 2: +2.00 V (min = +1.80 V, max = +2.20 V)
+3.3V: +3.36 V (min = +2.97 V, max = +3.63 V)
+5V: +5.07 V (min = +4.50 V, max = +5.48 V)
+12V: +11.86 V (min = +10.79 V, max = +13.11 V)
-12V: -12.38 V (min = -10.78 V, max = -13.18 V)
-5V: -5.12 V (min = -4.50 V, max = -5.48 V)
CPU Fan: 4891 RPM (min = 3000 RPM, div = 2)
CPU temp: +39.0 C (limit = +60.0 C, hysteresis = +50.0 C)
vid: +2.00 V
alarms: Chassis intrusion detection ALARM
beep_enable:
Sound alarm disabled
Ou en tout cas quelque chose d'approchant. Certaines informations peuvent vous sembler absurdes (par exemple des températures négatives etc...), elles correspondent en général à des senseurs non branchés ou non existants. Il peut être intéressant de désactiver ces senseurs (du moins leur lecture), cela se fait en éditant le fichier /etc/sensors.conf. Mais avant de pouvoir l'identifier il faut connaître le nom de la puce qui gère les senseurs : le [#chip_name chip]. Pour l'identifier, c'est simple, vous faites :
256 w83781d-isa-0290
257 w83781d-i2c-1-2d
258 eeprom-i2c-1-50
Les noms des puces présentes sur ma carte mère sont en gras, en rouge c'est le protocole utilisé pour lire le contenu de ces puces.
Dans le fichiers /etc/sensors.conf, vous devez vous placer après une ligne commançant par :
(Comme vous pouvez le constater, plusieurs puces ont la même configuration : ici lm78, lm79, w83781d, sis5595, mais ce qui doit vous intéresser dans ce fichier c'est votre puce !, le reste vous pouvez l'effacer). Vous avez donc repéré votre puce dans /etc/sensors.conf. Vous devez trouver à la suite de cette ligne (chip quelque chose) :
label in1 "VCore 2"
label in2 "+3.3V"
label in3 "+5V"
label in4 "+12V"
label in5 "-12V"
label in6 "-5V"
label fan1 "CPU Fan"
ignore fan2
ignore fan3
ignore temp1
label temp2 "CPU temp"
ignore temp3
Les lignes commençant par label donnent un nom (celui que vous verrez dans la sortie de sensors) à un senseur : mettez ce qui vous plaît. Les lignes commençant par ignore signalent à sensors que ce senseur ne doit pas être lu : les senseurs qui retournent des informations erronées ou qui ne vous intéressent pas peuvent être ignorés avec profit.
Voilà, maintenant vous pouvez surveiller votre PC dans les moindres recoins !
Copyright
Copyright © Frédéric Bonnaud
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique, Contexte non commercial 2.0 : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |