web-dev-qa-db-fra.com

Comment obtenir des lectures de capteurs pour du matériel récent?

Comment mettre à jour au mieux lm-sensors pour fonctionner avec du matériel récent?

J'ai une nouvelle installation du serveur Ubuntu 10.10 et j'obtiens les éléments suivants:

$ Sudo apt-get install lm-sensors
$ sensors
No sensors found! [...] 
Try sensors-detect [...]
$ Sudo sensors-detect
[...]
Driver 'to-be-written':
  * Chip "Nuvoton W83667HG-B Super IO Sensors" (confidence: 9)
Note: there is no driver for [this sensor] yet.
Check http://www.lm-sensors.org/wiki/Devices for updates.

Le lien me dit que cette puce est supportée par le noyau 2.6.36 (alors que Ubuntu 10.10 utilise la version 2.6.35) ou en utilisant un pilote autonome .

Quel est le moyen le plus simple de mettre à jour les capteurs lm?

10
j-g-faustus

Ce sont les principales alternatives:

Attendez : si vous ne considérez pas les lectures de capteurs comme critiques, vous pouvez simplement attendre la prochaine version d'Ubuntu, qui peut inclure la prise en charge de la puce par défaut. .

Pilote autonome : si vous ne voulez pas attendre, un pilote autonome peut être la meilleure option, car il apporte des modifications minimes au reste du système. . Voir ci-dessous pour savoir comment l'installer.

Mettre à niveau le noyau : Ceci est un peu plus risqué, car vous exécuterez une combinaison non supportée et non testée de la version Ubuntu et de la version du noyau - la mise à niveau du noyau peut corriger le capteur prend en charge tout en cassant autre chose. La mise à niveau du noyau peut également fonctionner correctement, à condition que vous soyez prêt à revenir au cas contraire.

Le moyen le plus simple de mettre à niveau le noyau consiste à utiliser l'un des packages de noyau pré-construits d'Ubuntu, voir versions du noyau ubuntu.com pour obtenir des instructions.


Installation d'un pilote autonome

Lisez le Guide de compilation Ubunt , installez les outils de compilation:

Sudo apt-get install build-essential

Téléchargez le code source du pilote

    wget [.h, .c and Makefile files]
  • Compiler, installer et charger le nouveau module. Ici w83627ehf est le nom du pilote récemment compilé, il diffère d’un système à l’autre.

    make all
    Sudo make install
    Sudo modprobe w83627ehf
    

Vérifiez que cela fonctionne

    $ sensors
    w83667hg-isa-0a10
    Adapter: ISA adapter
    in0:       +1.18 V  (min =  +0.62 V, max =  +1.47 V)   
    in1:       +1.11 V  (min =  +1.05 V, max =  +1.15 V)   
    [... snip ...]

Ajouter une configuration

Il a toujours besoin d’une configuration spécifique à la puce, c’est la partie la plus difficile.

  • Cas chanceux: Trouvez une configuration prête à l'emploi à configurations de lm-sensors.org .
  • Chasse sur Google: recherchez le nom de la puce et vous pouvez trouver une personne possédant la même puce et une configuration opérationnelle.
  • Dernier recours: comparez les valeurs dans le BIOS et faites une supposition éclairée sur la lecture.
  • La configuration va dans /etc/sensors3.conf
  • Rechargez (Sudo sensors -s) ou redémarrez (Sudo service lm-sensors restart) pour utiliser la nouvelle configuration.

Vérification post-config

    $ sensors
    w83667hg-isa-0a10
    Adapter: ISA adapter
    VCore:       +1.18 V  (min =  +0.62 V, max =  +1.47 V)   
    Vtt:         +1.11 V  (min =  +1.05 V, max =  +1.15 V)   
    AVCC:        +3.34 V  (min =  +2.98 V, max =  +3.63 V)   
    +3.3V:       +3.34 V  (min =  +2.98 V, max =  +3.63 V)   
    IGD:         +1.56 V  (min =  +1.00 V, max =  +2.00 V)   
    3VSB:        +3.26 V  (min =  +2.98 V, max =  +3.63 V)   
    VBat:        +3.31 V  (min =  +2.54 V, max =  +3.46 V)   
    CPU Fan:    1834 RPM  (min =  301 RPM, div = 32)
    M/B Temp:    +30.0°C  (high = +55.0°C, hyst = +52.0°C)  sensor = thermistor
    CPU Temp:    +67.0°C  (high = +72.0°C, hyst = +70.0°C)  sensor = thermistor
    AUX Temp:    +27.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor

Faites-le fonctionner après le redémarrage

  • Éditer /etc/rc.local
  • Ajouter la ligne modprobe w83627ehf
  • (Remplacez w83627ehf par le capteur de votre système. Assurez-vous de le placer avant la ligne exit 0, qui termine le script.)

Sanity vérifier la sortie

  • Comparez la liste sensors avec les lectures du BIOS, vérifiez qu’elles sont proches les unes des autres.
  • Si vous double-amorcez avec Windows, vous pouvez comparer les températures du processeur avec Real Temp .

Calibrer les valeurs d'affichage

  • Vous pouvez ajouter des lignes telles que compute in1 (56/10+1)*@, @/(56/10+1) à sensors3.conf. @ est la valeur du capteur. Le premier calcul convertit une valeur de capteur en valeur d'affichage, le second calcul la reconvertit.
  • Voir man sensors.conf
  • Obtenir des températures précises nécessiterait un thermomètre infrarouge et quelques heures de travail (voir réponse de takkat ici ), mais vous pouvez normalement Obtenez des valeurs "approximatives" avec moins d'effort.

Si vous connaissez un moyen d'améliorer cette réponse, veuillez le faire.

11
j-g-faustus