Skip to content

Explore System Hardware Information with sys-apps/dmidecode

Discover comprehensive insights into your system's hardware configuration using dmidecode, a powerful utility that retrieves data from the Desktop Management Interface (DMI) of your computer's BIOS. From RAM speed to BIOS details, processor specifications to memory configurations, dmidecode empowers you to delve deep into the intricacies of your system's components.


Available options for dmidecode
| Type  | Information         |
|-------|---------------------|
|  0    | BIOS
|  1    | System
|  2    | Base Board
|  3    | Chassis
|  4    | Processor
|  5    | Memory Controller
|  6    | Memory Module
|  7    | Cache
|  8    | Port Connector
|  9    | System Slots
| 11    | OEM Strings
| 13    | BIOS Language
| 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
| 34    | Management Device
| 35    | Management Device Component
| 36    | Management Device Threshold Data
| 37    | Memory Channel
| 38    | IPMI Device
| 39    | Power Supply    

Install dmidecode

emerge -a sys-apps/dmidecode
pacman -S dmidecode
apt install dmidecode
yum install dmidecode

Print current ram speed

dmidecode | perl -lne 'print $1 if /Current\s+Speed:\s+(\d+\s+MHz)/

Print bios info

dmidecode -t bios

Print system info

dmidecode -t system

Print baseboard info

dmidecode -t baseboard

Print chassis info

dmidecode -t chassis

Print processor info

dmidecode -t processor

Print memory info

dmidecode -t memory

Print cache info

dmidecode -t cache

Print connector info

dmidecode -t connector

Print slot info

dmidecode -t slot

Show more details of ram-memory

 dmidecode --type memory

Tips and Tricks

Print Serial Number

dmidecode | grep Serial\ Number | head -n1

Show speed of ram-memory

 dmidecode --type memory | grep -i "speed"

See your current RAM frequency

dmidecode -t 17 | awk -F":" '/Speed/ { print $2 }'

Detect if we are running on a VMware virtual machine

dmidecode | awk '/VMware Virtual Platform/ {print $3,$4,$5}'

See your current RAM frequency

dmidecode | grep -i "current speed"

Determine whether a CPU has 64 bit capability or not

dmidecode --type=processor | grep -i -A 1 charac

Check motherboard manufacturer, product name, version and serial number

dmidecode | grep -i 'Base Board Information' -A4 -B1

Get info on RAM Slots and Max RAM

dmidecode 2.9 | grep "Maximum Capacity"; dmidecode -t 17 | grep Size

Get current speed of cpu in use and totaly cpu mhz

awk -F": " '/cpu MHz\ */ { print "Processor (or core) running speed is: " $2 }' /proc/cpuinfo 
dmidecode | awk -F':[[:space:]]*' '/Current Speed/ { print "Processor real speed is: " $2 }'

Map the slot of an I/O card to its PCI bus address

dmidecode --type 9 |egrep 'Bus Address|Designation'

Another way to print cpu max speed

dmidecode | awk -F':[[:space:]]*' '
    /Processor Information/ { in_cpu = 1 }
    in_cpu && $1 ~ /Current Speed/ {
        print "Processor real speed is:", $2
        in_cpu = 0
    }
    '

Inspect kernel logs for HP WMI / hwmon / chassis intrusion support

dmesg | grep -iE 'hwmon|hp|wmi|intrusion' | tail -n 80

Print how much ram memory we got and how many memory cards we use

dmidecode -t 17 | grep "Size:" | grep -v "No Module" 

Print ddr type we got in use

dmidecode -t 17|grep -wi 'Type:'|sed 's/\t//g'

Print bios release date

dmidecode -s bios-release-date    

Available String Options

System strings

dmidecode -s system-manufacturer
dmidecode -s system-product-name
dmidecode -s system-version
dmidecode -s system-serial-number
dmidecode -s system-uuid

BIOS strings

dmidecode -s bios-vendor
dmidecode -s bios-version
dmidecode -s bios-release-date

Baseboard strings

dmidecode -s baseboard-manufacturer
dmidecode -s baseboard-product-name
dmidecode -s baseboard-version
dmidecode -s baseboard-serial-number

Chassis strings

dmidecode -s chassis-manufacturer
dmidecode -s chassis-type
dmidecode -s chassis-version
dmidecode -s chassis-serial-number

Processor strings

dmidecode -s processor-family
dmidecode -s processor-manufacturer
dmidecode -s processor-version
dmidecode -s processor-frequency

Output Options

  • Formatting Options

Quiet output (suppress headers)

dmidecode -q -t system

No piping warning

dmidecode --no-sysfs -t memory

Dump raw DMI data

dmidecode --dump-bin dmi.bin

Read from binary dump

dmidecode --from-dump d

Check what´s available without being root

dmidecode 2>/dev/null || echo "Root access required for complete information"

Show all information about system

dmidecode

Motherboard Information

dmidecode -t baseboard | awk -F: '
/Manufacturer:/ {print "Motherboard Manufacturer:" $2}
/Product Name:/ {print "Motherboard Model:" $2}
/Version:/      {print "Motherboard Version:" $2}
/Serial Number:/{print "Motherboard Serial:" $2}
'

Memory Details

dmidecode -t 17 | grep -E "(Size|Speed|Manufacturer|Part Number)" | grep -v "No Module"

Total installed ram memory in megabyte

dmidecode -t 17 | grep "Size:" | grep -v "No Module" | awk '{sum+=$2} END {print sum " MB"}'

Maximum memory capacity

dmidecode -t 16 | grep "Maximum Capacity"

CPU Information

dmidecode -t processor | grep -E "(Version|Family|Max Speed|Current Speed|Core Count|Thread Count)"

Sanitize Output

dmidecode "$@" | sed 's/Serial Number:.*/Serial Number: [REDACTED]/'

Get license info

get_license_info() {
  u=$(dmidecode -s system-uuid); b=$(dmidecode -s baseboard-serial-number)
  printf "UUID: %s\nSerial: %s\nManufacturer: %s\nModel: %s\nFingerprint: %s\n" \
    "$u" "$(dmidecode -s system-serial-number)" "$(dmidecode -s system-manufacturer)" \
    "$(dmidecode -s system-product-name)" "$(printf %s "$u$b" | sha256sum | cut -d' ' -f1)"
}

get_license_info