Connaître la température de ses disques durs avec le module drivetemp sous Linux

Article mis à jour le 9 mai 2022

Pour connaître les températures de ses disques durs, on utilisait Smartmontools qui interroge les données S.M.A.R.T. avec la commande suivante : sudo smartctl -a /dev/sdx ou « x » désigne la lettre de votre disque dur dons vous voulez voir les données S.M.A.R.T. qui affiche la température de fonctionnement et on utilisait Hddtemp qui s’occupait de récupérer les températures pour pouvoir être utilisé par son interface graphique, mais ce n’est parfois pas toujours aussi simple, j’ai deux disques durs qui ont des capteurs de température, mais Smartmontools refuse de me les donner. Il est donc temps d’utiliser une nouvelle manière de récupérer les températures de fonctionnement. Pour cela, nous allons utiliser le module de noyau « drivetemp » qui fonctionne avec tous mes disques durs.

Pour utiliser ce module, il vous faut un noyau Linux 5.11 ou supérieur.

Utiliser « drivetemp » avec une interface graphique

Charger le module « drivetemp » et l’utiliser

Pour vous en servir tout de suite, vous devez le charger, taper la commande suivante :

sudo modprobe drivetemp

Pour le charger à chaque démarrage, il faut que vous créé un fichier drivetemp.conf dans le répertoire /etc/modules-load.d/. Dedans vous mettez drivetemp.

Pour connaître les températures de ses disques durs, vous avez besoin d’installer lm_sensors, vous utiliserez la commande sensors.
Pour moi, ça donne ça :

drivetemp-scsi-5-0
Adapter: SCSI adapter
temp1:        +40.0°C  (low  =  +0.0°C, high = +60.0°C)
                       (crit low = -41.0°C, crit = +85.0°C)
                       (lowest = +38.0°C, highest = +40.0°C)

drivetemp-scsi-2-0
Adapter: SCSI adapter
temp1:        +47.0°C  (low  =  +0.0°C, high = +65.0°C)
                       (crit low = -40.0°C, crit = +70.0°C)
                       (lowest = +44.0°C, highest = +48.0°C)

k10temp-pci-00c3
Adapter: PCI adapter
temp1:        +53.0°C  (high = +70.0°C)
                       (crit = +71.0°C, hyst = +66.0°C)

radeon-pci-0100
Adapter: PCI adapter
temp1:        +56.0°C  (crit = +120.0°C, hyst = +90.0°C)

drivetemp-scsi-4-0
Adapter: SCSI adapter
temp1:        +37.0°C  (low  =  +0.0°C, high = +70.0°C)
                       (crit low =  +0.0°C, crit = +70.0°C)
                       (lowest = +35.0°C, highest = +40.0°C)

drivetemp-scsi-0-0
Adapter: SCSI adapter
temp1:        +43.0°C  (low  =  +0.0°C, high = +60.0°C)
                       (crit low = -41.0°C, crit = +85.0°C)
                       (lowest = +42.0°C, highest = +46.0°C)

it8720-isa-0228
Adapter: ISA adapter
in0:           1.25 V  (min =  +0.00 V, max =  +4.08 V)
in1:           1.60 V  (min =  +0.00 V, max =  +4.08 V)
in2:           3.31 V  (min =  +0.00 V, max =  +4.08 V)
+5V:           2.94 V  (min =  +0.00 V, max =  +4.08 V)
in4:           3.04 V  (min =  +0.00 V, max =  +4.08 V)
in5:           2.78 V  (min =  +0.00 V, max =  +4.08 V)
in6:           4.08 V  (min =  +0.00 V, max =  +4.08 V)
5VSB:          2.96 V  (min =  +0.00 V, max =  +4.08 V)
Vbat:          3.34 V  
fan1:        1090 RPM  (min =    0 RPM)
fan2:           0 RPM  (min =    0 RPM)
fan3:         917 RPM  (min =    0 RPM)
fan4:         748 RPM  (min =    0 RPM)
fan5:         906 RPM  (min =    0 RPM)
temp1:        +35.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermistor
temp2:        +59.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermal diode
temp3:        +61.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermistor
cpu0_vid:    +1.050 V
intrusion0:  ALARM

Vous voyez les paragraphes qui commence par drivetemp-scsi-, et bien c’est ceux-là qui nous intéresse. Il liste toutes les informations dont on a besoin.


pour le premier paragraphe, prenons la première ligne :
drivetemp-scsi-5-0
Vous avez la position sur laquelle est branché le disque dur, je sais, il n’est pas en SCSI, mais en SATA, mais c’est comme ça. Il est donc en SCSI 5-0.
Pour la seconde ligne :
temp1: +40.0°C (low = +0.0°C, high = +60.0°C)
Vous avez la température actuelle, et entre parenthèses les températures basses et hautes.
Pour la troisième ligne :
(crit low = -41.0°C, crit = +85.0°C)
Vous avez les températures critiques du disque dur.
Pour la quatrième ligne :
(lowest = +44.0°C, highest = +48.0°C)
Vous avez la plage de températures de fonctionnement normal.

Utiliser drivetemp avec une interface graphique

Bon, dans l’usage de tous les jours, ce n’est pas très pratique à utiliser, pour remédier à cela, je vais utiliser une interface graphique.


Avec GKrellM, ça ressemble à ça :

gkrellm
GKrellM

Les données de drivetemp sont reconnues automatiquement par GKrellM.

Avec Conky, ça peut ressembler à ça :

conky-drivetemp
Conky

Pour configurer ça dans Conky, j’ai ajouté les trois lignes suivantes dans le fichier de configuration :

${color grey}Disque SSD 512 Go $color${voffset 0}${alignr}${execi 10 sensors drivetemp-scsi-0-0 | awk '/temp1/ {print $2}'}
${color grey}Disque HDD 8To $color${voffset 0}${alignr}${execi 10 sensors drivetemp-scsi-1-0 | awk '/temp1/ {print $2}'}
${color grey}Disque HDD 3To $color${voffset 0}${alignr}${execi 10 sensors drivetemp-scsi-5-0 | awk '/temp1/ {print $2}'}

Vous avez une liste non exhaustive des interfaces graphiques disponible ici:
https://wiki.archlinux.org/title/lm_sensors#Graphical_front-ends

Pour connaître à quel disque correspond drivetemp-scsi-XX :
Rouvrez un terminal et tapez sensors comme tout à l’heure.
Attardez-vous sur les lignes commençant par :
drivetemp-scsi- et temp1
Laissez ce terminal ouvert.
Ouvrez en un autre et tapez la commande suivante :
sudo lshw -class disk -class storage
Vous devez avoir plusieurs paragraphes, ceux des disques durs ressemblent à ça :

 *-disk:0
      description: ATA Disk
      produit: WDC WD40EFRX-68W
      fabriquant: Western Digital
      identifiant matériel: 0
      information bus: scsi@0:0.0.0
      nom logique: /dev/sda
      version: 0A80
      numéro de série: WD-WCC4E0976998
      taille: 3726GiB (4TB)
      fonctionnalités: gpt-1.00 partitioned partitioned:gpt
      configuration: ansiversion=5 guid=a6c62053-4c40-400a-9a8f-a54ac3e90ab5 logicalsectorsize=512 sectorsize=4096

Repérez la ligne information bus: il est indiqué : scsi@0:0.0.0, @0:0 correspond au bus SCSI trouvé avec la commande sensors sur la ligne drivetemp-scsi-0-0, dans le paragraphe, vous trouvez de quoi nommer le capteur : la référence, le nom logique (oui vous savez : /dev/sdx, ici c’est a au lieu du x), la taille en Gib et en TB, enfin vous avez l’embarra du choix.

Pour le nommage des capteurs dans votre moniteur graphique, ce n’est pas très compliqué.
Prenez la température du capteur et regardez celle qui correspond dans le terminal ou vous avez lancé sensors, là, deux lignes plus haut vous avez le bus SCSI qui correspond à votre disque dur.
Revenez sur le terminal ou vous avez lancez sudo lshw -class disk -class storage et vous avez toutes les informations pour renommer le nom de votre capteur.
Recommencez l’opération pour tous les capteurs de disques durs.

Voilà, c’est fini.

Cliquez pour évaluer cet article !
[Total: 0 Moyenne: 0]
S’abonner
Notification pour
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

0 Commentaires
Commentaires en ligne
Afficher tous les commentaires
Aller au contenu principal