dmidecode Command in Linux: BIOS, Serial, Memory & CPU (Cheat Sheet)

dmidecode Command in Linux: BIOS, Serial, Memory & CPU (Cheat Sheet)

dmidecode reads SMBIOS/DMI (Desktop Management Interface) tables and prints hardware inventory details such as BIOS, system vendor/model, serial number, baseboard, chassis, CPU, and RAM slot information.

It’s commonly used for:

  • Inventory / auditing (model, serial, UUID, BIOS/firmware version)
  • Memory planning (slot count, populated DIMMs, max capacity)
  • Hardware verification (what the platform reports, independent of drivers)
  • Automation (scripts that tag hosts by model/serial, check BIOS versions, etc.)

Note: Many distros require root for full output because dmidecode may need direct access to SMBIOS tables.


dmidecode Quick Reference

dmidecode is used to read SMBIOS/DMI tables exposed by system firmware.
It helps identify BIOS version, hardware model, serial number, CPU, and memory layout on Linux systems.

Command syntax

text
sudo dmidecode [OPTIONS]

dmidecode Command - Quick Cheat Sheet

Taskdmidecode Command
Display full hardware informationsudo dmidecode
Show system manufacturer informationsudo dmidecode -t system
Display BIOS informationsudo dmidecode -t bios
Show processor informationsudo dmidecode -t processor
Display memory informationsudo dmidecode -t memory
Show baseboard (motherboard) detailssudo dmidecode -t baseboard
Display chassis informationsudo dmidecode -t chassis
Display cache informationsudo dmidecode -t cache
Show system serial numbersudo dmidecode -s system-serial-number
Display system product namesudo dmidecode -s system-product-name
Show BIOS versionsudo dmidecode -s bios-version
Show BIOS vendorsudo dmidecode -s bios-vendor
Display memory device detailssudo dmidecode -t memory
Filter dmidecode output using grepsudo dmidecode | grep -i serial

This quick reference summarizes the most commonly used dmidecode command examples in Linux for retrieving BIOS, hardware, and system information.


dmidecode vs Other Hardware Tools

dmidecode reads firmware-exposed SMBIOS/DMI data, which means it reports what the BIOS/UEFI claims about the hardware, not what the kernel is actively using.

This makes dmidecode ideal for inventory, audits, and asset identification, but less suitable for real-time performance or runtime configuration checks.

When to use dmidecode

Use dmidecode when you need:

  • BIOS / UEFI firmware version and release date
  • System manufacturer, model, serial number, and UUID
  • Motherboard, chassis, and asset-tag information
  • Memory slot layout and maximum supported capacity
  • Hardware identity independent of drivers or kernel state

dmidecode vs commonly used alternatives

Each of the following tools focuses on runtime kernel information, not firmware tables.

  • lshw
    Best for a detailed hardware tree as detected by the kernel, including drivers, capabilities, and device state.

  • lscpu
    Focuses on CPU architecture and topology, including cores, threads, NUMA nodes, and runtime frequencies.

  • lsblk
    Lists block devices and storage layout, including disks, partitions, and mount points.

  • lspci / lsusb
    Show PCI and USB devices detected by the kernel, useful for troubleshooting peripherals and expansion cards.

  • inxi
    Provides a human-readable system summary, combining CPU, memory, disk, and OS information in a single view.

Key difference to remember

  • dmidecode answers: “What does the firmware report?”
  • Kernel tools answer: “What is the OS currently using?”

For accurate system analysis, these tools are often used together, not as replacements for one another.


Before You Start

Install dmidecode

Install dmidecode using your distribution’s package manager.

text
# Ubuntu / Debian
sudo apt update
sudo apt install -y dmidecode

# RHEL / CentOS / Fedora
sudo dnf install -y dmidecode

Why sudo is often required

dmidecode reads firmware-level SMBIOS data from sysfs or physical memory.
Without elevated privileges, access is usually denied.

text
/sys/firmware/dmi/tables/smbios_entry_point: Permission denied
/dev/mem: Permission denied

Run the command with sudo to retrieve full and accurate hardware details.

dmidecode inside containers

In containers, SMBIOS tables are often not exposed by the host, resulting in empty or incomplete output.

text
sudo dmidecode

For reliable hardware identification, run dmidecode directly on the host system, not inside a container.


Understanding DMI Types in dmidecode

DMI (Desktop Management Interface) data is organized into types, where each type represents a specific hardware component such as BIOS, system, processor, or memory.
dmidecode allows querying these types using keywords or numeric IDs.

List supported DMI type keywords

This command shows which DMI keywords are supported on your system.

text
dmidecode --type

If an error indicates that an argument is required, it means dmidecode is displaying the valid keywords available on your platform.

Common DMI keyword to type mapping

The following keywords are most frequently used for hardware inspection:

  • bios → type 0 (and sometimes 13)
  • system → type 1
  • baseboard → type 2
  • chassis → type 3
  • processor → type 4
  • memory → types 16 and 17
  • cache → type 7
  • connector → type 8
  • slot → type 9

Querying Hardware Components by Type

Display all available SMBIOS/DMI information

Displays the entire decoded SMBIOS/DMI table as reported by system firmware.
Useful for full hardware inventory, audits, and troubleshooting when you need all available details.

text
sudo dmidecode

For easier navigation when the output is large:

text
sudo dmidecode | less

Display BIOS information

Retrieves BIOS vendor, version, release date, and firmware details, helping verify firmware versions during upgrades or compatibility checks.

text
sudo dmidecode -t bios

Display system information

Shows system manufacturer, product name, version, serial number, and UUID, commonly used for asset tracking, licensing, and automation.

text
sudo dmidecode -t system

Display baseboard (motherboard) information

Identifies the motherboard vendor, model, and serial number, useful for hardware replacement, firmware matching, or support cases.

text
sudo dmidecode -t baseboard

Display chassis information

Reports chassis type, serial number, and asset tag, helping distinguish between desktop, rack, blade, or virtual systems.

text
sudo dmidecode -t chassis

Display processor (CPU) information

Provides detailed CPU identification, including model name, core count, thread count, and maximum supported speed.

text
sudo dmidecode -t processor

Inspecting Memory Configuration

Display memory arrays and slots

Displays the maximum supported memory, number of slots, and how DIMMs are arranged across memory banks.

text
sudo dmidecode -t memory

This helps determine:

  • Total RAM slots available on the system
  • Which memory slots are populated
  • Maximum memory capacity supported by the motherboard

List only populated memory modules

Filters out empty slots and shows only installed DIMMs, making it easier to audit actual memory usage.

text
sudo dmidecode -t memory | awk 'BEGIN{RS="\n\n"} /Memory Device/ && !/No Module Installed/'

Display memory slot, size, and speed in compact form

Summarizes slot location, module size, and memory speed, useful for quickly validating RAM configuration consistency.

text
sudo dmidecode -t memory | grep -E 'Locator:|Size:|Speed:|Configured Memory Speed'

Reading Individual DMI Fields Using Strings

Commonly used DMI string queries

These commands return frequently required hardware identifiers in a clean, one-line format.

text
sudo dmidecode -s bios-version
sudo dmidecode -s bios-release-date
sudo dmidecode -s system-manufacturer
sudo dmidecode -s system-product-name
sudo dmidecode -s system-serial-number
sudo dmidecode -s system-uuid

Get BIOS version

Returns the currently installed BIOS/UEFI firmware version, useful before upgrades or vendor support cases.

text
sudo dmidecode -s bios-version

Get BIOS release date

Shows the firmware release date, helping determine whether the system is running an outdated BIOS.

text
sudo dmidecode -s bios-release-date

Get system product name (model)

Identifies the exact hardware model, commonly used for driver compatibility and asset classification.

text
sudo dmidecode -s system-product-name

Get system serial number

Retrieves the unique hardware serial number, often required for inventory management and warranty tracking.

text
sudo dmidecode -s system-serial-number

Get system UUID

Displays the globally unique system identifier, widely used in automation, virtualization, and licensing workflows.

text
sudo dmidecode -s system-uuid

Output Control and Filtering

Filter output using grep or sed

Useful when you need specific identifiers without scrolling through the full DMI table.

Show only the System Information block:

text
sudo dmidecode -t system | sed -n '/System Information/,$p' | head -n 30

Search for commonly required identifiers such as serial number, UUID, or BIOS:

text
sudo dmidecode | grep -iE 'serial|uuid|bios|base board|chassis'

Hide unknown or inactive entries

Suppresses OEM-specific, inactive, and unknown fields, resulting in cleaner and more readable output.

text
sudo dmidecode -q

Dumping and Reusing DMI Data

Dump DMI table as hexadecimal

Outputs the raw SMBIOS table in hexadecimal format, mainly used for debugging or low-level analysis.

text
sudo dmidecode -u

Save raw DMI data to a binary file

Stores SMBIOS data in binary form for later inspection or transfer to another system.

text
sudo dmidecode --dump-bin dmi.bin

Read DMI data from a binary dump

Decodes and displays DMI information from a previously saved binary file.

text
sudo dmidecode --from-dump dmi.bin

Use an alternate memory device or dump file

Advanced option for reading SMBIOS data from a custom memory source or memory image.

text
sudo dmidecode --dev-mem FILE

Conclusion

dmidecode is a practical “hardware identity” tool for Linux. Use it to quickly retrieve BIOS version, system vendor/model, serial/UUID, memory slot details, and CPU data—especially for audits, troubleshooting, and automation.


Also Read


Further reading

linux.die.net - man page for dmidecode command

Rohan Timalsina

Rohan Timalsina

is a technical writer and Linux enthusiast who writes practical guides on Linux commands and system administration. He focuses on simplifying complex topics through clear explanations.