Le décodeur de table DMI est un outil de ligne de commande pour les systèmes Linux. Il est couramment utilisé pour traduire la table DMI (System Management BIOS ou SMBIOS) d'une machine dans un format lisible par l'homme. Cet outil vous permet de voir des informations supplémentaires sur la configuration matérielle d'un système, et donne même des informations qui ne sont pas directement liées à la version actuelle. Des informations telles que la quantité de mémoire maximale prise en charge ou le type de processeur le plus rapide pris en charge peuvent être trouvées à l'aide de quelques indicateurs clés.
Application pratique
D'un point de vue pratique, vous pouvez rencontrer des situations dans lesquelles vous avez besoin d'un numéro de série ou d'un élément d'information clé sur le matériel lors du dépannage. Lorsque j'étais ingénieur de stockage, j'ai rencontré plusieurs cas où un client achetait un serveur d'édition virtuelle, puis essayait d'exécuter d'énormes quantités de sauvegardes de données ou de réplication sur cette machine. Selon la taille des travaux, ils surchargeaient parfois la mémoire incluse et dépassaient l'espace d'échange. À son tour, ce problème ferait à Out-of-Memory (OOM) Killer une journée sur le terrain avec le système. Ainsi, plutôt que de rechercher les spécifications matérielles dans un manuel, je pourrais utiliser dmidecode
pour saisir ces informations.
La panne
Tout d'abord, toutes les informations suivantes peuvent être trouvées dans les pages de manuel de l'outil en exécutant man dmidecode
. N'hésitez pas à suivre là-bas. Au niveau le plus élémentaire, chaque enregistrement comporte l'un des éléments suivants (comme indiqué dans la page de manuel) :
Handle - Il s'agit d'un identifiant unique, qui permet aux enregistrements de se référencer les uns les autres. Par exemple, les enregistrements de processeur font généralement référence à des enregistrements de mémoire cache à l'aide de leurs descripteurs.
Type - La spécification SMBIOS définit différents types d'éléments dont un ordinateur peut être constitué. Par exemple, le type 2 fait référence aux "Informations sur la carte de base".
Taille - Chaque enregistrement a un en-tête de 4 octets (2 pour le handle, 1 pour le type, 1 pour la taille), le reste est utilisé par les données de l'enregistrement. Cette valeur ne tient pas compte des chaînes de texte (celles-ci sont placées à la fin de l'enregistrement), de sorte que la longueur réelle d'un enregistrement peut être (et est souvent) supérieure à la valeur affichée
Valeur décodée - Les informations présentées dépendent bien sûr du type d'enregistrement. Ici, nous apprenons le fabricant, le modèle, la version et le numéro de série de la carte.
Vous pouvez voir un exemple de liste ici :
De nombreuses options peuvent être utilisées pour créer une sortie plus précise. Je ne couvrirai pas tous ces éléments ici, mais ils sont clairement présentés à l'aide de la page de manuel. Ce dont je parlerai, ce sont les codes de type DMI qui sont inclus avec la commande pour rendre rapidement accessibles des informations spécifiques. Pour en revenir à mon exemple précédent, vous vous souviendrez que nous avions régulièrement des problèmes avec les erreurs OOM. Pour collecter des informations sur la configuration de la mémoire d'un système, vous pouvez utiliser la commande suivante :
$ dmidecode -t x
où x
est égal au code de type numérique que vous souhaitez collecter. Pour cet exemple, les codes 5, 6, 16 et 17 seraient tous utiles à rassembler. Consultez le tableau complet de la page de manuel ci-dessous pour tous les codes de type disponibles :
Raccourcis
Les mots clés peuvent être utilisés avec le --type
flag pour extraire tous les codes de type associés dans la commande. Dans l'exemple ci-dessous, vous pouvez voir que toutes les informations associées à l'utilisation des codes de type numérique 16 et 17 sont fournies :
$ dmidecode --type memory
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.
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
Number Of Devices: 2
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: 8192 MB
Form Factor: SODIMM
Set: None
Locator: ChannelA-DIMM0
Bank Locator: BANK 0
Type: DDR4
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 2133 MT/s
Manufacturer: Samsung
Serial Number: 00000000
Asset Tag: None
Part Number: M471A1K43BB1-CRC
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: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: SODIMM
Set: None
Locator: ChannelB-DIMM0
Bank Locator: BANK 2
Type: DDR4
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 2133 MT/s
Manufacturer: SK Hynix
Serial Number: 2A7E0BA5
Asset Tag: None
Part Number: HMA81GS6AFR8N-UH
Rank: 1
Configured Memory Speed: 2133 MT/s
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: 1.2 V
Vous pouvez voir ici les informations associées à l'utilisation des codes de type 5, 6, 16 et 17.
Récapitulatif
J'espère que ce bref aperçu de l'outil DMI Decoder a été utile. Faites-nous savoir quand vous avez utilisé cette commande ou en avez eu besoin. J'espère que vous disposez maintenant d'une meilleure stratégie ou d'un meilleur point de référence pour le prochain problème matériel que vous rencontrerez.
[Vous voulez essayer Red Hat Enterprise Linux ? Téléchargez-le maintenant gratuitement.]