Der DMI-Tabellendecoder ist ein Befehlszeilentool für Linux-Systeme. Es wird häufig verwendet, um die DMI-Tabelle (System Management BIOS oder SMBIOS) einer Maschine in ein für Menschen lesbares Format zu übersetzen. Mit diesem Tool können Sie zusätzliche Informationen über die Hardwarekonfiguration eines Systems anzeigen und sogar Informationen erhalten, die nicht direkt mit dem aktuellen Build zusammenhängen. Informationen wie die maximal unterstützte Speichermenge oder der am schnellsten unterstützte CPU-Typ können mithilfe einiger Schlüssel-Flags gefunden werden.
Praktische Anwendung
Aus praktischer Sicht könnten Sie in Situationen geraten, in denen Sie während der Fehlerbehebung eine Seriennummer oder wichtige Hardwareinformationen benötigen. In meiner Zeit als Speicheringenieur bin ich auf mehrere Fälle gestoßen, in denen ein Kunde einen Virtual Edition-Server gekauft und dann versucht hat, riesige Mengen an Datensicherungen oder Replikation auf diesem Computer auszuführen. Abhängig von der Größe der Jobs überlasteten sie manchmal den enthaltenen Speicher und überschritten den Auslagerungsbereich. Dieses Problem würde wiederum dazu führen, dass Out-of-Memory (OOM) Killer einen großen Tag mit dem System hatte. Anstatt also Hardwarespezifikationen in einem Handbuch nachzuschlagen, könnte ich dmidecode
verwenden um diese Informationen zu erhalten.
Die Aufschlüsselung
Zunächst einmal finden Sie alle folgenden Informationen in den Manpages für das Tool, indem Sie man dmidecode
ausführen . Folgen Sie dort gerne weiter. Auf der einfachsten Ebene hat jeder Datensatz eines der folgenden Elemente (wie in der Manpage aufgeführt):
Handle - Dies ist eine eindeutige Kennung, die es Datensätzen ermöglicht, aufeinander zu verweisen. Beispielsweise verweisen Prozessordatensätze normalerweise mit ihren Handles auf Cache-Speicherdatensätze.
Typ - Die SMBIOS-Spezifikation definiert verschiedene Arten von Elementen, aus denen ein Computer bestehen kann. Beispielsweise bezieht sich Typ 2 auf "Basisplatineninformationen".
Größe - Jeder Datensatz hat einen 4-Byte-Header (2 für das Handle, 1 für den Typ, 1 für die Größe), der Rest wird von den Datensatzdaten verwendet. Dieser Wert berücksichtigt nicht die Textstrings (diese werden am Ende des Datensatzes platziert), daher kann (und ist es oft) die tatsächliche Länge eines Datensatzes größer sein als der angezeigte Wert
Decodierter Wert - Die angezeigten Informationen hängen natürlich von der Art des Datensatzes ab. Hier erfahren wir Hersteller, Modell, Version und Seriennummer des Boards.
Sie können hier eine Beispielliste sehen:
Es gibt viele Optionen, die verwendet werden können, um eine genauere Ausgabe zu erstellen. Ich werde hier nicht alle behandeln, aber sie sind anhand der Manpage übersichtlich dargestellt. Worüber ich sprechen werde, sind die DMI-Typcodes, die in dem Befehl enthalten sind, um bestimmte Informationen schnell zugänglich zu machen. Wenn Sie zu meinem vorherigen Beispiel zurückkehren, werden Sie sich daran erinnern, dass wir routinemäßig Probleme mit OOM-Fehlern hatten. Um Informationen über die Speicherkonfiguration eines Systems zu sammeln, können Sie den folgenden Befehl verwenden:
$ dmidecode -t x
wobei x
ist gleich dem numerischen Typcode, den Sie erfassen möchten. Für dieses Beispiel wären die Codes 5, 6, 16 und 17 alle hilfreich, um sie zu sammeln. In der vollständigen Tabelle der Manpage unten finden Sie alle verfügbaren Typcodes:
Kurzbefehle
Schlüsselwörter können mit dem --type
verwendet werden Flag, um alle zugehörigen Typcodes in den Befehl zu ziehen. Aus dem Beispiel unten können Sie ersehen, dass alle Informationen zur Verwendung der numerischen Typencodes 16 und 17 bereitgestellt werden:
$ 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
Hier finden Sie Informationen zur Verwendung der Typencodes 5, 6, 16 und 17.
Zusammenfassung
Ich hoffe, dass dieser kurze Überblick über das DMI-Decoder-Tool hilfreich war. Teilen Sie uns mit, wenn Sie diesen Befehl verwendet haben oder ihn benötigt haben. Hoffentlich haben Sie jetzt eine bessere Strategie oder einen besseren Bezugspunkt für das nächste Hardwareproblem, auf das Sie stoßen.
[Möchten Sie Red Hat Enterprise Linux ausprobieren? Jetzt kostenlos herunterladen.]