Recherche de site Web

Comment récupérer des informations matérielles avec dmidecode sous Linux


Dmidecode est un utilitaire gratuit et open source que nous pouvons utiliser pour récupérer des informations matérielles sur Linux. L’outil est disponible dans les dépôts de toutes les principales distributions Linux et est capable d’inspecter et de vider le contenu de la table SMBIOS.

Dans ce tutoriel, nous apprenons comment installer dmidecode, et comment l’utiliser pour récupérer des informations sur la configuration matérielle sous Linux.

Dans ce tutoriel, vous allez apprendre :

  • Comment installer dmidecode sur les principales distributions Linux
  • Organisation des enregistrements d’informations rapportés par dmidecode
  • Comment utiliser dmidecode pour récupérer des informations matérielles spécifiques

CatégorieExigences, conventions ou version du logiciel utilisé
SystèmeIndépendant de la distribution
Logicieldmidecode
AutreNone
Conventions# – exige que les commandes linux données soient exécutées avec les privilèges root, soit directement en tant qu’utilisateur root, soit en utilisant la commande sudo $– exige que les commandes linux données soient exécutées en tant qu’utilisateur régulier non privilégié

Installation

L’outil dmidecode est disponible dans les dépôts par défaut de toutes les principales distributions Linux ; Il y a de fortes chances que l’utilitaire soit déjà installé dans votre système. Si pour une raison quelconque ce n’est pas le cas, voici les commandes que nous pouvons utiliser pour l’installer sur Archlinux et les distributions membres de la famille Fedora et Debian :

DISTRIBUTIONCOMMANDER
Fedora/Rhel/Rocky$sudo dnf install dmidecode
Debian/Ubuntu$sudo apt install dmidecode
Archlinux$sudo pacman -S dmidecode

La table DMI/SMBIOS

DMI est l’acronyme de Desktop Management Interface ; SMBIOS, à la place signifie : System Management Bios. Les deux normes sont développées par la Desktop Management Task Force (DMTF). Leur but est de permettre à un système d’exploitation d’accéder facilement aux informations matérielles.

Au démarrage, la table contenant ces informations est chargée en mémoire et peut être analysée par des utilitaires dédiés tels que dmidecode. Le tableau contient des informations telles que le fournisseur du matériel, la configuration, les numéros de série, la liste des ports, etc.

Utilisation de dmidecode

Voyons quelques exemples d’utilisation de l’outil dmidecode. Lorsque l’utilitaire est appelé sans aucune option, il produit simplement une sortie qui contient toutes les informations qu’il est capable de récupérer. L’information est organisée dans des registres. En voici un exemple :

sudo dmidecode
[...]
Handle 0x0003, DMI type 16, 23 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 32 GB
	Error Information Handle: Not Provided
[...]

[ADLSOT2]Celui ci-dessus n’est, pour des raisons évidentes, qu’un petit extrait de la sortie produite par l’utilitaire, et décrit la configuration de la mémoire sur ma machine. Analysons comment le disque est composé. Chaque enregistrement contient :

  • Un identifiant (0x0003 dans ce cas)
  • Type DMI, qui dans ce cas est 16, qui fait référence à la matrice de mémoire physique. La spécification SMBIOS encode et associe une liste de types dans une table (nous y reviendrons plus tard). Nous pouvons demander à dmidecode de renvoyer uniquement des informations relatives à des types spécifiques.
  • Taille utilisée pour stocker l’enregistrement, qui, dans ce cas, est de 23 octets.
  • Les valeurs réelles de l’enregistrement, qui varient en fonction de l’enregistrement lui-même.

Les types DMI

Comme nous l’avons déjà dit, les informations sont organisées en types. Le tableau ci-dessous contient leurs associations :

TYPE DMIINFORMATION
Biographies
1Système
2Plinthe
3Châssis
4Processeur
5Contrôleur de mémoire
6Module de mémoire
7Cache
8Connecteur de port
9Emplacements système
10Appareils embarqués
11Cordes OEM
12Options de configuration du système
13Biographie Langue
14Associations de groupe
15Journal des événements système
16Matrice de mémoire physique
17Périphérique de mémoire
18Erreur de mémoire 32 bits
19Adresse mappée de la matrice de mémoire
20Adresse mappée du périphérique de mémoire
21Dispositif de pointage intégré
22Batterie portable
23Réinitialisation du système
24Sécurité matérielle
25Commandes d’alimentation du système
26Sonde de tension
27Dispositif de refroidissement
28Sonde de température
29Sonde de courant électrique
30Accès à distance hors bande
31Services d’intégrité de démarrage
32Démarrage du système
33Erreur de mémoire 64 bits
34Dispositif de gestion
35Composant du périphérique de gestion
36Données de seuil du périphérique de gestion
37Canal mémoire
38Périphérique IPMI
39Alimentation
40Informations complémentaires
41Informations étendues sur les appareils embarqués
42Interface hôte du contrôleur de gestion

Les types DMI peuvent être utilisés pour récupérer et filtrer des informations spécifiques avec dmidecode. Tout ce que nous avons à faire est d’appeler l’utilitaire avec l’option -t (abréviation de --type), et de fournir le type DMI que nous voulons interroger comme argument. Supposons que nous voulions collecter des informations sur les périphériques de mémoire (17), nous exécuterions :

sudo dmidecode -t 17

Sur ma machine, le résultat produit par la commande est le suivant :

dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x0004, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0003
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 8 GB
	Form Factor: SODIMM
	Set: None
	Locator: ChannelA-DIMM0
	Bank Locator: BANK 0
	Type: DDR4
	Type Detail: Synchronous Unbuffered (Unregistered)
	Speed: 2133 MT/s
	Manufacturer: Micron
	Serial Number: 00000000
	Asset Tag: None
	Part Number: 4ATS1G64HZ-2G3A1    
	Rank: 1
	Configured Memory Speed: 2133 MT/s
	Minimum Voltage: Unknown
	Maximum Voltage: Unknown
	Configured Voltage: 1.2 V

Handle 0x0005, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0003
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: Unknown
	Size: No Module Installed
	Form Factor: Unknown
	Set: None
	Locator: ChannelB-DIMM0
	Bank Locator: BANK 2
	Type: Unknown

Comme vous pouvez le voir, il y a deux banques de mémoire DDR4 disponibles, et une seule de 8 Go est utilisée (soudée). Nous pouvons voir que d’autres informations précieuses comme le « Part Number » sont également signalées : cela peut être utile au cas où nous voudrions être sûrs d’acheter du matériel compatible.

Plusieurs types DMI peuvent être interrogés par une seule commande : nous pouvons soit répéter l’option, soit fournir une liste de numéros de type séparés par des virgules comme argument. Pour interroger à la fois le BIOS (0) et les périphériques de mémoire (17), par exemple, nous exécuterions :

sudo dmidecode --type 0,17

Conclusions

Dans ce tutoriel, nous avons appris à installer et à utiliser l’utilitaire dmidecode pour récupérer des informations matérielles sous Linux. L’outil est open source et disponible sur toutes les principales distributions : il est capable de lire et d’analyser la table SMBIOS. Nous avons vu comment chaque enregistrement affiché par l’application est composé, et comment interroger des informations spécifiques, qui sont organisées en types DMI.

Articles connexes: