dmidecode
Decode system's DMI (SMBIOS) table data
TLDR
Show all DMI table contents
Show the BIOS version
Show the system's serial number
Show BIOS information
Show CPU information
Show memory information
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.