Dmidecode : Practical examples and tips



This post is about the dmidecode command, which can be very useful to find out hardware information from command line.



1 Generalities

Ok, there are some very good web site / blog out there to explain you how and from where the dmidecode command get the information it gives out. Just in case you could not find it by yourself (you might consider using another search engine !) see the Resources section for links to reference pages or simple examples page.

I will be using this post as a personal reference for the dmidecode commands i will be needing. Do not expect exclusive content here, i am sure most of the examples i will be giving out are already somewhere on the web…

Feel free to add yours if you have got some good secret dmidecode tips.

Note : As stated in the dmidecode manpage :
More often than not, information contained in the DMI tables is inaccurate, incomplete or simply wrong.


1.1 dmidecode hardware categories generalities

A good (well known) first tips to handle the dmidecode command is the list of available hardware type / category you can ask about.
This type can be queried by using a type code (a one or two digit number, such as 17) or a type keyword (such as memoryprocessor…), a single type keyword sometimes covers more than one type code
e.g : The type keyword memory is equivalent to the following list of type number : 5,6,16,17

So when you exactly know which part of a given device you want to query you may use the type number, but if you do not precisely know where is the information you search for you may use the type keyword.
Long story short : the type number is a subgroup of a given type keyword category.


1.2 dmidecode type number list

Here is a type number list from the dmidecode manpage :

       Type   Information
          0   BIOS
          1   System
          2   Baseboard
          3   Chassis
          4   Processor
          5   Memory Controller
          6   Memory Module
          7   Cache
          8   Port Connector
          9   System Slots
         10   On Board Devices
         11   OEM Strings
         12   System Configuration Options
         13   BIOS Language
         14   Group Associations
         15   System Event Log
         16   Physical Memory Array
         17   Memory Device
         18   32-bit Memory Error
         19   Memory Array Mapped Address
         20   Memory Device Mapped Address
         21   Built-in Pointing Device
         22   Portable Battery
         23   System Reset
         24   Hardware Security
         25   System Power Controls
         26   Voltage Probe
         27   Cooling Device
         28   Temperature Probe
         29   Electrical Current Probe
         30   Out-of-band Remote Access
         31   Boot Integrity Services
         32   System Boot
         33   64-bit Memory Error
         34   Management Device
         35   Management Device Component
         36   Management Device Threshold Data
         37   Memory Channel
         38   IPMI Device
         39   Power Supply
         40   Additional Information
         41   Onboard Devices Extended Information
         42   Management Controller Host Interface


1.3 dmidecode keyword list

By entering the dmidecode -t command alone it will display all available type keyword :

output example :

[root@machine ~]# dmidecode  -t
dmidecode: option requires an argument -- 't'
Type number or keyword expected
Valid type keywords are:


1.4 dmidecode keyword / number link table

Here is a list for the type number / type keyword relation (from man dmidecode) :
Note : the following number can be used instead of type keyword. Using the type keyword would display every available information when using the type number would only display sub-section of the type keyword output.

       Keyword     Types
       bios        0, 13
       system      1, 12, 15, 23, 32
       baseboard   2, 10, 41
       chassis     3
       processor   4
       memory      5, 6, 16, 17
       cache       7
       connector   8
       slot        9




2 dmidecode command list / examples

Here are some useful dmidecode commands (and their respective output) to retrieve a wide diversity of your system hardware information, i sort them by hardware components to ease the search for a specific information.


2.1 Memory related information

Here are some commands to retrieve memory information, such as the Error Correction Type, the maximum capacity and the type of installed DIMM (DDR3, Speed and part number : useful when you have to replace one !)

  • What is my memory module size ?
    dmidecode -t 6

    And search for Installed Size and Enabled Size strings.
    Note : The Socket Designation and Error Status strings may be useful if you have any faulty module and you want to know which one you need to replace.
    Output example :

    [root@machine ~]# dmidecode -t 6
    # dmidecode 2.11
    SMBIOS 2.4 present.
    Handle 0x0006, DMI type 6, 12 bytes
    Memory Module Information
            Socket Designation: A0
            Bank Connections: 1
            Current Speed: Unknown
            Type: Other
            Installed Size: 4096 MB (Single-bank Connection)
            Enabled Size: 4096 MB (Single-bank Connection)
            Error Status: OK
  • Does your memory controller support ECC memory module ?
    dmidecode -t 5

    And search for Error Correcting Capabilities string
    Note : if your memory controller is ECC capable you may want to know if it enabled. The relevant string in this case : Enabled Error Correcting Capabilities
    Output example :

    [root@machine ~]# dmidecode -t 5
    # dmidecode 2.11
    SMBIOS 2.4 present.
    Handle 0x0005, DMI type 5, 24 bytes
    Memory Controller Information
            Error Detecting Method: 8-bit Parity
            Error Correcting Capabilities:
            Supported Interleave: One-way Interleave
            Current Interleave: One-way Interleave
            Maximum Memory Module Size: 1024 MB
            Maximum Total Memory Size: 4096 MB
            Supported Speeds:
            Supported Memory Types:
            Memory Module Voltage: 5.0 V
            Associated Memory Slots: 4
            Enabled Error Correcting Capabilities:
  • How many memory slots do my MB have ?
    dmidecode -t 16

    And search for the Number Of Devices string.
    Output example :

    [root@fixpopo ~]# dmidecode -t 16
    # dmidecode 2.11
    SMBIOS 2.4 present.
    Handle 0x0019, DMI type 16, 15 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: 4


2.2 CPU information

This part is about your machine CPU / processor data.

  • What is my CPU name and specs ?
    dmidecode -t 4

    And search for the Version: string, the type 4 list also gives you the CPU cores number (search Core Count:) plus the number of threads (search Thread Count:), remember that with the HT (Hype Threading : HTT flag in this list) capability activated the number of threads should be twice the number of CPU cores.
    Output example :

    Handle 0x0400, DMI type 4, 40 bytes
    Processor Information              
            Socket Designation: CPU1   
            Type: Central Processor    
            Family: Xeon               
            Manufacturer: Intel        
            ID: A5 06 01 00 FF FB EB BF
            Signature: Type 0, Family 6, Model 26, Stepping 5
                    FPU (Floating-point unit on-chip)        
                    VME (Virtual mode extension)
    Version: Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
            Voltage: 1.2 V                                          
            External Clock: 6400 MHz                                
            Max Speed: 3600 MHz                                     
            Current Speed: 2933 MHz                                 
            Status: Populated, Enabled                              
            Upgrade: Socket LGA1366                                 
            L1 Cache Handle: 0x0700                                 
            L2 Cache Handle: 0x0701                                 
            L3 Cache Handle: 0x0702                                 
            Serial Number: Not Specified                            
            Asset Tag: Not Specified                                
            Part Number: Not Specified                              
            Core Count: 4                                           
            Core Enabled: 4                                         
            Thread Count: 8                                         
                    64-bit capable


2.3 Chassis information

This part is about your machine chassis data.

  • What is my server height ?
    dmidecode --type chassis

    And search for the Height string (might be given as a number of “U”)

  • What is my server serial number ?
    dmidecode --type chassis

    And search for… the Serial Number string (i am sure you guessed it !)

    Output example :

    # dmidecode 2.10                             
    SMBIOS 2.6 present.                          
    Handle 0x0300, DMI type 3, 21 bytes
    Chassis Information                
            Manufacturer: Dell Inc.    
            Type: Rack Mount Chassis   
            Lock: Present              
            Version: Not Specified     
            Serial Number: XXXXXX     
            Asset Tag: Not Specified   
            Boot-up State: Safe        
            Power Supply State: Safe   
            Thermal State: Safe        
            Security Status: Unknown   
            OEM Information: 0x00000000
            Height: 1 U                
            Number Of Power Cords: Unspecified
            Contained Elements: 0


2.4 Bios information

A simple

dmidecode -t bios

will give you bios related information…






Leave a Reply

Your email address will not be published. Required fields are marked *

This site supports SyntaxHighlighter via WP SyntaxHighlighter. It can highlight your code.
How to highlight your code: Paste your code in the comment form, select it and then click the language link button below. This will wrap your code in a <pre> tag and format it when submitted.