LinuxCommandLibrary

dmidecode

Decode system's DMI (SMBIOS) table data

TLDR

Show all DMI table contents

$ sudo dmidecode
copy

Show the BIOS version
$ sudo dmidecode [[-s|--string]] bios-version
copy

Show the system's serial number
$ sudo dmidecode [[-s|--string]] system-serial-number
copy

Show BIOS information
$ sudo dmidecode [[-t|--type]] bios
copy

Show CPU information
$ sudo dmidecode [[-t|--type]] processor
copy

Show memory information
$ sudo dmidecode [[-t|--type]] memory
copy

SYNOPSIS

dmidecode [OPTION]...

PARAMETERS

-h, --help
    Display a help message and exit.

-q, --quiet
    Suppress error messages and verbose output.

-s KEYWORD, --string KEYWORD
    Display only the value of the specified DMI string (e.g., "system-manufacturer", "bios-version").

-t TYPE, --type TYPE
    Display only the entries of the specified DMI type (e.g., 0 for BIOS, 1 for System, 4 for Processor, 17 for Memory). Accepts type name or ID.

-u FILE, --dump-bin FILE
    Dump the DMI data into a binary file for later analysis.

-i FILE, --from-file FILE
    Read DMI data from a binary file instead of live system memory (/dev/mem or sysfs).

-H, --header
    Display the SMBIOS header information.

-V, --version
    Display the version of dmidecode and exit.

DESCRIPTION

dmidecode is a Linux command-line utility used to extract detailed hardware and system information from a computer's DMI (Desktop Management Interface) table, also known as SMBIOS (System Management BIOS).

This table stores crucial data about the system's components, including its manufacturer, model, serial number, BIOS version, processor type and speed, memory modules (size, speed, form factor), motherboard details, and expansion slots.

The utility parses this binary data and presents it in a human-readable format. It's an invaluable tool for system administrators, technicians, and developers for inventory management, troubleshooting hardware issues, verifying specifications, and identifying system components without requiring physical access or disassembling the machine. It typically requires root privileges to access the necessary memory regions or sysfs files.

CAVEATS

dmidecode typically requires root privileges to access the necessary kernel interfaces (like /dev/mem or /sys/firmware/dmi/tables). The accuracy of the information presented is dependent on the DMI table implemented by the system's BIOS/UEFI firmware; some vendors may not populate all fields or provide generic data. It is primarily used on x86/x86-64 systems.

DMI/SMBIOS TYPES

The SMBIOS specification defines various types for different hardware components, each with a unique ID. Using the -t option with these IDs or names can filter output to specific hardware sections. For example:
Type 0: BIOS Information
Type 1: System Information
Type 2: Base Board Information
Type 3: Chassis Information
Type 4: Processor Information
Type 16: Physical Memory Array
Type 17: Memory Device
Type 22: Portable Battery

COMMON DMI STRINGS

When using the -s option to retrieve specific string values, common keywords include:
"system-manufacturer"
"system-product-name"
"system-serial-number"
"bios-vendor"
"bios-version"
"baseboard-manufacturer"
"processor-version"

HISTORY

dmidecode was created by Jean Delvare, with initial releases around 2000. It emerged as a solution to easily access SMBIOS (DMI) information from system firmware, which was traditionally difficult to retrieve without proprietary tools or direct BIOS/UEFI calls. Its development has continuously adapted to new SMBIOS specification versions, establishing it as a fundamental utility for hardware inventory and diagnostics across Linux distributions.

SEE ALSO

lshw(1), lspci(8), lsusb(8), hwinfo(8), biosdecode(8), cpuid(1)

Copied to clipboard